CSS 问题 : What has precendence?

标签 css

我对 CSS 并不陌生,只是不太熟悉它。我今天遇到了一个“问题”,有一个子元素被父元素的 css 覆盖了。经过一番摸索之后,我意识到我需要做的就是添加一个 '! important' 到 css(向你展示我的能力对我来说是全新的)

(我已经放置了一个工作示例@,以生动的色彩说明了我的问题) http://jsfiddle.net/4RYM3/1/

#byIdName div{  /* #1 */
       margin: 30px;
    background:#FF00FF;
}
div#ByIdNameTwo{  /* #2 */
           margin: 30px;
     background:#00FF00;
}
div.idone{
    margin: 20px;
    background:#FFFF00;
}
div.idtwo{
    margin: 0px;
    background:#cccccc;
}
div.idone2{
    margin: 20px ! important;
    background:#FFFF00 ! important;
}
div.idtwo2{
    margin: 0px ! important;
    background:#cccccc ! important;
}

http://www.w3.org/TR/CSS2/cascade.html#specificity

现在看着这个,我无法理解为什么 #1 和 #2 的行为似乎不同(请查看上面的 jsfiddle 链接)。
虽然我很高兴我让这个工作(使用!重要),但我对为什么#1 和#2 以他们现在的方式行事感到困惑.

任何人都可以阐明这种行为吗?

一种方法是首选方法而另一种方法被看不起吗?如果是,为什么(这是我的主要问题)?

提前致谢

最佳答案

它们的行为不同,因为 #byIdName div 指的是父级为 #byIdName 的 div 类型的任何子级

div#ByIdNameTwo 引用 ID 为 #byIdNameTwo 的任何 div

对于直接子级使用 #byIdName>div

对于任何 child ,包括孙子、曾孙……等等。使用

#byIdName div

关于CSS 问题 : What has precendence?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208893/

相关文章:

html - CSS 幻灯片首次在网站上无法正确显示图像

javascript - 如何在页面加载时增加浏览器缩放级别?

html - float 标题行

html - 如何使用 CSS 制作 div 三 Angular 形的顶部和底部?

CSS 内容漂浮在不同尺寸的屏幕上。

css - 如何在使用 CSS 属性 Contain 时防止剪裁 2 个背景?

jquery - 根据设备在 'collapse' 和 'collapse in' 之间进行 Bootstrap 切换

html - CSS 子菜单栏

javascript - 溢出内容的滚动条占据了 100% 高度固定位置侧边栏的一部分

c# - 使用数据绑定(bind)更改 css