<style>不适用,我不知道为什么

iOn*_*247 -1 html css

我有一些非常基本的HTML,并尝试div使用内联样式设置样式.第一个片段通过将样式放在head元素中来工作,但另一个片段根本不起作用.是什么原因?

作品

<!DOCTYPE html>
<html>
<head>
    <style>
        #click-me {
            background-color: red;
            width: 200px;
            height: 200px;
        }
    </style>
</head>
<body>
    <div id='click-me'></div>
    <iframe src='//someURL' width=800 height=600>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

不行

<!DOCTYPE html>
<html>
<head>

</head>
<body>
    <div id='click-me'></div>
    <iframe src='//someURL' width=800 height=600>


    <style>
        #click-me {
            background-color: red;
            width: 200px;
            height: 200px;
        }
    </style>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 8

您的<style>标记位于<iframe>标记内,因此不会将其解析为父文档的一部分.

添加</iframe>,它应该工作.

  • 是的,未闭合的`iframe`可能是它不起作用的原因,但`style`标签首先不应该在体内. (4认同)

Jam*_*lly 7

style元素被设计为仅放置在HTML文档的head元素中(需要元数据).

如果你想使用内联样式,你可以这样做:

<div id='click-me' style='background-color: red; width: 200px; height: 200px;'></div>
Run Code Online (Sandbox Code Playgroud)

然而,这通常是不受欢迎的,因为样式应该包含在样式表中以便于维护.

编辑:这个在你的情况下不起作用的原因在SLaks的答案中有所介绍:https://stackoverflow.com/a/26258094/1317805

  • 实际上,`<style>`可以在任何地方使用. (5认同)
  • @SLaks我从来没有说过它没有,我只是说它打算放在`head`元素中. (2认同)