ä½¿ç¨ CSS 计æ°å¨
CSS 计æ°å¨å¯è®©ä½ æ ¹æ®å å®¹å¨ææ¡£ä¸çä½ç½®è°æ´å ¶æ¾ç¤ºçå¤è§ãä¾å¦ï¼ä½ å¯ä»¥ä½¿ç¨è®¡æ°å¨èªå¨ä¸ºç½é¡µä¸çæ é¢ç¼å·ï¼æè æ´æ¹æåºå表çç¼å·ã
æ¬è´¨ä¸ CSS 计æ°å¨æ¯ç± CSS ç»´æ¤çåéï¼è¿äºåéå¯è½æ ¹æ® CSS è§åè·è¸ªä½¿ç¨æ¬¡æ°ä»¥é墿éåãä½ å¯ä»¥èªå®ä¹ä¸ä¸ªè®¡æ°å¨ï¼ä¹å¯ä»¥ä¿®æ¹ list-item è¿ä¸é»è®¤çæçåºç¨äºæææåºå表ç计æ°å¨ã
使ç¨è®¡æ°å¨
å¨ä½¿ç¨è®¡æ°å¨ä¹åï¼å¿
é¡»ä½¿ç¨ counter-reset 屿§åå§å计æ°å¨çå¼ã计æ°å¨å¯éè¿ counter-increment 屿§æå®å
¶å¼ä¸ºé墿éåãå½å计æ°å¨çå¼å¯éè¿ counter() æ counters() 彿°æ¾ç¤ºåºæ¥ï¼è¿é常ä¼å¨ä¼ªå
ç´ ç content 屿§ä¸ä½¿ç¨ã
请注æï¼è®¡æ°å¨åªè½å¨å¯ä»¥çæçåçå
ç´ ä¸ä½¿ç¨ï¼è®¾ç½®æé设å¼ãéå¢ï¼ãä¾å¦ï¼å¦æä¸ä¸ªå
ç´ è¢«è®¾ç½®ä¸ºäº display: noneï¼é£ä¹å¨è¿ä¸ªå
ç´ ä¸çä»»ä½è®¡æ°å¨æä½é½ä¼è¢«å¿½ç¥ã
æä½è®¡æ°å¨çå¼
å¨ä½¿ç¨è®¡æ°å¨ä¹åï¼éè¦ä½¿ç¨ counter-reset 屿§æ¥åå§åå®çå¼ãè¿ä¸ªå±æ§ä¹å¯ç¨äºæå®è®¡æ°å¨çåå§å¼ã
ä¸é¢ï¼æä»¬å°å为 section ç计æ°å¨åå§å为é»è®¤å¼ï¼0ï¼ã
counter-reset: section;
ä½ ä¹å¯ä»¥åæ¶åå§åå¤ä¸ªè®¡æ°å¨ï¼å¹¶å¯ä»¥æå®å
¶åå§å¼ãä¸é¢ï¼æä»¬å°å为 section å topic ç计æ°å¨åå§å为é»è®¤å¼ï¼å¹¶å° page 计æ°å¨çåå§å¼æå®ä¸º 3ã
counter-reset: section page 3 topic;
å¨åå§åä¹åï¼è®¡æ°å¨çå¼å°±å¯ä»¥ä½¿ç¨ counter-increment æ¥æå®å
¶ä¸ºé墿éåãä¾å¦ï¼ä¸é¢å£°æäºä¸ä¸ªéç h3 æ ç¾éå¢ç section 计æ°å¨ã
h3::before {
counter-increment: section; /* Increment the value of section counter by 1 */
}
ä½ å¯ä»¥å¨è®¡æ°å¨çåç§°åæå®å次é墿éåçå¼ï¼æ£æ°æè´æ°ï¼ã
计æ°å¨çåç§°ä¸å¯ä»¥ä¸º noneãinherit æ initialï¼å¦åï¼ç¸åºç声æä¼è¢«å¿½ç¥ã
æ¾ç¤ºè®¡æ°å¨
计æ°å¨çå¼å¯ä»¥ä½¿ç¨ counter() æ counters() 彿°ä»¥å¨ content 屿§ä¸æ¾ç¤ºã
ä¾å¦ï¼ä»¥ä¸ä½¿ç¨ counter() 声æç计æ°å¨ä¼å¨æ¯ä¸ä¸ª h3 æ é¢å颿·»å ææ¬ Section <number>:ï¼å
¶ä¸ç <number> æ¯åè¿å¶è®¡æ°çå¼ï¼é»è®¤æ¾ç¤ºæ ·å¼ï¼ï¼
h3::before {
counter-increment: section; /* Increment the value of section counter by 1 */
content: "Section " counter(section) ": "; /* Display counter value in default style (decimal) */
}
å½ä¸éè¦å
å«ç¶çº§ä¸ä¸æçç¼å·ï¼èä»
éè¦åµå¥å
容çç¼å·æ¶ï¼åºä½¿ç¨ counter() 彿°ãä¾å¦ï¼ä»¥ä¸ç¤ºä¾çæ¯ä¸ä¸ªåµå¥å
容ç计æ°é½ä» 1 å¼å§ï¼
1 One 1 Nested one 2 Nested two 2 Two 1 Nested one 2 Nested two 3 Nested three 3 Three
å½éè¦åæ¶å
å«ç¶çº§ä¸ä¸æååµå¥å
容çç¼å·æ¶ï¼åºä½¿ç¨ counters() 彿°ãä¾å¦ï¼ä»¥ä¸ç¤ºä¾çæ¯ä¸ä¸ªåµå¥å
容ä¼å
å«ç¶çº§ç¼å·ï¼
1 One 1.1 Nested one 1.2 Nested two 2 Two 2.1 Nested one 2.2 Nested two 2.3 Nested three 3 Three
counter() 彿°æä¸¤ç§å½¢å¼ï¼ counter(<counter-name>) å counter(<counter-name>, <counter-style>)ãçæçææ¬æ¯ä¼ªå
ç´ èå´å
æå®åç§°çæå
å±è®¡æ°å¨çå¼ã
counters() 彿°ä¹åæ ·æä¸¤ç§å½¢å¼ï¼counters(<counter-name>, <separator>) å counters(<counter-name>, <separator>, <counter-style>)ãçæçææ¬ç±å¨ä¼ªå
ç´ èå´å
æææå®åç§°ç计æ°å¨çå¼ç»æãè¿äºå¼ä»æå¤å±å°æå
å±ï¼ä½¿ç¨æå®çå符串ï¼<separator>ï¼åéã
以ä¸ä¸¤ä¸ªå½æ°åå¯ä»¥ä½¿ç¨æå®ç <counter-style> æ¥æ¸²æå
¶å¼ï¼é»è®¤å¼ä¸º decimalï¼ãä½ ä¹å¯ä»¥ä½¿ç¨
list-style-type 屿§å
¶ä»å¯éçå¼ï¼æèªå®ä¹æ ·å¼ã
åºç¡ç¤ºä¾å计æ°å¨åµå¥ç¤ºä¾è¿ä¸¤ä¸ªç¤ºä¾åå«å±ç¤ºäº counter() å counters() çä½¿ç¨æ¹æ³ã
åå计æ°å¨
åå计æ°å¨æ¯ä¸ç§ç¨äºéåï¼èééå¢ï¼ç计æ°å¨ãåå计æ°å¨å¯ä»¥éè¿å¨ counter-reset 屿§ä¸å°è®¡æ°å¨çåç§°ä½¿ç¨ reversed() 彿°å
裹æ¥å建ã
åå计æ°å¨çé»è®¤åå§å¼ä¸å ç´ çæ°éç¸åï¼ä¸åäºå¸¸è§çé»è®¤åå§å¼ä¸º 0 ç计æ°å¨ï¼ãè¿ä½¿å¾å®ç°ä»å ç´ æ°é为åå§å¼åæ°å° 1 ç计æ°å¨å徿´å 容æã
ä¾å¦ï¼è¦å建ä¸ä¸ªå为 section åå计æ°å¨ï¼ä½¿ç¨é»è®¤åå§å¼ï¼ï¼ä½ åªéè¦è¿æ ·åï¼
counter-reset: reversed(section);
ä½ ä¹å¯ä»¥æå®å®çåå§å¼ã
计æ°å¨çå¼ä¼éçéè¿ counter-increment 屿§æå®çè´æ°éåã
夿³¨ï¼å¯¹äºéåå计æ°å¨ï¼ä½ ä¹ä»ç¶å¯ä»¥ä½¿ç¨ counter-increment 屿§å®ç°éåã使ç¨åå计æ°å¨çä¼ç¹å¨äºï¼å
¶é»è®¤åå§å¼å¯ä»¥èªå¨æ ¹æ®å
ç´ æ°éçæï¼èªå¨åºç¨äºæåºå表ç list-item 计æ°å¨ä¹å¯ä»¥åæ¤å转ç¼å·ã
æåºå表ï¼list itemï¼è®¡æ°å¨
ä½¿ç¨ <ol> å
ç´ å建çæåºå表ï¼ä¼èªå¨åºç¨å为 list-item ç计æ°å¨ã
åå
¶ä»ç计æ°å¨ä¸æ ·ï¼å
¶ä¹æ¯ä¸ä¸ªé»è®¤èªå¢ï¼+1ï¼ä¸åå§å¼ä¸º 0 ç计æ°å¨ï¼å¯¹äºåå计æ°å¨ï¼å以å
ç´ æ°é为åå§å¼ï¼ä¸é»è®¤èªåï¼-1ï¼ãä¸èªå®ä¹ç计æ°å¨ä¸åï¼list-item æ¯æ ¹æ®å
¶æ¯å¦ä¸ºåå计æ°å¨èèªå¨èªå¢æèªåçã
å¯ä»¥éè¿ CSS ä¿®æ¹ list-item 计æ°å¨åºç¨å¨æåºå表ä¸çé»è®¤è¡ä¸ºãä¾å¦ï¼ä½ å¯ä»¥æ¹åé»è®¤åå§å¼ï¼æä½¿ç¨ counter-increment æ¹åé墿éåçæ¹å¼ã
示ä¾
>åºç¡ç¤ºä¾
以ä¸ç¤ºä¾ä¼å¨æ¯ä¸ä¸ªæ é¢åæ·»å ä¸ä¸ªâSection [the value of the counter]:âå符串ã
CSS
body {
counter-reset: section; /* Set a counter named 'section', and its initial value is 0. */
}
h3::before {
counter-increment: section; /* Increment the value of section counter by 1 */
content: "Section " counter(section) ": "; /* Display the word 'Section ', the value of
section counter, and a colon before the content
of each h3 */
}
HTML
<h3>Introduction</h3>
<h3>Body</h3>
<h3>Conclusion</h3>
ç»æ
åºç¡ç¤ºä¾ï¼åå计æ°å¨
以ä¸ç¤ºä¾ä¸ä¸ä¸ä¸ªç±»ä¼¼ï¼åºå«å¨äºå
¶ä½¿ç¨äºåå计æ°å¨ãå¦æä½ çæµè§å¨æ¯æ reversed() 彿°ï¼å
¶ç»æå°±ä¼ç±»ä¼¼äºè¿æ ·ï¼

