《Two Days DIV + CSS》讀書筆記——CSS選擇器

1.1.2 CSS選擇器


CSS 選擇器最基本的有四種:標簽選擇器、ID 選擇器、類選擇器、通用選擇器。


【標簽選擇器】


一個完整的 HTML 頁面由很多不同的標簽組成,而標簽選擇器,則是決定哪些標簽采用相應的 CSS 樣式,比如,在 style.css 文件中對 p 標簽樣式的聲明如下:


?

<span style="font-family:Microsoft YaHei;font-size:14px;">p {</span>font-size: 12px;background: #900;color: 090;
}

?

?

這么做,會使頁面中所有 p 標簽的背景都是#900(紅色),文字大小均是 12px,顏色為#090(綠色),返在后期維護中,如果想改發整個網站中 p 標簽背景癿顏色,叧需要修改background 屬性就可以了,就這么容易!當然你也可以設置整個頁面中所有的 div 的屬性、a 鏈接的屬性、span 的屬性,這么做方便是方便,但是不夠靈活,如果頁面中除了某個 p標簽背景不是紅色外,其他的都是紅色,就不能用這種方法定義了。


【ID 選擇器】


ID 選擇器在某一個 HTML 頁面中只能使用一次,就像只有一個身仹證? (ID)一樣,不重復!在頁面中使用 ID 選擇器更具有針對性,如:


先給某個HTML頁面中的某個p標簽起個ID,代碼如下:


?

<p id="one">W3CFuns.com:打造中國 Web 前端開發人員最專業的貼心社區!</p>


在 CSS 中定義 ID 為 one 癿 p 標簽的屬性,就需要用到“#” ,代碼如下:

?


?

#one{font-size:12px;background:#900;color:090;
}

?

?

返樣頁面中癿某個 p 就會是 CSS 中定義的樣式。 針對“頁面中除了某個 p 標簽背景不是紅色外,其他的都是紅色的”情況,我們就可以用 ID 選擇器單獨定義那個背景不為紅色的 p 標簽,返樣問題就解決了。


【類選擇器】


這種選擇器更容易理解了,就是使頁面中的某些標簽(可以是不同的標簽)具有相同的樣式,就像國慶某個方陣中,肯定都是不同癿人,卻均穿紅色衣服,手中高舉花環,樣式都是一樣的,如果想讓這一類人都有共同的樣式,該怎樣做呢~呵呵,和 ID 選擇器的用法類似,只不過過把 id 換做 class,如下:


?

<p class="one">此處為 p 標簽內的文字</p>


如果我還想讓 div 標簽也有相同的樣式,怎么辦呢?加上同樣的 class 就可以了,如下:

?


?

<div class="one">此處為 DIV 標簽內的文字</div>

?

?

返樣頁面中凡是加上 class="one"的標簽,樣式都是一樣的了~
CSS 定義的時候和 ID 選擇器差不多,只不過把#換成. ,如下:


?

.one{font-size:12px;background:#900;color:090;
}

?


補充:一個標簽可以有多個類選擇器的值,不同的值用空格分開,如:


<div class="one yellow left">一個標簽可以有多個類選擇器的值</div>


這樣我們可以將多個樣式用到同一個標簽中,當然也可以 ID 和 class 一塊用

?


<div id="my" class="one yellow left">ID 和 class 可同時應用到同一個標簽</div>

?


【通用選擇器】


到這里,前三種基本的選擇器說完了,但是還需要給大家介終一個 CSS 選擇器中功能最強大但是用的最少的一種選擇器“通用選擇器”,就是“*”星號。


?

*{此處為 CSS 代碼}

?

?

強大之處是因為他對整個網頁中所有 HTML 標簽進行樣式定義,這種功能類似“標簽選擇器” ,覆蓋的對象更加廣泛,是整個HTML 的所有標簽,功能是強大,但是返樣反而限制了它的靈活性。


對于通用選擇器還有一個不得不提的用法,就是為了保證作出的頁面能夠兼容多種瀏覽器,所以要對 HTML 內的所有的標簽進行重置,會將下面癿代碼加到 CSS 文件的最頂端:


?

*{margin:0; padding:0;}

?


為什么要這么用呢,因為每種瀏覽器都自帶有 CSS 文件,如果一個頁面在瀏覽器加載頁面后,發現沒有 CSS 文件,那么瀏覽器就會自動調用它本身自帶的 CSS? 文件,但是不同的瀏覓器自帶的 CSS 文件又都不一樣,對不同標簽定義的樣式不一樣,如果我們想要作出的頁面能夠在不同的瀏覽器顯示出來的效果都是一樣的,那么我們就需要對 HTML 標簽重置,就是上面的代碼了,但是這樣也有不好的地方,因為 HTML4.01 中有 89 個標簽,所以相當于在頁面加載 CSS 的時候,先對這 89 個標簽都加上了{margin:0; padding:0;},在這里我不建議大家這么做,因為 89 個標簽中需要重置的標簽是很少數的,沒有必要將所有的標簽都重置,用到哪些標簽就定義哪些標簽,如下:


?

body,div,p,a,ul,li{margin:0; padding:0;}


?

如果還需要 dl、dt、dd 標簽重置,那就在上面加上就可以了,如下:


?

body,div,p,a,ul,li,dl,dt,dd{margin:0; padding:0;}

?

?

用到哪些就寫哪些,這點也可以看做衡量頁面重構師制作頁面水平的高低,以及是否專業的一個方面。


【選擇器的集體聲明】

在我們使用選擇器的時候,有些標簽樣式是一樣的,或者某些標簽都有共同的樣式屬性,我們可以將這些標簽集體聲明,不同的標簽用“,”分開,比如:


?

h1,h2,h3,h4,h5,h6{color:#900;}


再舉個例子,無論什么樣的選擇器,”標簽選擇器”,”ID 選擇器”,”類選擇器”? ,叧要是選擇器,叧要有公共的 CSS 代碼,就可以用“選擇器的集體聲明” ,起到精簡代碼的作用,有一段代碼如下:

?


?

#header{font-size:14px; background:#ccc;}
div{font-size:14px; width:960px;}
.blue{font-size:14px; color:#009;}
.h1{font-size:14px; font-weight:normal;}

?

?

我們就可以將上面的代碼迕行精簡,把公共的 CSS 代碼用選擇器的集體聲明提取出來,有點類似小學的“提取公因式”似的,如下:


?

#header ,div ,.blue,h1{font-size:14px;}
#header{background:#ccc;}
div{width:960px;}
.blue{color:#009;}
.h1{font-weight:normal;}


這是選擇器的集體聲明的經典應用,把共同的部分提取出來,這樣做的好處,相同的部分共同定義,不同的部分單獨定義,保證風格統一,樣式修改靈活,這也是優化 CSS 代碼癿一塊,要記住!

?


【選擇器的嵌套】


選擇器也是可以嵌套的,如:

?

#div1 p a{color:#900;}/*意思是在 ID 為 div1 內的  p 標簽內的鏈接 a 標簽的文字顏色為紅色*/


?

返樣的好處就是不需要在單獨癿為 ID 為 div1 的標簽內的 p 標簽內的 a 標簽單獨定義class 選擇器或者 ID 選擇器,CSS 代碼不就少了嘛~同樣也是 CSS 代碼優化的一塊。



?

轉載于:https://www.cnblogs.com/Destiny-Gem/p/3795696.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260340.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260340.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260340.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TempDB為什么要根據CPU數目來決定文件個數

在SQL Server的世界中&#xff0c;SQL Server在Windows之上有一套自己的任務調度和資源分配系統&#xff0c;這使得SQL Server作為Windows的一個進程&#xff0c;卻可以處理大量的并發&#xff0c;這些任務調度和資源分配非常像一個操作系統&#xff0c;因此SQL Server在Window…

python基礎到實踐_一本書搞定Python入門到實踐

題圖&#xff1a;Photo by Aaron Burden on Unsplash上周介紹了幾本Python從入門到進階書籍&#xff0c;今天推薦一本入門好書《Python編程&#xff1a;從入門到實踐》&#xff0c;適合零基礎小白&#xff0c;也適合有其它語言背景的程序員。書中有哪些亮點&#xff1f;2016年出…

Linux網卡eth0變成eth1修改方法

由于換了主板&#xff0c;集成網卡mac地址變了&#xff0c;70-persistent-net.rules中仍然保留了老網卡的內容&#xff0c;新網卡則被識別為eth1。 將表示老網卡的行注釋掉&#xff0c;然后將表示新網卡的行中eth1改成eth0&#xff0c;在把網卡配置文件ifcfg-eth0的mac地址改成…

java微博模擬登陸_java 模擬登錄新浪微博(通過cookie)

這幾天一直在研究新浪微博的爬蟲&#xff0c;發現爬取微博的數據首先要登錄。本來打算是通過賬號和密碼模擬瀏覽器登錄。但是現在微博的登錄機制比較復雜。通過賬號密碼還沒有登錄成功QAQ。所以就先記錄下&#xff0c;通過cookie直接訪問自己的微博主頁。微博登錄的認證過程微博…

硬盤結構,主引導記錄MBR,硬盤分區表DPT,主分區、擴展分區和邏輯分區,電腦啟動過程...

filex的文件系統看的云里霧里&#xff0c;還是先總結下FAT的一些基本知識吧。硬盤結構硬盤有很多盤片組成&#xff0c;每個盤片的每個面都有一個讀寫磁頭。如果有N個盤片。就有2N個面&#xff0c;對應2N個磁頭(Heads)&#xff0c;從0、1、2開始編號。每個盤片的半徑均為固定值R…

最全面 Nginx 入門教程 + 常用配置解析

轉自 http://blog.csdn.net/shootyou/article/details/6093562 Nginx介紹和安裝 一個簡單的配置文件 模塊介紹 常用場景配置 進階內容 參考資料 Nginx介紹和安裝 Nginx是一個自由、開源、高性能及輕量級的HTTP服務器及反轉代理服務器&#xff0c; 其性能與IMAP/POP3代理服務器…

linux 客戶機中不支持 unity_婚姻中的不理解,來源于夫妻雙方情感支持的不同

很多女性在婚姻中往往覺得無法得到丈夫的理解&#xff0c;當遇到一些生活或者工作上的問題的時候&#xff0c;她們想要在情感上得到丈夫的支持和理解。但是很多丈夫對此可能并不了解和理解&#xff0c;更傾向于用理性幫助妻子解決問題。而女性所需要的幫助可能并不是解決問題的…

Linux中使用crontab命令啟用自定義定時任務

一 簡介Linux下的任務調度分為兩類&#xff0c;系統任務調度和用戶任務調度系統任務調度&#xff1a;系統需要定期執行的任務&#xff0c;比如重啟、日志清理等&#xff0c;其配置文件是&#xff1a;/etc/crontab用戶任務調度&#xff1a;某個用戶需要定期執行的任務。用戶可以…

java 循環標記_深入淺析Java 循環中標簽的作用

continue和break可以改變循環的執行流程&#xff0c;但在多重循環中&#xff0c;這兩條語句無法直接從內層循環跳轉到外層循環。在C語言中&#xff0c;可以通過goto語句實現多重循環的跳轉&#xff0c;但在非循環結構中使用goto語句會使程序的結構紊亂&#xff0c;可讀性變差。…

JS,Jquery 調用 C#WebService

1&#xff0c;需要在服務下面把代碼的注釋去掉 // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務&#xff0c;請取消對下行的注釋。   //[System.Web.Script.Services.ScriptService] 2,JS 調用方法如下 var request <?xml version"1.0" encoding"…

iOS tabview 適配問題

ios7的UITableView實現ios6的圓角效果 iOS7 UITableView做成類似iOS6風格 在iOS7的時候我們會發現cell的默認線條會向右偏移&#xff0c;使左邊空出了一些位置&#xff0c;這時候我們可以調用如下的方法來解決。這樣我們的cell就會和iOS6前的一樣鋪滿整個寬度了。 if ([tableVi…

PHP學習總結(14)——PHP入門篇之常用運算符

一、什么是運算符什么是運算符&#xff1f;運算符是告訴PHP做相關運算的標識符號。例如&#xff0c;你需要計算123乘以456等于多少&#xff0c;這時候就需要一個符號&#xff0c;告訴服務器&#xff0c;你需要做乘法運算。PHP中的運算符有哪些&#xff1f;PHP運算符一般分為算術…

百度時間顯示_文章的發布時間對百度優化網站重要嗎

文章的發布時間對百度優化網站重要嗎&#xff1f;這個問題&#xff0c;相信很多初做網站優化的萌新朋友都會問到&#xff0c;以小匠個人的經歷來分享這個問題的經驗&#xff0c;小匠認為&#xff0c;文章的發布時間對優化網站是非常重要的&#xff0c;下面小匠將從實際經歷來給…

循環鏈表解決約瑟夫環問題

約瑟夫環問題可以簡單的使用數組的方式實現&#xff0c;但是現在我使用循環鏈表的方法來實現&#xff0c;因為上午看到一道面試題規定使用循環鏈表解決約瑟夫環問題。 什么是約瑟夫環&#xff1f; “約瑟夫環是一個數學的應用問題&#xff1a;已知n個人&#xff08;以編號1&…

java 什么時候進行垃圾回收_java什么時候進行垃圾回收,垃圾回收的執行流程

java的垃圾回收分為三個區域新生代 老年代 永久代一個對象實例化時 先去看伊甸園有沒有足夠的空間如果有 不進行垃圾回收 ,對象直接在伊甸園存儲.如果伊甸園內存已滿,會進行一次minor gc然后再進行判斷伊甸園中的內存是否足夠如果不足 則去看存活區的內存是否足夠.如果內存足夠…

常用的webservice接口

商業和貿易&#xff1a; 1、股票行情數據 WEB 服務&#xff08;支持香港、深圳、上海基金、債券和股票&#xff1b;支持多股票同時查詢&#xff09; Endpoint: http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx Disco: http://webservice.webxml.com.cn/WebServ…

基于HTML5 Canvas 實現矢量工控風機葉輪旋轉

之前在拓撲上的應用都是些靜態的圖元&#xff0c;今天我們將在拓撲上設計一個會動的圖元——葉輪旋轉。 先看看最后我們實現的效果&#xff1a;http://www.hightopo.com/demo/fan/index.html 我們先來看下這個葉輪模型長什么樣 從模型上看&#xff0c;這個葉輪模型有三個葉片&a…

java 并發模型總類_java并發編程系列-內存模型基礎

java線程之間的通信對程序開發人員是完全透明的&#xff0c;內存的可見性問題很容易困擾很多開發人員。本篇博文將揭開java內存模型的神秘面紗&#xff0c;來看看內存模型到底是怎樣的。并發編程模型的分類并發編程中需要處理的兩個關鍵問題&#xff1a;線程之間如何通信線程之…

python調用java的jar包_python調用java的jar包報錯127

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓最近在弄python需要調用到Java的jar包&#xff0c;按照網上的教程走&#xff0c;最后總是報錯No matching overloads found for [init in find. at native\common\jp_method.cpp:127Java&#xff1a;package aes;import com.sun.cr…

iphone、Android接收System.Net.Mail發的郵件標題亂碼

參考地址&#xff1a;http://blog.csdn.net/whowhen21/article/details/5959225 在做項目時候&#xff0c;用到.Net的System.Net.Mail發送郵件&#xff0c;經測試&#xff0c;發現如果標題過長&#xff0c;收到的就會是亂碼了(那種Base64格式的數據)&#xff0c;幾經測試&#…