摘要:它們都錯誤地使用了波浪選擇器,并造成了很多地方的代碼臃腫。大家可能以前也都遇到或者使用過波浪選擇器,畢竟它作為選擇器已經很長時間了,甚至都支持。我的經驗里,使用波浪選擇器一般都是通過而不是來選擇兄弟元素的。
原文:The tilde CSS selector, use carefully!
最近我的一些項目都遇到了一些類似的樣式問題。它們都錯誤地使用了波浪選擇器,并造成了很多地方的CSS代碼臃腫(CSS Bloat)。大家可能以前也都遇到或者使用過波浪選擇器,畢竟它作為CSS選擇器已經很長時間了,甚至IE7都支持。波浪選擇器用來選擇所有匹配到的兄弟元素。
一個例子效果:
這里我們的波浪選擇器匹配了.something-important的所有兄弟元素,item2,3,4。
它太容易制造出脆弱的代碼了。
我的經驗里,使用波浪選擇器一般都是通過type而不是class來選擇兄弟元素的。這樣會造成你不知道這個選擇器寫這兒到底是干嘛用的。上面這個例子我們就不知道.something-important ~li選擇到的
通常來說多敲幾個字給每個元素都加上class可以給未來的維護減少很多不必要的麻煩。
用武之地“在寫代碼的時候,永遠假設最后一個維護你的代碼是一個知道你家住在哪兒的沉默的精神病人。寫點人讀得懂的代碼。——John Woods”
待編輯
避免CSS代碼臃腫我認為這篇文章并不僅僅就是告訴大家避免使用波浪選擇器,更多的是讓大家知道遇到CSS的問題時不要從加上更多的CSS的代碼開始。這從來都不是保持代碼可維護性的方法。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/115221.html
有哪些選擇器 基本選擇器 通配選擇器(*) ID選擇器(#ID) 類選擇器(.className) 元素選擇器(tagName) 后代選擇器(a b) 子元素選擇器(a>b) 相鄰后面兄弟元素選擇器(a + b) 通用后面兄弟選擇器(a ? b) 群組選擇器(selector1,selector2,...) 這里面平時不太常用的選擇器有相鄰后面兄弟選擇器和通用后面兄弟選擇器首先,很多資料上把它...
有哪些選擇器 基本選擇器 通配選擇器(*) ID選擇器(#ID) 類選擇器(.className) 元素選擇器(tagName) 后代選擇器(a b) 子元素選擇器(a>b) 相鄰后面兄弟元素選擇器(a + b) 通用后面兄弟選擇器(a ? b) 群組選擇器(selector1,selector2,...) 這里面平時不太常用的選擇器有相鄰后面兄弟選擇器和通用后面兄弟選擇器首先,很多資料上把它...
2017-07-28 前端日報 精選 React的新引擎—React Fiber是什么?Chromeless 讓 Chrome 自動化變得簡單【譯】JavaScript屬性名稱中的隱藏信息前端測試框架 JestES6中的JavaScript工廠函數Why Composition is Harder with ClassesGET READY: A NEW V8 IS COMING, NODE.JS...
閱讀 2376·2021-09-30 09:47
閱讀 1367·2021-09-28 09:35
閱讀 3237·2021-09-22 15:57
閱讀 2485·2021-09-22 14:59
閱讀 3634·2021-09-07 10:25
閱讀 3069·2021-09-03 10:48
閱讀 3035·2021-08-26 14:14
閱讀 933·2019-08-30 15:55