ホームページ  >  記事  >  ウェブフロントエンド  >  CSS のリスト スタイルについての深い理解

CSS のリスト スタイルについての深い理解

黄舟
黄舟オリジナル
2017-06-29 09:25:552825ブラウズ

まずは CSS マニュアルの list-style の説明を見てください

定義と使用法
list-style 短縮属性は、1 つのステートメントですべてのリスト属性を設定します。このプロパティは、他のすべてのリストスタイルプロパティをカバーする速記のプロパティです。 list-item を表示するすべての要素に適用されるため、通常の HTML や XHTML では li 要素でしか使用できませんが、実際にはどの要素にも適用でき、list-item 要素にも継承されます。

次のプロパティを順番に設定できます:

List-style-type :circle inside;" も許可されます。設定されていないプロパティには、デフォルト値が使用されます。
デフォルト値: ディスク外側なし

日常の作業では、リスト記号を非表示にするために ul と li で CSS リセットを実行する必要があることがよくあります
最も一般的に使用される記述方法は、Ul,li,ol{list-style: none;}(ul、li、ol{list-style-type:none;} を使用する人もいます) コード ボックスを実行する

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="fanfan,xiangrui09@qq.com" />
<title>常见的用法</title>
<style type="text/css">
body,ul,li,p {padding:0;margin:0;font-size:12px;}
p{font:bold 16px/180% arial;}
div{float:left;display:inline;background:#eee;margin-right:10px;}
p span{text-decoration:line-through;}
ul{width:275px;margin:4px 0 0 15px;background:aqua;}
ul,li{list-style:none;}
</style>
</head>
<body>
<div>
<p>1: list-style:none;</p>
<ul>
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
</body>
</html>
このページは IE6、7、8、FF で問題ありません。
しかし、無視できないのは、 list-style: には 3 つの属性が含まれています:

list-style-type

list-style-position

list-style-img


これら 3 つの属性に注意を払わない場合は、list -style は問題を引き起こすことがあります。

たとえば、IE6 の二重マージン問題を解決するために ul が float になった後、display:inline が必要な場合、何か奇妙なことが起こります。

コード ボックスを実行します

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="fanfan,xiangrui09@qq.com" />
<title>奇怪的事情发生了</title>
<style type="text/css">
body,ul,li,p {padding:0;margin:0;font-size:12px;}
p{font:bold 16px/180% arial;}
div{float:left;display:inline;background:#eee;margin-right:10px;}
p span{text-decoration:line-through;}
ul{width:275px;margin:4px 0 0 15px;background:aqua;}
.ul01{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
</style>
</head>
<body>
<div>
<p>1: list-style:none;</p>
<ul class="ul01">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
</body>
</html>

.ul01{float:left ;display:inline ;}

.ul01,.ul01 li{list-style:none;}


上記のページはie8とffではまだ正常です
しかし、IE6と7では、ulの内部との間に距離がありますli.

list-style:none を定義すると、リスト シンボルは表示されませんが、IE6 および 7 では依然としてその場所が存在することがわかります。

この UL が FF でどのような属性を持っているかを見てください

上記からわかるように、CSSでlist-style:noneが定義されている場合、それは依然としてFFブラウザのデフォルト設定であり、値は外側になります

。 list-style-position は、IE6 および 7 のデフォルトである可能性があります。:inside
これを確認するために、none 内の list-style:none を list-style:none に変更して、再度テストしました

コード ボックスを実行します

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="fanfan,xiangrui09@qq.com" />
<title>强制inside</title>
<style type="text/css">
body,ul,li,p {padding:0;margin:0;font-size:12px;}
p{font:bold 16px/180% arial;}
div{background:#eee;margin-right:10px;}
p span{text-decoration:line-through;}
ul{width:275px;margin:4px 0 0 15px;background:aqua;list-style:none inside none;}
</style>
</head>
<body>
<div>
<p>强制inside list-style:none inside none;</p>
<ul>
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
</body>
</html>

それを実行すると、IE6 と 7 で list-style:none がまったく同じように動作することがわかります。
したがって、UL に float:left 属性と display:inline 属性があり、list -style:none が設定されている場合、list-style-position もデフォルトで inside;

したがって、私が到達した結論は、CSS のリスト スタイルについての深い理解IE6 および 7 では、UL に float:left;display:inline;: がない場合です。

問題ありませんlist-style:none 属性があるかどうかに関係なく、リスト シンボルは非表示になり、スペースを占有しません (以下のコードの 5,6)

UL に float:left;display:inline 属性がある場合
style:none、リストシンボルは非表示ですが、位置は残ります (list-style-position:inside) (以下のコードの UL1、ul3)
list-style:none は非表示です。位置を占めません (list-style-position:outside) (コード UL4)

そして、UL02 はテストに参加する各ブラウザーにあります ブラウザーでのパフォーマンスは理想的です

コードの最後の部分は list のパフォーマンスを比較しますさまざまな状況下での -style、特に IE6 および 7 での 4、5、6 のパフォーマンス

コード ボックスを実行します

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>list-style:none还是list-style:none outside none;</title>
<style type="text/css">
body,ul,li,p {padding:0;margin:0;font-size:12px;}
p{font:bold 16px/180% arial;}
div{float:left;display:inline;background:#eee;margin:0 10px 10px 0;}
p span{text-decoration:line-through;}
ul{width:275px;margin:4px 0 0 15px;background:aqua;}
.ul01,.ul02,.ul03,.ul04{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
.ul02,.ul02 li{list-style:none outside none;}
.ul03,.ul03 li{list-style:none inside none;}
.ul04,.ul04 li{}
.ul05{}
.ul05,.ul05 li{list-style:none;}
.ul06{}
.ul06,.ul06 li{}
</style>
</head>
<body>
<div>
<p>1:float:left;display:inline; list-style:none;</p>
<ul class="ul01">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
<div>
<p>2:float:left;display:inline; list-style:none outside none;</p>
<ul class="ul02">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
<div>
<p>3: float:left;display:inline;list-style:none inside none;</p>
<ul class="ul03">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
<div>
<p>4:float:left;display:inline;未做css reset</p>
<ul class="ul04">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
<div>
<p>5: 无 display,float属性 list-style为none;</p>
<ul class="ul05">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
<div>
<p>6: 无 display,float属性 无list-style:none;</p>
<ul class="ul06">
<li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li>
<li><a href="#">就像对爱情一样 要求是近乎完美的</a></li>
<li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li>
<li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li>
<li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li>
<li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li>
<li><a href="#">交错出现明暗线索和不确定的主角</a></li>
<li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li>
<li><a href="#">高密度的情绪在文字中反复发酵</a></li>
</ul>
</div>
</body>
</html>

上記のコードによるパフォーマンス結果を比較すると、次のようになります:
list-style-type である限りFirefox では none です。 list-stype-position の値が外側か内側かに関係なく、list-style をうまく隠すことができます
そして IE6 と 7 では、 list-style:none を設定するだけではすべての問題を解決するのに十分ではありません
なのでCSSリセット時はnone以外ではlist-style:noneを使うのが良いと思います

以上がCSS のリスト スタイルについての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。