html - css 相同的类名获得相同的样式

标签 html css

HTML:

<div id="wrapper">
  <div class="body">
     text text text
  </div>
  <div class="comment_submit">
       <!-- here goes username text field !-->
       <div class="body">
         <textarea></textarea>
       </div>
       <!-- here goes submit button !-->
    </div>
</div>

CSS:

#wrapper{
  float:left;
  width:100%;
}
#wrapper .body{
  border:1px solid red;
  background:#f5f5f5;
  padding:5px;
}
.comment_submit .body{
  border:2px solid red;
  background:#cccccc;
}

为什么在 comment_submit div 中的 body div 获得了 #wrapper .body 风格,而不仅仅是 .comment_submit .body 风格?

我知道 #wrapper .body 样式包括所有位于 #wrapper 内的 .body div,但我该如何阻止它呢?

最佳答案

这解决了您的问题:

#wrapper > .body{
  border:1px solid red;
  background:#f5f5f5;
  padding:5px;
}
  1. #wrapper .body = "选择每个 .body#wrapper 的后代。
  2. .comment_submit .body = "选择每个 body 类,它是 .comment_submit 的后代。

ID 选择器比类选择器具有更高的特异性,因此第一个选择器中定义的属性优先于 #2 中的属性。

  • 该解决方案利用子选择器 >,它表示:“选择每个 .body 元素,它是 直接子元素>#wrapper.

关于html - css 相同的类名获得相同的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021430/

相关文章:

javascript - 在 div 中使用 ngFor 时 Angular 2 模板解析错误

html - 如何通过 Bootstrap 响应让 Center Div 堆栈在顶部?

CSS断词不断词

javascript - 单击按钮即可重新启动我的 Canvas

javascript - 防止自动向下滚动 Jquery?

html - 将整个内联 block div 作为超链接

javascript - 使用 Javascript 渲染元素来加快页面速度?

html - Chrome 动画 gif 背景图像无法播放 - 背景大小

jquery - 为什么当菜单完全展开并且我在移动设备上向下滚动时菜单会折叠

html - 样式属性在设计时不适用于 AngularJS 绑定(bind)