前端 - 这样写样式浏览器会选取 DOM 元素两次吗?
ringa_lee
ringa_lee 2017-04-17 11:57:03
[CSS3讨论组]

.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;
}
ringa_lee
ringa_lee

ringa_lee

全部回复(7)
高洛峰

你这个不是样式吗?什么叫选取dom 啊,应该是渲染dom吧
你这样会渲染两次的,很明显第一种写法比较好。

巴扎黑

看你的应用场景,其实text-align:center可以学着像bootstrap那样,单独抽取出来,用多个class并行

这样不止他们两个可以用,其他元素也可以共用这个class

.text-center{
    text-align:center;
}
.dom0 {
    color: red;
    font-size: 12px;
}

.dom1 {
    color: blue;
    font-size: 14px;
}

<p class="text-center dom0"></p>    
<p class="text-center dom1"></p>    
天蓬老师

(o´・ェ・`o) 管你什么样式呢,反正打包后都抽成公共的了~

大家讲道理

无论你CSS怎样写,CSS解析器会按优先级规则,在渲染DOM元素前计算出最终应用到这个DOM元素上的样式
并不是从上到下一次应用样式

高洛峰

如果是像你这样的选择器的话 完全没有必要用第一种。因为提取出来的完全没有用。复用不了。
你可以将可以复用的功能提取出来,比方说:

.textCenter:{
    text-align:center;
    display:block;
}
.dom1{
    font-size:12px;
    color:red;
}
.dom2{
    font-size:14px;
    color:blue;
}

<p class="textCenter dom1"></p>
<p class="textCenter dom2"></p>
<p class="textCenter "></p>
高洛峰

这两种写法都可以,不过推荐写成公共样式,这样代码简洁一些,也方便管理。

巴扎黑

你的第一个写法,确实会对同一个渲染两次。另,达到同样的效果,代码越少越好。你该去了解了解sass或less.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号