.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;
}
巴扎黑2017-04-17 11:59:03
答主是想問兩者在性能上的差別吧?
其實兩種方式都可以,CSS不是JS,不是說分開寫就會去選擇DOM兩次,CSS更像是這樣的過程:
HTML渲染器開始遍歷DOM,發現前方有一個p
然後,HTML渲染器跑去樣式表,這個p有這些class和id
符合這個DOM的選擇器的樣式全都記錄下來~
……就這樣,直到整個HTML被渲染完成。
答主似乎理解成了CSS裡面寫一個.dom1
就是讓HTML解釋器去找class=dom1
的HTML元素,全都改成{...}
裡面的樣式,這個理解是錯誤的。
所以,寫CSS的時候,一些公用的東西,可以單獨拿出來,方便修改,也方便後面使用。如:
CSS:
.bold { font-weight:600; }
.yh { font-family: "Microsoft YaHei"; }
.greytext { color: #555; }
HTML:
<p class="bold yh greytext"> 三个样式都有 </p>
<p class="greytext"> 这是灰色字体 </p>
----------2017.03.05 追加----------
每一個DOM都有我們所能定義的CSS的所有屬性,我們定義樣式只是去改變他們的那些樣式屬性而已。
例如:<p>默认样式的p标签</p>
我們沒有指定他的顏色,但是實際上,這個p標籤的color
屬性是#000
(黑色的)。
然後重複定義的樣式會覆寫前面的定義,例如:
CSS:
.dom0 { color: #222; }
.dom1 { color: #333; }
HTML:
<p class="dom0 dom1">猜猜我是什么颜色</p>
↑ 這個p標籤顏色最後會是#333
。因為#222
雖然也被記錄下來了,但是他在前面,被覆蓋了。
如果HTML如下,也會被覆寫:
HTML:
<p class="dom0 dom1" style="color:#444">猜猜我是什么颜色</p>
↑ 這個p標籤顏色會是#444
。因為標籤自帶的樣式定義優先權是最高的。 (他定義在所有樣式表後面。)
有一個方法可以不被覆蓋,那就是加入!important
。 (IE6以下不支援)
具體可以參考http://www.w3chtml.com/css3/r...
CSS:
.dom0 { color: #222 !important; }
.dom1 { color: #333; }
HTML:
<p class="dom0 dom1">猜猜我是什么颜色</p>
↑ 這是p標籤的顏色就是#222
,因為加了!important
,所後面給他的樣式都不會覆蓋這條。
巴扎黑2017-04-17 11:59:03
看你的應用場景,其實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>
高洛峰2017-04-17 11:59:03
如果是像你這樣的選擇器的話 完全沒有必要用第一種。因為提取出來的完全沒有用。復用不了。
你可以將可以重複使用的功能提取出來,比方說:
.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>