CSS
body {
counter-reset: reversed(
section
); /* Set a counter named 'section', and its initial value is 0. */
}
h3::before {
counter-increment: section -1; /* Decrement the value of section counter by 1 */
content: "Section " counter(section) ": "; /* Display the word 'Section ', the value of
section counter, and a colon before the content
of each h3 */
}
HTML
<h3>Introduction</h3>
<h3>Body</h3>
<h3>Conclusion</h3>
ç»æ
ä¸ä¸ªæ´å 夿ç示ä¾
ææ¶æä»¬ä¸éè¦è®©è®¡æ°å¨å¨æ¯ä¸æ¬¡é墿¶é½æ¾ç¤ºå ¶å¼ï¼ä»¥ä¸ç¤ºä¾ä» å¨é¾æ¥çå 容为空æ¶å°å ¶æ¿æ¢ä¸ºç±è®¡æ°å¨çæçå¼ã
:root {
counter-reset: link;
}
a[href] {
counter-increment: link;
}
a[href]:empty::after {
content: "[" counter(link) "]";
}
HTML
<p>See <a href="/proxy/www.mozilla.org/"></a></p>
<p>Do not forget to <a href="contact-me.html">leave a message</a>!</p>
<p>See also <a href="/proxy/developer.mozilla.org/"></a></p>
ç»æ
计æ°å¨åµå¥ç¤ºä¾
CSS 计æ°å¨å¯¹å建ç®å½ï¼å¤çº§æåºå表ï¼ç¹å«æç¨ï¼å 为å
¶ä¼å¨åå
ç´ ä¸èªå¨å建ä¸ä¸ª CSS 计æ°å¨çå®ä¾ãä½¿ç¨ counters() 彿°ï¼å¯ä»¥å¨ä¸å级å«çåµå¥è®¡æ°å¨ä¹é´å¯ä»¥æå
¥åéå符串ã
CSS
ol {
counter-reset: section; /* Creates a new instance of the
section counter with each ol
element */
list-style-type: none;
}
li::before {
counter-increment: section; /* Increments only this instance
of the section counter */
content: counters(section, ".") " "; /* Combines the values of all instances
of the section counter, separated
by a period */
}
HTML
<ol>
<li>item</li> <!-- 1 -->
<li>item <!-- 2 -->
<ol>
<li>item</li> <!-- 2.1 -->
<li>item</li> <!-- 2.2 -->
<li>item <!-- 2.3 -->
<ol>
<li>item</li> <!-- 2.3.1 -->
<li>item</li> <!-- 2.3.2 -->
</ol>
<ol>
<li>item</li> <!-- 2.3.1 -->
<li>item</li> <!-- 2.3.2 -->
<li>item</li> <!-- 2.3.3 -->
</ol>
</li>
<li>item</li> <!-- 2.4 -->
</ol>
</li>
<li>item</li> <!-- 3 -->
<li>item</li> <!-- 4 -->
</ol>
<ol>
<li>item</li> <!-- 1 -->
<li>item</li> <!-- 2 -->
</ol>
ç»æ
è§è
| è§è |
|---|
| CSS Lists and Counters Module Level 3> # auto-numbering> |