HTML 순서 목록 1.1, 1.2 (중첩 된 카운터 및 범위)가 작동하지 않음
중첩 된 카운터와 범위를 사용하여 정렬 된 목록을 만듭니다.
ol {
counter-reset: item;
padding-left: 10px;
}
li {
display: block
}
li:before {
content: counters(item, ".") " ";
counter-increment: item
}
<ol>
<li>one</li>
<li>two</li>
<ol>
<li>two.one</li>
<li>two.two</li>
<li>two.three</li>
</ol>
<li>three</li>
<ol>
<li>three.one</li>
<li>three.two</li>
<ol>
<li>three.two.one</li>
<li>three.two.two</li>
</ol>
</ol>
<li>four</li>
</ol>
다음과 같은 결과를 기대합니다.
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
3. three
3.1 three.one
3.2 three.two
3.2.1 three.two.one
3.2.2 three.two.two
4. four
대신, 이것은 내가 본 것입니다 (잘못된 번호 매기기) .
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
2.4 three <!-- this is where it goes wrong, when going back to the parent -->
2.1 three.one
2.2 three.two
2.2.1 three.two.one
2.2.2 three.two.two
2.3 four
나는 단서가 없습니다. 누가 그것이 잘못되었는지 알 수 있습니까?
다음은 JSFiddle입니다. http://jsfiddle.net/qGCUk/2/
선택을 취소 "정규화 CSS"- http://jsfiddle.net/qGCUk/3/ 이 기본적으로 모든 목록 마진과 패딩 0에서 사용하는 CSS 리셋
업데이트 http://jsfiddle.net/qGCUk/4/- 메인에 하위 목록을 포함해야합니다.<li>
ol {
counter-reset: item
}
li {
display: block
}
li:before {
content: counters(item, ".") " ";
counter-increment: item
}
<ol>
<li>one</li>
<li>two
<ol>
<li>two.one</li>
<li>two.two</li>
<li>two.three</li>
</ol>
</li>
<li>three
<ol>
<li>three.one</li>
<li>three.two
<ol>
<li>three.two.one</li>
<li>three.two.two</li>
</ol>
</li>
</ol>
</li>
<li>four</li>
</ol>
이 스타일을 사용하여 중첩 된 목록 만 변경합니다.
ol {
counter-reset: item;
}
ol > li {
counter-increment: item;
}
ol ol > li {
display: block;
}
ol ol > li:before {
content: counters(item, ".") ". ";
margin-left: -20px;
}
이것 좀 봐 :
문제가 해결 된 것 같습니다.
나에게 표시되는 항목 (Chrome 및 Mac OS X에서)
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
3. three
3.1 three.one
3.2 three.two
3.2.1 three.two.one
3.2.2 three.two.two
4. four
내가 어떻게했는지
대신에 :
<li>Item 1</li>
<li>Item 2</li>
<ol>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ol>
하다 :
<li>Item 1</li>
<li>Item 2
<ol>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ol>
</li>
This is a great solution! With a few additional CSS rules you can format it just like an MS Word outline list with a hanging first line indent:
OL {
counter-reset: item;
}
LI {
display: block;
}
LI:before {
content: counters(item, ".") ".";
counter-increment: item;
padding-right:10px;
margin-left:-20px;
}
I encountered similar problem recently. The fix is to set the display property of the li items in the ordered list to list-item, and not display block, and ensure that the display property of ol is not list-item. i.e
li { display: list-item;}
With this, the html parser sees all li as the list item and assign the appropriate value to it, and sees the ol, as an inline-block or block element based on your settings, and doesn't try to assign any count value to it.
'Program Tip' 카테고리의 다른 글
Handlebars.js와 함께 사전 컴파일 된 템플릿 사용 (jQuery Mobile 환경) (0) | 2020.11.10 |
---|---|
대상 시스템이 적극적으로 거부했기 때문에 연결할 수 없습니다. 127.0.0.1:3446 (0) | 2020.11.10 |
IE9가 IE7 표준으로 문서 모드에서 열리는 이유는 무엇입니까? (0) | 2020.11.10 |
자동 레이아웃 : UIView-Encapsulated-Layout-Width & Height라는 제약 조건을 만드는 것은 무엇입니까? (0) | 2020.11.10 |
div 요소에서 svg 아래의 추가 공간을 제거하는 방법 (0) | 2020.11.10 |