成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? CSS規則層疊的應用 css必須要注意的幾點
全站頭部文字 我要出現在這里
CSS規則層疊的應用 css必須要注意的幾點 473 2024-10-16   

理論基礎是必要的,實踐是提升和理解理論的方法,兩者同樣重要,任何設計和開發人員離開這兩者的平衡,不論偏向哪一方,都會范或左或右的錯誤。不過我所講的這個方法在實際應用中到底有什么用呢。顯然,它不能夠給我們創造出圓角矩形,也不能夠給我們創造出分列布局,更加不可能給我們一個固定在文檔頭部的導航欄。這個算法的實踐應用在于: 良好的CSS編程規范 。這是一個宏觀的實踐,與我剛才提到的微觀實踐同樣重要,但卻更加難以掌握。

本文并不想包含所有的良好的CSS編程規范,也不可能,我所能夠提供的也只是我個人編寫CSS的規范小結,我想這些規范是盡可能靠近CSS的運作本質的。

不要使用inline CSS
user style不在你的掌控之內
不要使用important規則
按照特殊性從低到高編寫CSS
前三條不是我說的重點,我將一筆帶過。

inline CSS的特殊性是最高的,如果你CSS文件中的屬性與inline CSS沖突,那么你CSS文件中的屬性無效,這和我們僅在CSS文件中對樣式進行debug的習慣不符。inline CSS也是丑陋的,它將樣式插入HTML文檔,所以應當放棄使用inline CSS。

如果用戶將user style設置為important,那么不論怎么寫CSS規則,總是不能覆蓋用戶的important語句,所以試圖覆蓋所有的user style是徒勞的。高興的是我們不需要考慮這些了。

important規則是個異類,它不符合我們慣有的思維方式,不論我們如何增加CSS規則的特殊性和先后順序,important規則都將覆蓋與它競爭的規則,這也會打亂CSS規則的習慣規律,給debug帶來麻煩。如果你要 使用important規則來hack瀏覽器 ,那么你應當在一個指向唯一元素的selector中應用該規則。(PS. hack應當是解決方法中最后考慮的一項,因為它長得太丑陋了。)

最后一點,如何做到按照特殊性從低到高編寫CSS?

關鍵在于 模塊化CSS 。

添加全局CSS
添加當前頁面統一CSS
將頁面分成幾個模塊
在每個不同模塊上使用id掛鉤,相同模塊上使用class掛鉤
添加每個模塊的統一CSS
將每個模塊分成幾個子模塊,并且回到第4步開始循環直至樣式添加完成。
編寫良好的CSS是一個設計問題,而不是一個實現問題。我們首先應當將編寫特殊性非常低的全局CSS內容,也就是我們 常用的reset.css 。它是我們整個網站中所有頁面的默認樣式。

如果有哪個頁面具有獨特的統一樣式,如某一頁的背景與其他頁面不同,那么我們可以給某一頁面添加ID,然后在ID下編寫當前頁面的統一CSS。

body#special{
background-color:black;
}
統一樣式編寫好后,我們將頁面分成幾個模塊,如果這些模塊具有基本相同的樣式,那么使用class掛鉤,如果樣式并非相同,那么使用id掛鉤,以后每次分模塊時都應當遵循這一原則,因為class的特殊性不高,所以如果不是看起來顯然類似的模塊,就不應當使用class。id的名字通常可以模塊的用途作為名字。如 head 、 bottom 等。id selector在層疊中起了關鍵作用,因為id具有排他性,還具有較高的特殊性,能夠防止CSS規則被不經意的覆蓋。

在某個模塊中我們可能有一些統一CSS,那么我們就需要在使用id selector來編寫當前模塊下的統一樣式。

#head p{
color:red;
}
添加class掛鉤時,我建議使用父模塊(或者頁面本身)的id在作為class名的第一部分。如果我添加一個獨立的頁面(body#special),那么為該頁面分好模塊后,我應當將該頁的模塊命名為 special_head 、 special_bottom 等。

或者在某些頁面模塊中使用class掛鉤時應當使用 head_col 等。這樣做的好處是我們不用使用

#head .col{
/* 頭部中每一列的樣式 */
}
而可以直接使用

.head_col{
/* 頭部中每一列的樣式 */
}
從而不用擔心命名沖突。

而對于模塊下直接添加了id selector的元素,我們可以直接使用該selector,并且也在其名字前添加父模塊的id。

#head_navigator{
/* 頭部中導航欄的樣式 */
}
要做到模塊化CSS我們應當盡量防止跨模塊的CSS出現,我想一條好的原則是:如果某一樣式的跨模塊特性不是你一目了然的,那么就不要使用跨模塊的CSS。一個例外是全局CSS或者模塊內的統一CSS。而對于那些并非一目了然的,并非具有統一樣式的,建議在每個子模塊下分別定義。這就像是編寫Java程序中的面向對象的設計一樣,我們要降低模塊之間的互相依賴,使得相同模塊的CSS規則在一起,略有不同的就完全分開,這樣不但易于維護,還能夠保證特殊性從低到高地編寫CSS,從而防止CSS規則被意外的覆蓋

css

主站蜘蛛池模板: av电影网| 金瑞亨为艺术奉献的电影有哪些 | 七年级下册语文谁是最可爱的人笔记 | 密探| 烽火流金电视剧免费观看| 荒笛子简谱| 出埃及记电影| 长安长安朗诵报名入口| 同志电影副歌1080p| 电影名《走进房间》在线观看| 郑乙永| 草原大作战| 少女免费观看完整电视电影| 搜狐视频官网| 丁莹| 欢乐的牧童钢琴谱| 波多野结衣电影大全| 小贝流浪记动画片全集| 黄婉| 《起风了》数字简谱| 欧美17p| lol小孩子不能看的动画视频| 天才不能承受之重| 乙亥北行日记| 男同视频在线| 色戒在线视频观看| 流浪地球2视频免费播放下载 | 霹雳火 电影| 看图猜明星| 李采潭全部作品| 坚强的理由吉他谱| 一路狂奔| 日本xxx.| 大太监李莲英| 赵艳红| 欧美成熟| 金沙滩秦腔剧情介绍| 成年黄色在线观看| 绝岭雄风| 四级词汇电子版| 杨超越穿游泳服装|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103