#和。在为一个元素声明一组样式时,在决定使用哪一种样式时使用的语义是什么?


当前回答

下面是我解释规则的方法。style和#style是矩阵的一部分。 如果没有正确的顺序,它们就会凌驾于对方之上,或者引起冲突。

这是一条线。

矩阵

#style 0,0,1,0 id

.style 0,1,0,0 class

如果你想覆盖这两个,你可以使用<style></style>女巫有一个矩阵级别或1,0,0,0。 @media查询将覆盖上面的所有内容… 我不确定,但我认为ID选择器#只能在一个页面中使用一次。

其他回答

#是一个id选择器。它只匹配具有匹配id的元素。 Next样式规则将匹配id属性值为"green"的元素:

#green {color: green}

更多信息请参见http://www.w3schools.com/css/css_syntax.asp

.class目标是以下元素:

<div class="class"></div>

#class目标如下元素:

<div id="class"></div>

注意,id在整个文档中必须是唯一的,而任何数量的元素都可以共享一个类。

同样值得注意的是,在级联中,id(#)选择器比b(.)选择器更具体。因此,id语句中的规则将覆盖class语句中的规则。

例如,如果下面两个语句都是:

.headline {
  color:red;
  font-size: 3em;
}

#specials {
  color:blue;
  font-style: italic;
}

应用于相同的HTML元素:

<h1 id="specials" class="headline">Today's Specials</h1>

颜色:蓝色规则将覆盖颜色:红色规则。

就像几乎所有人都已经说过的那样:

“。”表示类,“#”表示ID。

两者的根本区别在于,您可以在页面上反复重用类,而ID只能使用一次。当然,前提是您坚持WC3标准。

如果您有多个具有相同ID的元素,页面仍然会呈现,但是如果/当您尝试通过使用ID调用这些元素来动态更新这些元素时,您将遇到问题,因为它们不是唯一的。

注意ID属性将取代类属性也是有用的。

对已经说过的内容做几个快速扩展…

id必须是唯一的,但是您可以使用相同的id使不同的样式更加特定。

例如,给定这个HTML摘录:

<div id="sidebar">
    <h2>Heading</h2>
    <ul class="menu">
        ...
    </ul>
</div>
<div id="content">
    <h2>Heading</h2>
    ...
</div>
<div id="footer">
    <ul class="menu">
        ...
    </ul>
</div>

你可以应用不同的样式:

#sidebar h2
{ ... }

#sidebar .menu
{ ... }

#content h2
{ ... }

#footer .menu
{ ... }

还有一件有用的事情需要知道:你可以在一个元素上有多个类,通过空格分隔它们…

<ul class="main menu">...</ul>
<ul class="other menu">...</ul>

它允许你在.menu中使用。main有特定的样式。菜单和.sub.menu

.menu
{ ... }

.main.menu
{ ... }

.other.menu
{ ... }