Li要素の間にスラッシュ( '/')を追加したいのですが、意味論的にそれを行う最良の方法がわかりません。今、私は単にliタグにスラッシュを含め、次のように改行しないスペースでスペースを追加しています:
<ul id="footer_menu">
<li>Customer Support /</li>
<li>Shipping Info /</li>
<li>Size Charts /</li>
<li>Privacy Policy /</li>
<li>Contact</li>
</ul>
どう思いますか?ありがとう。
疑似要素を使用して要素の後にテキストを含めることができ、CSS3セレクターを使用して最後の要素から末尾のスラッシュを削除できます。
#footer_menu li:after {
content: "/";
}
#footer_menu li:last-child:after {
content: "";
}
編集:
より良いCSS3を使用して、すべてを1行で実行できます。
#footer_menu li:nth-child(n+2):before {
content: "/";
}
編集:編集:
それよりもさらに簡単です。
#footer_menu li + li:before {
content: "/";
}
これは|で区切られたLI要素に対する私のソリューションです。 (パイプ):
li + li:before {
content: " | ";
}
この場合、隣接コンビネータ(プラス記号、+)が非常に便利です。指定された別の要素が直接先行している場合、要素のスタイルを設定できます。最初のliの前に別のliがないため、コンテンツの先頭に追加されません。これは、以下よりもはるかに少ない入力です。
li:before {
content: " | ";
}
li:first-child:before {
content: "";
}
Liコンテンツをスパンに入れてから、CSSを使用できます。
ul#footer_menu li span:after { content:"/"; padding:0 5px; }
または似たようなもの。
編集カイルが言ったようにああ、しかしlast_childルールの追加はより完全です。
カスタマーサポート/配送情報/サイズチャート/プライバシーポリシー/連絡先のようなことをしようとしている場合は、CSSでそれを行うことができます
次のように、セットの最初のliに「最初の」クラスを追加する必要があります。
<ul id="footer_menu">
<li class="first">Customer Support /</li>
<li>Shipping Info /</li>
<li>Size Charts /</li>
<li>Privacy Policy /</li>
<li>Contact</li>
</ul>
そして、次のCSS
#footer_menu ul {
float: left;
padding: 10px;
list-style: none outside none;
}
#footer_menu li {
border-left: 2px solid #000000;
float: left;
padding: 0 10px;
}
#footer_menu li.first {
border: none;
}
これにより、すべてのli要素が隣り合わせに配置され、境界線が表示されます。結果は次のようになります
カスタマーサポート|配送情報|サイズチャート|プライバシーポリシー|連絡先