前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >继承──页面重构中的模块化设计(三)

继承──页面重构中的模块化设计(三)

作者头像
GhostZhang
发布2022-08-21 09:56:13
2500
发布2022-08-21 09:56:13
举报
文章被收录于专栏:CSS森林CSS森林

继承──页面重构中的模块化设计(三)

Ghostzhang 发表于 2010-04-16 13:24

前面我们了解了 样式的作用域的分类 和 栏目级作用域 。在权值中,还有一个很重要的因素,需要做下补充,起因是这样的,有个同学在CSS森林群里问了个问题:根据样式权值两个关键的因素

  • 权值的大小跟选择器的类型和数量有关
  • 样式的优先级跟样式的定义顺序有关

可以知道,如果10个标签选择器的权值应该比一个类选择的权值高,像这样:

代码语言:javascript
复制
div div div div div div div div div div div{color:blue;}
.c10{color:red;}
代码语言:javascript
复制
<div class="c1">
  <div class="c2">
    <div class="c3">
      <div class="c4">
        <div class="c5">
          <div class="c6">
            <div class="c7">
              <div class="c8">
                <div class="c9">
                  <div class="c10">
                     <div>这段文字是什么颜色?</div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

先别急着看 答案 ,分析下。意料之中?如果 这样 呢?

代码语言:javascript
复制
div{color:blue;}
.c10{color:red;}

是不是跟想的不太一样?难道前面所说的权值是有问题的?前面讲的权值并没有问题,不过漏了一个重要的规则: 继承的权值小于0,0,0,1

样式的继承指被包在内部的标签将拥有外部标签的样式性质。

继承最大的意义在于可以减少重复的定义,比如要定义整个页面的文本颜色,只需要定义body的color样式,body里的所有标签都会继承body的color定义。是不是很方便?方便是相对的,当你想要为body内部分标签定义另一种文本颜色时,继承也许会成为增加重复定义、降低性能的祸首。

并不是所有的样式定义都具有继承的性质,整理了一下常用有继承性的定义1,这些定义在使用的时候要比较注意。

简单分析下上面的例子,最后一部分的代码:

代码语言:javascript
复制
<div class="c10">
    <div>这段文字是什么颜色?</div>
</div>

当定义了c10后,根据权值,类定义的权值是0,0,1,0,应该是比div这个定义0,0,0,1要高的,但由于div是直接定义到标签上的,比起从c10的定义中继承来的定义权值更高。稍微改下就清楚了:

效果展示

从 修改后的例子 可以看到,p标签继承了c10的定义,显示为红色。因此,在使用标签选择器的时候,应特别注意它的作用域,个人的建议是,除了最基本的reset之外,在公共作用域中最好不要使用标签选择器,在栏目级作用域中也应尽可能的少用。

常用有继承性的样式定义:

  • ext-indent
  • ext-align
  • ayout-flow
  • writing-mode
  • ine-break
  • white-space
  • word-wrap
  • ist-style
  • ist-style-image
  • ist-style-position
  • ist-style-type
  • font
  • font-style
  • font-variant
  • font-weight
  • font-size
  • ine-height
  • font-family
  • color
  • ext-transform
  • etter-spacing
  • word-spacing
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-04-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 继承──页面重构中的模块化设计(三)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档