html – 嵌套元素上的CSS和覆盖样式

这是来自 here问的另一个问题,但我认为这可能是一种“最佳实践”方法.

在设计网站时,设计师很可能会为网站中的所有元素组合一组通用样式. (Div / Spans / H1 / H2s中文本的标准字体)

对于表格,他们可能也在定义默认的全站点边界和对齐方式……例如

Table
{
   border: dashed 1px #333333;
   padding: 2px;
}

但是,如果您在表格中有一个表格(从RSolberg的示例中,在DataGrid中有一个AJAX日历),那么您的父级&嵌套表将继承这些样式. (假设这就是为什么他们被称为Cascading)

我的问题是将样式应用于最顶层元素的最佳实践是什么,而没有子元素也继承它们.

你应该只提供一个覆盖,撤消你应用的任何样式.

例如

Table
{
   border: dashed 1px #333333;
   padding: 2px;
}

Table Table
{
   border: solid 0px #000000;
   padding: 0px;
}

解决方法

如果您有这样的HTML:
<html>
  ...
  <body>
    <div>
      <div>
      <div>
    <div>
  </body>
</html>

您可以使用子选择器(>)将样式仅应用于body元素的子div,如下所示:

body > div
{
  border:solid 1px orange;
}

嵌套的div不会获得边框.

欲了解更多信息,请访问:http://www.w3.org/TR/CSS2/selector.html#child-selectors.

请注意,Internet Explorer 6不支持子选择器.

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在&#39;&#39;,则表示换行,用&#39;&#39;切割。
代码实现 option = { backgroundColor: &amp;#39;#080b30&amp;#39;, tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...