CSS:为什么" div#container"使用的语法而不仅仅是#container?

时间:2015-01-19 05:31:42

标签: css hash syntax

我看到这个" div#container" CSS中使用的语法,我想知道它是如何工作的。有人有资源吗?

3 个答案:

答案 0 :(得分:0)

从CSS标准本身a chart of selector syntaxes

你正在寻找的那个接近结尾:

E#myid  Matches any E element with ID equal to "myid".

换句话说,该选择器将匹配<div id="container">

当然,id值必须是唯一的,因此您不需要指定元素名称。您可以使用*#container#container,而且很多人都可以使用{{1}}。明确地放置元素名称可能被认为更加自我记录。

答案 1 :(得分:0)

http://www.w3schools.com/css/css_selectors.asp

试着看看这个。这将教你如何运作。

#abc {
text-align: center;
color: blue; }

现在,您使用的任何地方#abc文本都将对齐居中,文本颜色将为蓝色。

您也可以根据需要自定义它。

答案 2 :(得分:0)

除了作为上面提到的独特参考,ID增加了特异性(我强烈建议你阅读这篇文章或类似的http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/,理解css中的特异性将使你的生活更轻松)。

我试着用一个简短的例子来解释 - 采取以下措施:

  div#item { background: blue}

  <div id="item" class="item">Hello world</div>

这表示使用ID&#39;容器&#39;蓝色,但如果您在样式表中添加以下样式

  #item {background: purple} 
  .item {background: green}

假设容器是绿色的,因为样式表是级联的,而具有绿色背景的类是最后的。然而,事实并非如此,ID具有更高的优先级,并且即使该类稍后出现也将覆盖一个类。此外,该项目不会是紫色,因为您之前已在id之前添加了div。拥有div和id会进一步提高特异性。

人们经常在css中指定这样的项目:div#container以增加对样式的额外重要性或具体说明只有具有id容器的DIVS可以是蓝色。

我建议不要这样做,它会变得越来越难以覆盖,如果你想让其他东西的背景变成蓝色,那么这种风格就无法使用了。因此,例如以下内容不会使该段落为蓝色,因为该样式特别指出了div。

 div#item {background: blue;}

 <p id="item">Hello world</p>

如果您想将div#项覆盖为粉红色而不是蓝色,则可能需要执行以下操作。

  div#item.item {background: pink}

这看起来并不那么糟糕但是当你开始构建复杂的网站时,这会使你的css变得笨重。

我的建议是让你的css尽可能重复使用,例如以下内容可以轻松覆盖并在任何标记上重复使用。

 .item { background: blue;}

希望有所帮助!认真阅读css特异性,它将真正帮助你。