>  기사  >  웹 프론트엔드  >  CSS의 목록 스타일에 대한 심층적인 이해

CSS의 목록 스타일에 대한 심층적인 이해

黄舟
黄舟원래의
2017-06-29 09:25:552825검색

먼저 CSS 매뉴얼에서 목록 스타일에 대한 설명을 살펴보세요

정의 및 사용법
목록 스타일 단축 속성은 모든 목록 속성을 하나의 명령문으로 설정합니다. + | 다른 모든 목록 스타일 속성을 포함하는 속성입니다. 표시 목록 항목이 있는 모든 요소에 적용되므로 일반 HTML 및 XHTML에서는 li 요소에만 사용할 수 있지만 실제로는 모든 요소에 적용할 수 있으며 목록 항목 요소에 상속됩니다.

다음 속성을 순서대로 설정할 수 있습니다.

목록 스타일 유형 :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: 세 가지 속성이 포함되어 있다는 것입니다:

list-style-type

list-style-position

list-style-img


이 세 가지 속성에 주의를 기울이지 않는다면 list -style은 때때로 문제를 일으킬 수 있습니다.

예를 들어 ul이 IE6의 이중 여백 문제를 해결하기 위해 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 내부와 ul 내부 사이에 거리가 있습니다. li.

list-style:none을 정의하면 목록 기호가 표시되지 않더라도 IE6 및 7에서는 여전히 그 위치를 유지한다는 것을 알 수 있습니다.

이 UL이 FF

에 어떤 속성을 가지고 있는지 살펴보세요.

그림 위에서 볼 수 있듯이 CSS에 list-style:none이 정의되어 있으면 list-style-position에는 아무런 영향이 없습니다. 이는 여전히 FF 브라우저의 기본 설정이며 값은 외부

입니다. , IE6 및 7에서는 list-style-position이 기본값일 가능성이 높습니다. :inside
이를 확인하기 위해 list-style:none을 list-style:none inside 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이 정확히 동일하게 동작한다는 것을 알 수 있습니다.
그래서 IE6 및 7에서는 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 속성이 있는 경우
list- style:none, 목록 기호는 숨겨져 있지만 위치는 여전히 남아 있습니다(list-style-position:inside). (아래 코드의 UL1, ul3)
list-style:none은 목록 기호가 숨겨지지 않습니다. 위치를 차지하지 않습니다(list-style-position:outside)(코드 UL4)

그리고 UL02는 테스트에 참여하는 각 브라우저에 있습니다. 브라우저에서의 성능은 이상적입니다

마지막 코드 조각은 목록의 성능을 비교합니다. -여러 상황에서의 스타일, 특히 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 값이 외부에 있든 내부에 있든 상관없이 목록 스타일을 잘 숨길 수 있습니다
그리고 IE6 및 7에서는 list-style:none을 설정하는 것만으로는 모든 문제를 해결하기에 충분하지 않습니다
그래서 CSS 재설정 시에는 none 외부에 list-style:none을 사용하는 것이 더 낫다고 생각합니다

위 내용은 CSS의 목록 스타일에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.