列表元素不从父项继承样式

时间:2012-02-17 09:34:05

标签: html css

任何想法为什么'li'元素不会在以下片段中继承'p'元素样式? 即'role1'和'role2'呈现为黑色,而'Hello world!'并且'Inside nested p'为蓝色。

<!DOCTYPE html>
<html>
    <title>test</title>
    <head>
        <style type="text/css">
        p {
            color: blue;
        }
        </style>
    </head>
    <body>
        <p>
            Hello World !
            <ol>
                <li>role1</li>
                <li>role2</li>
            </ol>
            <p>
                Inside nested p
            </p>
        </p>
    </body>
</html>

3 个答案:

答案 0 :(得分:3)

Ya,Rick Hoving是对的。如果你想将蓝色应用于所有p和ol或者什么。您需要将其放入div块/容器中,如下所示。

<!DOCTYPE html>
<html>
    <title>test</title>
    <head>
        <style type="text/css">
        div {
            color: blue;
        }
        </style>
    </head>
    <body>
    <div>
        <p>
            Hello World !
            <ol>
                <li>role1</li>
                <li>role2</li>
            </ol>
            <p>
                Inside nested p
            </p>
        </p>
    </div>
    </body>
</html>

答案 1 :(得分:2)

p标记不能包含块级元素。 所以浏览器会自动关闭p标签。 你的html将解析如下:

<!DOCTYPE html>
<html>
    <title>test</title>
    <head>
        <style type="text/css">
        p {
            color: blue;
        }
        </style>
    </head>
    <body>
        <p>
            Hello World !
        </p>
            <ol>
                <li>role1</li>
                <li>role2</li>
            </ol>
            <p>
                Inside nested p
            </p>
    </body>
</html>

现在你明白为什么Hello world和Inside嵌套p是蓝色而li元素不是

答案 2 :(得分:2)

尝试在样式说明中使用您自己的自定义标记或类:

<!DOCTYPE html>
<html>
    <title>test</title>
    <head>
        <style type="text/css">
        custom {
            color: blue;
        }
        </style>
    </head>
    <body>
        <custom>
            Hello World !
            <ol>
                <li>role1</li>
                <li>role2</li>
            </ol>
            <p>
                Inside nested p
            </p>
        </custom>
    </body>
</html>