这样写样式浏览器会选取 DOM 元素两次吗?
.dom0, .dom1 {
text-align: center;
}
.dom0 {
color: red;
font-size: 12px;
}
.dom1 {
color: blue;
font-size: 14px;
}
如果少量公用的样式 是不是分别写比较好 虽然这样会造成代码的重复
.dom0 {
color: red;
font-size: 12px;
text-align: center;
}
.dom1 {
color: blue;
font-size: 14px;
text-align: center;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
答主是想问两者在性能上的区别吧?
其实两种方式都可以,CSS不是JS,不是说分开写就会去选择DOM两次,CSS更像是这样的过程:
答主似乎理解成了CSS里面写一个
.dom1
就是让HTML解释器去找class=dom1
的HTML元素,全都改成{...}
里面的样式,这个理解是错误的。所以,在写CSS的时候,一些公用的东西,可以单独拿出来,方便修改,也方便后面使用。比如:
CSS:
HTML:
----------2017.03.05 追加----------
CSS会追加两次吗?
每一个DOM都有我们能定义的CSS的所有属性,我们定义样式只是去改变他们的那些样式属性而已。
比如:
<p>默认样式的p标签</p>
我们没有指定他的颜色,但是实际上,这个p标签的
color
属性是#000
(黑色的)。然后重复定义的样式会覆盖前面的定义,比如:
CSS:
HTML:
↑ 这个p标签颜色最后会是
#333
。因为#222
虽然也被记录下来了,但是他在前面,被覆盖了。如果HTML如下,也会被覆盖:
HTML:
↑ 这个p标签颜色会是
#444
。因为标签自带的样式定义优先级是最高的。(他定义在所有样式表后面。)有一个方法可以不被覆盖,那就是加入
!important
。(IE6及以下不支持)具体可以参考http://www.w3chtml.com/css3/r...
CSS:
HTML:
↑ 这是p标签的颜色就是
#222
,因为加了!important
,所后面给他的样式都不会覆盖这一条。你这个不是样式吗?什么叫选取dom 啊,应该是渲染dom吧
你这样会渲染两次的,很明显第一种写法比较好。
看你的应用场景,其实text-align:center可以学着像bootstrap那样,单独抽取出来,用多个class并行
这样不止他们两个可以用,其他元素也可以共用这个class
(o´・ェ・`o) 管你什么样式呢,反正打包后都抽成公共的了~
无论你CSS怎样写,CSS解析器会按优先级规则,在渲染DOM元素前计算出最终应用到这个DOM元素上的样式
并不是从上到下一次应用样式
如果是像你这样的选择器的话 完全没有必要用第一种。因为提取出来的完全没有用。复用不了。
你可以将可以复用的功能提取出来,比方说:
这两种写法都可以,不过推荐写成公共样式,这样代码简洁一些,也方便管理。
你的第一个写法,确实会对同一个渲染两次。另,达到同样的效果,代码越少越好。你该去了解了解sass或less.