簡體   English   中英

使用CSS為有序列表設置樣式

[英]Styling ordered lists with CSS

我有一個HTML的有序列表。 我想只為數字(1,2,3,...)添加樣式,而不是列表項本身。

有沒有辦法參考這些數字?

謝謝 !

CSS2提供對生成內容的控制,這將允許您使用:before pseudoclass :before獨立於項目的其余部分來設置自動生成的內容的樣式。 這是符合OP的后續標准的解決方案(列表枚舉器的背景顏色,但不符合項目)。

<!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" xml:lang="en">

<head profile="http://gmpg.org/xfn/11">

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <style type="text/css">

    body { margin: 0; padding: 10px; }
    ol {
        counter-reset: item; 
        margin: 0;
        padding: 0;
    }
    li {
        display: block;
        padding: 10px 0;
        margin: 0 0 10px 0;
    }
    li:before { 
        content: counter(item);
            /* 
                To generate punctuation after the number, just precede or follow with a string: 
                content: "Chapter " counter(item) " >> ";  

                To make nested counters (1, 1.1, 1.1.1, etc.), use:
                content: counters(item, ".");
            */
        counter-increment: item; 

        background-color: #ddd;
        margin-right: 15px;
        padding: 10px;
    }
    ol li ol { margin-bottom: -10px; padding-top: 10px; }
    ol li ol li { margin: 10px 0 0 30px; }

    </style>
</head>

<body>

<ol>
    <li>Turtles</li>
    <li>Lizards
        <ol>
            <li>Salamanders</li>
            <li>Geckos</li>
        </ol>
    </li>
    <li>Velociraptors</li>
</ol>

</body>
</html>

是的,您只需設置ol元素的樣式,然后覆蓋li元素上的樣式。

ol
{
    color: blue;
    font-style: italic;
}
ol li p
{
    color: black;
    font-style: normal;
}

<ol>
    <li><p>Text</p></li>
    <li><p>Text</p></li>
    <li><p>Text</p></li>
</ol>

如果需要,可以將p標記更改為<divs> ,但如果將它們保留為p則必須剝離邊距和填充。

最初我只是評論cowbellemoo的答案,因為它在IE7中不起作用,我想解釋如何實現IE7的兼容性,但我想我的解決方案是一個完全不同的答案。

他的答案一切都很好,但在IE7中不起作用。 因此,如果這對您來說很重要,請根據此A List Apart文章提供另一種方法: http//www.alistapart.com/articles/taminglists/#custom

標記

<ul>
    <li><span>01.</span> Text content</li>
    <li><Span>02.</span> More text content</li>
</ul>

CSS

ul {
    list-style: none;
    margin-left: 0;
    padding-left: 1em;
    text-indent: -1em;
}

您可以做一些變化,要么浮動<span>並給它一個寬度和邊距,要么將<li>設置為position:relative; 給它適當的填充,並將你的跨度絕對定位在正確的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM