Css基礎學習(十) 思考

2021-04-21 18:28:07 字數 2184 閱讀 1451

第十講了,應該說css的基礎學習就告一段落了。我們還需要學習的東西很多,我們還沒有學習css+div的布局呢。不要急,後面一定會學習這項先進技術的,不過不在這個系列裡面。

先來說說已經學會的知識如何更好的應用,我們學習了基礎、語法,可是還沒有在實際的開發中間應用呢。

1、繼承

繼承是個好東西,但是並不是所有的屬性都會繼承的,那我們就要問了,那些屬性是會繼承的,那些屬性是不會繼承的呢?如果要說清楚這個問題,估計可以寫一本參考手冊了。我就簡單說一下規則,如果你不算太笨的話,應該會舉一反三的。大體上,影響你文字外觀的樣式,如字型顏色(顏色屬性)、字型,還有其他和字型有關的屬性,如字型大小、字型寬度和字型樣式都可以被繼承。其他的屬性(比如邊框)不能被繼承,很容易理解吧。

在實際應用中繼承有什麼樣的指導作用呢?舉例說明,我們應該把文字的屬性設定放在盡量接近樹結點的根上,比如整個**的文字預設設定,放在body結點上,那所有接點的文字都可以得到繼承。擁有了繼承,又有那些是不應該設定文字屬性的呢?比如p、a這樣的選擇符還要設定文字的屬性嗎?(並不絕對,以下只是我的思考結果,僅供參考!)我認為就不需要設定文字的屬性了。比如選擇符a,我們想做的就是轉變預設的藍色和下劃線,如果再設定文字的大小和字型,就會覆蓋掉上下文中的繼承作用。大家肯定不想在標題上顯示鏈結,結果文字和正文的字型、大小一樣吧!

從上面的事例是不是應該給我們更多的思考呢?如何充分利用繼承來減少對css的設定將是乙個很大的課題。

2、巨集觀的考慮

css的設計有很大的門道,個人感覺不亞於程式和資料庫的設計,那就說說我對整體css設計的一些想法。

整體思路:大處著眼,小處著手。首先需要有乙個巨集觀的概念,考慮好通用的樣式。整站的文字、預設的標題大小、布局div的方式等等,你對整個系統有了巨集觀的了解,才知道那些是應該預設的,那些才要特殊的樣式覆蓋。比如標題,先要考慮好使用那幾號標題,再定義好這些的預設樣式,在那個模組裡面如果要換乙個樣式,就對這個標題使用類來限定。這樣的好處,即使其他設計人員在製作頁面的時候不清楚,也照樣做出正確的頁面來。程式的效率來自於團隊需要整體思考的東西越少,你作為管理者越成功(當然成功是要靠實力的)。

3、命名

只要是寫程式相關的問題,總會涉及到變數的命名,css也不例外。有一些通用的命名規則還是可以借鑑的,比如不要使用無意義的命名:object,誰都不能聯想到在那裡會使用到它!因此有意義的命名是提高程式可讀性一**寶,什麼?你想使用更好的一些命名到你的**上,哈哈,那你就多加練習,不斷改進你的**吧(這些改進可能並不能給客戶帶來變化,但是你的水平肯定還是會有所變化的!這點相信我沒錯的)。

有些命名會按照型別來,比如在asp.net開發中的label控制項,喜歡使用lbl作為字首,個人認為在css的命名使用這個方式並不好。有一些樣式的定義我們不能確定使用在什麼選擇符上,開始使用在p選擇符上,過了一段時間,又要使用在span上,為了規範命名,就需要修改命名,可是你需要冒著修改全站樣式的風險來追求命名的規範,大多數人會放棄命名規範。結果後續做開發的人迷糊了,不知道**錯誤了還是**擴充套件演變的,程式中的遺憾就是這樣產生的。說了這麼多總結成一句,不要使用型別來命名!應該確定意義來命名,比如給**的頭部命名為masterhead就不錯。

4、適用範圍

這一點上有一點像程式中的全域性變數,或者是物件導向中繼承後的override。現在程式編譯太先進了,編譯器會告訴我們寫的函式在基類裡面是否存在,是否確定要覆蓋,css有這樣的功能多好啊(乙個**的聲音在那裡偷笑,你應該可喜沒有這樣的功能,不然就淹沒在css的繼承關係裡吧)。因此我們在編寫css樣式的時候要清楚地意識到這個樣式的使用範圍,然後給他個比較合適的使用範圍。既要能夠應用到這個樣式,又盡量使不使用的地方不會誤用到。

還是舉例說明,在**的布局中會把頁面劃分成幾個部分,對每個部分的樣式進行定義。在網頁頭部(masterhead)的列表導航和在左邊欄(sidebar)的列表導航的樣式是不一樣的,我們應該怎麼樣來定義限制使用範圍呢?#masterhead ul和#sidebar ul這樣的設定是不是會比導航使用不同的類好一些呢?當然#masterhead ul.classname這樣的定義也不錯,如果在masterhead中不止乙個列表時這是更好的選擇。這樣修改程式時,你需要得到的資訊量是最少的,自然修改起來也會方便一些,特別是在**的後期或者維護階段,你很難保證你的樣式修改新增是否會對已經存在的**造成不必要的影響,乙個優秀的css設計師將會盡量避免這樣的事件發生。

該講的都講了,希望大家看了以後也能留下自己的寶貴經驗。學習需要的就是分享!

css學習 css基礎

子選擇器 parent child 子選擇器是指選擇parent的範圍內的第乙個子元素。這裡parent和child均是偽 可以是class用.classname,也可以是標籤ul li,也可以是id pid cid 後代選擇器 parent child 後代選擇器是指 選擇parent範圍內的所欲...

HTML CSS基礎篇之十 CSS基礎

body h1,h2h1p emp.greentea p.blueberry p.raspberry css裡面的每個語句包括乙個場所 就像臥室 乙個屬性 就像窗簾或地毯 和乙個提供給屬性的樣式 就如藍色,或者一寸的瓷磚 使用css設計xhtml p 整個過程為規則 1.選擇你要新增樣式的元素 場所...

css基礎學習

1.class和id 1 同一id在乙個頁面內只能應用一次,而class則是 用於描述多次出現的元素。2 class的定義方法 指定標籤 類名 id的定義方法 指定標籤 id名 class的應用方法 指定標籤 class 類名 id的應用方法 指定標籤id id名 2.css的引用 1 內部樣式 段...