這篇文章給大家分享的是有關(guān)前端開(kāi)發(fā)中容易被忽略CSS特性有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
大小寫(xiě)不敏感
雖然我們平時(shí)在寫(xiě)CSS的時(shí)候都是用小寫(xiě),但其實(shí)CSS并不是大小寫(xiě)敏感的
.test{ background-COLOR:#a00; width:100px; height: 100px; }
雖然把background-color寫(xiě)為了background-COLOR,但仍然會(huì)生效,之所以寫(xiě)成小寫(xiě)是因?yàn)閤html標(biāo)準(zhǔn)的關(guān)系,但是即使不是xhtml還是寫(xiě)成小寫(xiě)比較好,美觀、易讀而且可以應(yīng)對(duì)可能的轉(zhuǎn)換需求
選擇器優(yōu)先級(jí)
當(dāng)兩個(gè)規(guī)則都作用到了同一個(gè)html元素上時(shí),如果定義的屬性有沖突,那么應(yīng)該用誰(shuí)的值的,CSS有一套優(yōu)先級(jí)的定義。
不同級(jí)別
在屬性后面使用 !important 會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式。
作為style屬性寫(xiě)在元素內(nèi)的樣式
id選擇器
類(lèi)選擇器
標(biāo)簽選擇器
通配符選擇器
瀏覽器自定義或繼承
同一級(jí)別
同一級(jí)別中后寫(xiě)的會(huì)覆蓋先寫(xiě)的樣式
上面的級(jí)別還是很容易看懂的,但是有時(shí)候有些規(guī)則是多個(gè)級(jí)別的組合,像這樣
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> div.test{ background-COLOR:#a00; width:100px; height: 100px; } .test.test2{ background-COLOR:#0e0; width:100px; height: 100px; } </style> </head> <body> <div class="test test2"></div> </body> </html>
到底div是應(yīng)用那條規(guī)則呢,有個(gè)簡(jiǎn)單的計(jì)算方法(經(jīng)園友提示,權(quán)值實(shí)際并不是按十進(jìn)制,用數(shù)字表示只是說(shuō)明思想,一萬(wàn)個(gè)class也不如一個(gè)id權(quán)值高)
內(nèi)聯(lián)樣式表的權(quán)值為 1000
ID 選擇器的權(quán)值為 100
Class 類(lèi)選擇器的權(quán)值為 10
HTML 標(biāo)簽選擇器的權(quán)值為 1
我們可以把選擇器中規(guī)則對(duì)應(yīng)做加法,比較權(quán)值,如果權(quán)值相同那就后面的覆蓋前面的了,div.class的權(quán)值是1+10=11,而.test1 .test2的權(quán)值是10+10=20,所以div會(huì)應(yīng)用.test1 .test2變成綠色
行內(nèi)(inline)元素的一些屬性
并不是所有的屬性對(duì)行內(nèi)元素都能夠生效
行內(nèi)元素不會(huì)應(yīng)用width屬性,其長(zhǎng)度是由內(nèi)容撐開(kāi)的
行內(nèi)元素不會(huì)應(yīng)用height屬性,其高度也是由內(nèi)容撐開(kāi)的,但是高度可以通過(guò)line-height調(diào)節(jié)
行內(nèi)元素的padding屬性只用padding-left和padding-right生效,padding-top和padding-bottom會(huì)改變?cè)胤秶?,但不?huì)對(duì)其它元素造成影響
行內(nèi)元素的margin屬性只有margin-left和margin-right有效,margin-top和margin-bottom無(wú)效
行內(nèi)元素的overflow屬性無(wú)效,這個(gè)不用多說(shuō)了
行內(nèi)元素的vertical-align屬性無(wú)效(height屬性無(wú)效)
<div style="background-color: #a44;"> <span style="padding:4px; margin:8px; height: 500px; width:1000px; background-color:#0e0;">123456789123456789</span> </div> <div style="background-color: #a44;"> <span style="padding:4px; margin:8px; height: 500px; width:1000px; background-color:#0a0;">123456789</span> </div>
通過(guò)例子可以看出,我們對(duì)span設(shè)置的width和height屬性并沒(méi)有生效,margin-top和margin-bottom無(wú)效,padding-top和padding-bottom會(huì)改變?cè)胤秶ū尘皡^(qū)域變大了),但并沒(méi)有影響下面元素位置
一些互斥的元素
對(duì)于absolute和fixed定位的(固定大小,設(shè)置了width和height屬性)元素,如果設(shè)置了top和left屬性,那么設(shè)置bottom和right值就沒(méi)有作用了,應(yīng)該是top和left優(yōu)先級(jí)高,否則同時(shí)寫(xiě)了瀏覽器怎么知道按照誰(shuí)定位
對(duì)于absolute和fixed定位的元素,如果設(shè)置了top、left、bottom、right的值后margin屬性也就不起作用了
對(duì)于absolute和fixed定位的元素,如果設(shè)置了top、left、bottom、right的值后float屬性同樣會(huì)失效
塊元素如果設(shè)置了float屬性或者是absolute、fixed定位,那么vertical-align屬性不再起作用
font-size單位
我們?cè)趯?xiě)字體的尺寸的時(shí)候常用的單位有
px
pt
em
rem
這些字體分別有什么含義?
px是pixel縮寫(xiě),是基于像素的單位.在瀏覽網(wǎng)頁(yè)過(guò)程中,屏幕上的文字、圖片等會(huì)隨屏幕的分辨率變化而變化,一個(gè)100px寬度大小的圖片,在800×600分辨率下,要占屏幕寬度的1/8,但在1024×768下,則只占約1/10。所以如果在定義字體大小時(shí),使用px作為單位,那一旦用戶改變顯示器分辨率從800到1024,用戶實(shí)際看到的文字就要變“小”(自然長(zhǎng)度單位),甚至?xí)床磺澹绊憺g覽。
pt是point(磅)縮寫(xiě),是一種固定長(zhǎng)度的度量單位,大小為1/72英寸。如果在web上使用pt做單位的文字,字體的大小在不同屏幕(同樣分辨率)下一樣,這樣可能會(huì)對(duì)排版有影響,但在Word中使用pt相當(dāng)方便。因?yàn)槭褂肳ord主要目的都不是為了屏幕瀏覽,而是輸出打印。當(dāng)打印到實(shí)體時(shí),pt作為一個(gè)自然長(zhǎng)度單位就方便實(shí)用了:比如Word中普通的文檔都用“宋體 9pt”,標(biāo)題用“黑體 16pt”等等,無(wú)論電腦怎么設(shè)置,打印出來(lái)永遠(yuǎn)就是這么大。
em:是相對(duì)單位,是一個(gè)相對(duì)長(zhǎng)度單位,最初是指字母M的寬度,所以叫em,現(xiàn)指的是字符寬度的倍數(shù),用法類(lèi)似百分比,如:0.8em, 1.2em,2em等。通常1em=16px(瀏覽器默認(rèn)字體大小16px),em是指父元素的字體大小。在一個(gè)頁(yè)面上給定了一個(gè)父元素的字體大小,這樣就可以通過(guò)調(diào)整一個(gè)元素來(lái)成比例的改變所有元素大小.它可以自由縮放,比如用來(lái)制作可伸縮的樣式表。類(lèi)似還有ex的概念,ex 相對(duì)于字符“x”的高度,此高度通常為字體尺寸的一半。
rem:rem是CSS新增的,em是相對(duì)于其父元素來(lái)設(shè)置字體大小的,這樣就會(huì)存在一個(gè)問(wèn)題,進(jìn)行任何元素設(shè)置,都有可能需要知道他父元素的大小,在多次使用時(shí),就會(huì)帶來(lái)無(wú)法預(yù)知的錯(cuò)誤風(fēng)險(xiǎn)。而rem是相對(duì)于根元素(r:root),使用rem我們只需要在根元素確定一個(gè)參考值,然后就可以控制整個(gè)html頁(yè)面所有字體了。
:checked 選擇器范圍
我們知道:checked會(huì)選擇被選中的checkbox和radio,看個(gè)例子
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> :checked{ margin: 10px; } </style> </head> <body> <input id="t1" type="checkbox" checked/> <input id="t3" type="radio" checked/> <select> <option id="t2">test</option> <option id="t4">test2</option> </select> </body> </html>
對(duì)于前兩個(gè)margin變成10px我們不奇怪,但是當(dāng)我們看select的option的時(shí)候會(huì)發(fā)現(xiàn)被選中的option的margin業(yè)變成了10px,沒(méi)有被選中的option則沒(méi)有變化!
是的:checked也會(huì)選擇被選中的option
并不是所有圖片都會(huì)被加載
我們知道寫(xiě)在頁(yè)面上的img標(biāo)簽,無(wú)論顯示與否,圖片都會(huì)被加載(所以試圖通過(guò)對(duì)圖片display:none來(lái)達(dá)到節(jié)省網(wǎng)絡(luò)流量的做法就省省吧。。。),我們也經(jīng)常使用backgroung-image等css屬性為頁(yè)面添加圖片,這些圖片是不是一定會(huì)被加載呢,看個(gè)例子
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .useless{ background-image: url(images/0.jpg); } .hidden{ background-image: url(images/1.jpg); } .none{ background-image: url(images/2.jpg); } .parentHidden{ background-image: url(images/3.jpg); } .parentNone{ background-image: url(images/4.jpg); } </style> </head> <body> <div class="hidden"></div> <div class="none"></div> <div style="visibility:hidden;"> <div class="parentHidden"></div> </div> <div style="display:none;"> <div class="parentNone"></div> </div> <div style="display:none"> </div> </body> </html>
看一下網(wǎng)絡(luò)監(jiān)視情況(怎么柳巖的照片變小后感覺(jué)怪怪的。。。)
我們可以發(fā)現(xiàn)圖片0和4沒(méi)有被下載,0是沒(méi)有用到的CSS,4是父容器的display被設(shè)為none的情況,這兩種情況下的CSS引用的圖片是不會(huì)被加載的,而父容器設(shè)置visibility屬性為hidden仍然會(huì)加載圖片,不要搞混了
感謝各位的閱讀!關(guān)于“前端開(kāi)發(fā)中容易被忽略CSS特性有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞標(biāo)題:前端開(kāi)發(fā)中容易被忽略CSS特性有哪些-創(chuàng)新互聯(lián)
新聞來(lái)源:http://jinyejixie.com/article16/depodg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)、Google、動(dòng)態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容