如何正確的抄網(wǎng)頁(yè)

box model

為了加一個(gè)新功能,抄了部分頁(yè)面順帶一大坨 css 代碼,結(jié)果原有部分頁(yè)面樣式就亂掉了。罪魁禍?zhǔn)拙褪莾烧叩暮心P筒煌ㄈ缟蠄D),其中 W3C 模型也被成為 standards mode,IE 模型也被稱為 quirks mode。當(dāng)然部分選擇器相同也產(chǎn)生了污染。

在調(diào)查原因的過(guò)程中,發(fā)現(xiàn)一個(gè)做法可以很好的分隔開(kāi)不同來(lái)源的 css。即在利用 less 的 mixin 特性,在新加入的 css 外套一層選擇器,在這層選擇器內(nèi)定義相應(yīng)的盒模型,然后將相關(guān)的 html 外也套一個(gè)對(duì)應(yīng)的選擇器,這樣就完成了隔離。

舉個(gè)栗子,A 站是 quirks mode,從該站抄來(lái)部分代碼如下


html

<div id="header">...</div>
...

css
#header { color: #6c94be;}
...


首先對(duì) css 加入外層的自定義選擇器進(jìn)行隔離,同時(shí)定義盒模型(本例為 quirks mode)

.site-a,
.site-a *,
.site-a *:before,
.site-a *:after {

  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;

  #header { color: #6c94be;}
  ...
}

以上 less 部分編譯后生成的 css 將會(huì)限定在 .site-a 的子元素內(nèi)生效。

然后在相關(guān) html 中也套入對(duì)應(yīng)選擇器

<div class="site-a">
  <div id="header>...</div>
  ...
</div>

這樣就隔離了新代碼對(duì)既存部分帶來(lái)的影響。
至于既存部分代碼對(duì)新代碼的影響,因?yàn)樾麓a外多套了一層選擇器優(yōu)先級(jí)更高,所以也不會(huì)受到任何影響。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,796評(píng)論 1 92
  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過(guò)程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,212評(píng)論 0 1
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁(yè)面在哪些流覽器測(cè)試過(guò)?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,228評(píng)論 0 8
  • 簡(jiǎn)介瀏覽器可以被認(rèn)為是使用最廣泛的軟件,本文將介紹瀏覽器的工 作原理,我們將看到,從你在地址欄輸入google.c...
    聽(tīng)風(fēng)閣閱讀 3,313評(píng)論 0 7
  • Vue.js 的內(nèi)聯(lián)表達(dá)式非常方便,但它最合適的使用場(chǎng)景是簡(jiǎn)單的布爾操作或字符串拼接。如果涉及更復(fù)雜的邏輯,你應(yīng)該...
    hutou閱讀 17,715評(píng)論 1 9