ul li 構造があり、CSSのみを使用してIE 6でもサポートされている最後の li 境界線を削除したいとします (私のプロジェクトでは css のみの使用が必須です)。
<ul>
<li>HI</li>
<li>HI</li>
<li>HI</li>
<li>HI</li>
</ul>'
IE6でも機能するような出力が欲しい...
ul li 構造があり、CSSのみを使用してIE 6でもサポートされている最後の li 境界線を削除したいとします (私のプロジェクトでは css のみの使用が必須です)。
<ul>
<li>HI</li>
<li>HI</li>
<li>HI</li>
<li>HI</li>
</ul>'
IE6でも機能するような出力が欲しい...
IE6 のサポートは必須であるため、Javascript を使用したり、クラスを追加したりしたくない場合 (推奨される方法) は、少し手間がかかります。
どのような外観にするかは明確ではありませんが、弾丸を保持する方法を次に示します。これは、境界線が定義されていて、非表示にすることを前提としています。およびoverflow: hidden
で設定できます。これはIE6で問題なく動作します。<ul>
margin-bottom: -1px
<li>
li {
border: 1px solid black;
margin-bottom: -1px;
}
ul {
overflow: hidden;
}
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
下の境界線を定義しないだけの別の方法を次に示します。
li {
border-top: 1px solid black;
border-right: 1px solid black;
border-left: 1px solid black;
}
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
解決策は次のとおりです(IE6と同等のIE9のクァークズモードでテストしましたが、結果を教えてください。うまくいくはずです):
<html>
<head>
<style>
ul li{
border:1px solid red;
}
ul li.lastchild{
border-bottom: 0px; // Or use "border: 0px;" if you completely
// want to remove the border
}
</style>
</head>
<body>
<ul>
<li>HI</li>
<li>HI</li>
<li>HI</li>
<li class="lastchild">HI</li>
</ul>
</body>
</html>
last-selector
クラスを最後のliに追加することでこれを行うことができます.+
そして、純粋なCSSによるものではないかもしれないが、それが役立つと思う他のオプションは、jQueryがサポートしているため、jQueryを使用できるjQueryによるものです。last-child
試す
$(function(){
$("ul li:last-child").css("border","none")
})
ほぼすべてのブラウザをサポートします
また、特別な要件がある場合を除いて、ie6 を検討することもお勧めできません。むしろ、Facebook や多くの大きな Web サイトは ie6 チェックを考慮していませんブラウザ統計 ie6 は.5%を保持していないので、ie6 について考えないことをお勧めします
長い研究の結果、CSSにはIE6でも機能する最後のli境界線を削除する単一のメソッドがないという結果が得られました......したがって、最後のli要素にクラスを追加するか、jqueryを使用して最後のli境界線を削除します......。
結果:-CSS uのみを使用しても、この目標を達成することはできません.........。