擬似要素 before after についての解釈

  • このエントリーをはてなブックマークに追加

擬似要素:before:afterはその名前から、要素外側の前と後と解釈してしまいがちですが、実際は要素内側の前と後になります。

図で表すとこんな感じです。

一番使用するケースとしては、floatした要素の高さを出すために擬似要素にclearfixするという事が多いと思います。

例えば、ul、liタグでパンくずリストを作る場合、

<nav class="nav-topicpath">
    <ul>
      <li><a title="Home" href="/">Home</a></li>
      <li>Page1</li>
    </ul>
</nav>
ul, ol {
    list-style: none outside none;
}
a {
    color: #333333;
}
.nav-topicpath {
    background-color: #ffffff;
    font-size: 12px;
    padding: 3px 10px;
}
.nav-topicpath ul:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.nav-topicpath li {
    float: left;
}
.nav-topicpath li + li:before {
    content: ">";
    margin: 0 3px;
}
.nav-topicpath li a {
    padding: 3px 0;
}

※clearfixはスマートフォン用のものです。

topicpath – jsdo.it – share JavaScript, HTML5 and CSS

この場合、

<nav class="nav-topicpath">
    <ul>
      <li><a title="Home" href="/">Home</a></li>
      [[[ここに擬似要素afterが入る]]]
      <li>Page1</li>
    </ul>
</nav>

となります。
擬似要素は、要素のCSSも継承します。

clearfixのために空の要素を作ったり剃る必要が無いので、イイですね!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

ads

コメントを残す

*