ul liの入れ子でボーダーをインデントさせない方法

/ Web / Comment[0]
例えばこんな入れ子のul liにボーダーをかけてみるとpadding-leftがボーダーにもかかってしまい、paddingをかけると入れ子の部分でいびつになってしまいます。
それを回避するにはインデントのmargin-leftを
ul li ul liの子要素であるaやspanに対してborderやpaddingなどのスタイルを効かせるとうまくいきます。
<ul>
<li><a>UNIX</a></li>
<li><a>Linux</a></li>
<li><a>Debian</a>
<ul>
<li><a>Ubuntu</a></li>
<li><a>MintLinux</a></li>
<li><a>Kali Linux</a></li>
</ul>
</li>
<li><a>Redhat</a>
<ul>
<li><a>Fedora</a></li>
<li><a>CentOS</a></li>
<li><a>pidora</a></li>
</ul>
</li>
<li><a>MS-DOS</a></li>
</ul>

ul, ul li {
margin: 0;
padding: 0;
list-style: none;
}
ul li a {
display: block;
padding: 0.5em 0;
}
ul li ~ li {
border-top: 1px solid #ccc;
}
ul li ul li {
border-top: 1px solid #ccc;
}
ul li ul li a {
margin-left: 2em;
}

表示


list-styleは効かなくなるというか思い通りの挙動をしなくなるためリストマーク画像はbackgroundで載せて1emほどpadding-leftをかけるといいでしょう。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可