本文小編為大家詳細(xì)介紹“寫css的技巧有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“寫css的技巧有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了分宜免費建站歡迎大家使用!
技巧一
每當(dāng)你寫CSS時,你想盡可能的回到樹形頂部。換句話說,回到:root。
例如,我們的網(wǎng)站有一個側(cè)邊欄,希望在這個側(cè)邊欄上添加一個簡短的個人介紹。其HTML的結(jié)構(gòu)看起來可能會像這樣:
CSS是這樣寫的:
.Bio {
font-size: .8em;
line-height: 1.5;
color: #888;
}
這樣寫是能正常工作的,并不存在樣式上的問題。但是,側(cè)邊欄還有一個導(dǎo)航 nav ,很有可能他們有一些樣式是相同的。在我們這個示例中 font-size 和 color 都是相同的。讓我們把這些屬性從 nav 和 .Bio 中提取出來,并且將它們添加到其父元素 .SideBar 中:
.SideBar {
font-size: .8em;
color: #888;
}
事實證明,在 .Posts 中已經(jīng)設(shè)置了 line-height:1.5; 。似乎整個頁面都使用了相同的行高,那么我們可以將 .Bio 和 .Posts 中的 line-height 移到根元素中:
:root {
line-height: 1.5;
}
這看起來是一個CSS常識,但他也不會太關(guān)注兄弟元素定義同樣的事情。這也讓你發(fā)現(xiàn),有一些代碼產(chǎn)生重復(fù)。其實這并不可怕,因為我們只需要花點時間重新重構(gòu)代碼,但這樣保持了CSS的代碼處理健康狀態(tài)。
技巧二
樣式總是作為特定屬性組合出現(xiàn)
一個很好的例子就是 color 和 bakground-color 的組合。除非你只做小調(diào)整,不然你需要一起調(diào)整他們。當(dāng)給一個元素添加背景顏色時,它可能不包含任何文本,但可能會有一些子元素。因此,我們一起設(shè)置前景色(color)和背景色(background-color),我們總是可以確定這些元素不會遇到任何易讀性和對比問題。下次我們改變背景色時,不需要到處尋找需要修改的文本顏色,因為他們都以一個組合的形式出現(xiàn)在一起。
技巧三
使用動態(tài)值,比如currentColor和em等
有時候文本顏色也會使用在其他屬性上。比如說border、box-shadow或者SVG圖標(biāo)中的fill上。定義相同顏色有一個替代方案,可以直接使用currentColor。默認(rèn)情況下,color是可以繼承的,你只需要在一個地方修改就可以改變其他屬性的顏色。
同樣的,給font-size屬性使用em單位,允許你只修改:root的font-size就可以改變元素的盒模型大小。
技巧四
使用 inherit 屬性值繼承其父元素樣式來覆蓋UA自帶樣式。
像 button 、 input 這樣的表單控件,不同的瀏覽器都會有自己的樣式風(fēng)格(UA樣式)。我們可以使用 inherit 繼承其父元素樣式,從而覆蓋瀏覽器的UA樣式。
button,
input,
select,
textarea {
color: inherit;
font-family: inherit;
font-style: inherit;
font-weight: inherit;
}
上面示例代碼取自sanitize.css。normalize.css也是這樣使用的。如果你不是這樣使用,說明你已經(jīng)…
你也可以嘗試在 input[type="range"] 、 input[type="radio"] 和 input[type="checkbox"] 等元素上直接使用前面介紹的currentColor屬性自動匹配顏色?;蛟S你不需要改變什么,可以將一個亮色系變成一個暗色系。
讀到這里,這篇“寫css的技巧有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。