搜尋
首頁web前端css教學CSS中易忽略的特性

CSS中易忽略的特性

Jun 12, 2018 pm 04:08 PM

CSS初學者感到很簡單,沒什麼難點,其實是你還沒深入理解css特性,下面透過本文給大家分享容易忽略的css特性,本文都是小編日常所遇到的坑,非常具有參考借鏡價值,特此分享供大家參考

CSS初學感覺很簡單,但隨著學習的深入才感覺CSS的水由多深,平常總會遇到各種坑,先總結一些經常遇到的坑
大小寫不敏感
雖然我們平常在寫CSS的時候都是用小寫,但其實CSS並不是大小寫敏感的 

.test{    
background-COLOR:#a00;    
width:100px;    
height: 100px;    
}

雖然把background-color寫為了background-COLOR,但還是會生效,之所以寫成小寫是因為xhtml標準的關係,但是即使不是xhtml還是寫成小寫比較好,美觀、易讀而且可以應付可能的轉換需求
選擇器優先權
當兩個規則都作用到了同一個html元素上時,如果定義的屬性有衝突,那麼應該用誰的值的,CSS有一套優先權的定義。
不同層級
1.在屬性後面使用 !important 會覆寫頁面內任何位置定義的元素樣式。
2.作為style屬性寫在元素內的樣式
3.id選擇器
4.類別選擇器
5.標籤選擇器
6.通配符選擇器
7 .瀏覽器自訂或繼承
同一層級
同一層級中後寫的會覆寫先寫的樣式
上面的層級還是很容易看懂的,但是有時候有些規則是多個層級的組合,像這樣

<!doctype html>    
<html lang="en">    
<head>    
<meta charset="UTF-8">    
<title>Document</title>    
<style type="text/css">    
p.test{    
background-COLOR:#a00;    
width:100px;    
height: 100px;    
}    
.test.test2{    
background-COLOR:#0e0;    
width:100px;    
height: 100px;    
}    
</style>    
</head>    
<body>    
<p class="test test2"></p>    
</body>    
</html>

到底p是應用那條規則呢,有個簡單的計算方法(經園友提示,權值實際上並不是按十進制,用數字表示只是說明思想,一萬個class也不如一個id權值高) 

•內嵌樣式表的權值為1000
•ID 選擇器的權值為100
•Class 類別選擇器的權值為10
•HTML 標籤選擇器的權值為1
我們可以把選擇器中規則對應做加法,比較權值,如果權值相同那就後面的覆蓋前面的了, p.class的權值是1 10=11,而.test1 .test2的權值是10 10=20,所以p會套用.test1 .test2

##變成綠色

行內(inline)元素的一些屬性
並不是所有的屬性對行內元素都能夠生效
1.行內元素不會應用width屬性,其長度是由內容撐開的
2.行內元素不會應用height屬性,其高度也是由內容撐開的,但是高度可以透過line-height調節
3 .行內元素的padding屬性只用padding-left和padding-right生效,padding-top和padding-bottom會改變元素範圍,但不會對其它元素造成影響
4.行內元素的margin屬性只有margin- left和margin-right有效,margin-top和margin-bottom無效
5.行內元素的overflow屬性無效,這個不用多說了
6.行內元素的vertical-align屬性無效(height屬性無效)

<p >    
<span style="padding:4px; margin:8px; height: 500px; width:1000px; ">123456789123456789</span>    
</p>    
<p >    
<span style="padding:4px; margin:8px; height: 500px; width:1000px; ">123456789</span>    
</p>

#

通过例子可以看出,我们对span设置的width和height属性并没有生效,margin-top和margin-bottom无效,padding-top和padding-bottom会改变元素范围(背景区域变大了),但并没有影响下面元素位置
一些互斥的元素
1.对于absolute和fixed定位的(固定大小,设置了width和height属性)元素,如果设置了top和left属性,那么设置bottom和right值就没有作用了,应该是top和left优先级高,否则同时写了浏览器怎么知道按照谁定位
2.对于absolute和fixed定位的元素,如果设置了top、left、bottom、right的值后margin属性也就不起作用了
3.对于absolute和fixed定位的元素,如果设置了top、left、bottom、right的值后float属性同样会失效
4.块元素如果设置了float属性或者是absolute、fixed定位,那么vertical-align属性不再起作用
font-size单位
我们在写字体的尺寸的时候常用的单位有
•px
•pt
•em
•rem
这些字体分别有什么含义?
1.px是pixel缩写,是基于像素的单位.在浏览网页过程中,屏幕上的文字、图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在800×600分辨率下,要占屏幕宽度的1/8,但在1024×768下,则只占约1/10。所以如果在定义字体大小时,使用px作为单位,那一旦用户改变显示器分辨率从800到1024,用户实际看到的文字就要变“小”(自然长度单位),甚至会看不清,影响浏览。
2.pt是point(磅)缩写,是一种固定长度的度量单位,大小为1/72英寸。如果在web上使用pt做单位的文字,字体的大小在不同屏幕(同样分辨率)下一样,这样可能会对排版有影响,但在Word中使用pt相当方便。因为使用Word主要目的都不是为了屏幕浏览,而是输出打印。当打印到实体时,pt作为一个自然长度单位就方便实用了:比如Word中普通的文档都用“宋体 9pt”,标题用“黑体 16pt”等等,无论电脑怎么设置,打印出来永远就是这么大。
3.em:是相对单位,是一个相对长度单位,最初是指字母M的宽度,所以叫em,现指的是字符宽度的倍数,用法类似百分比,如:0.8em, 1.2em,2em等。通常1em=16px(浏览器默认字体大小16px),em是指父元素的字体大小。在一个页面上给定了一个父元素的字体大小,这样就可以通过调整一个元素来成比例的改变所有元素大小.它可以自由缩放,比如用来制作可伸缩的样式表。类似还有ex的概念,ex 相对于字符“x”的高度,此高度通常为字体尺寸的一半。
4.rem:rem是CSS新增的,em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在多次使用时,就会带来无法预知的错误风险。而rem是相对于根元素(r:root),使用rem我们只需要在根元素确定一个参考值,然后就可以控制整个html页面所有字体了。
:checked 选择器范围
我们知道:checked会选择被选中的checkbox和radio,看个例子

<!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>   
对于前两个margin变成10px我们不奇怪,但是当我们看select的option的时候会发现被选中的option的margin业变成了10px,没有被选中的option则没有变化!

是的:checked也会选择被选中的option
并不是所有图片都会被加载
我们知道写在页面上的img标签,无论显示与否,图片都会被加载(所以试图通过对图片display:none来达到节省网络流量的做法就省省吧。。。),我们也经常使用backgroung-image等css属性为页面添加图片,这些图片是不是一定会被加载呢,看个例子

<!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>    
<p class="hidden"></p>    
<p class="none"></p>    
<p style="visibility:hidden;">    
<p class="parentHidden"></p>    
</p>    
<p style="display:none;">    
<p class="parentNone"></p>    
</p>    
<p style="display:none">    
<img  src="/static/imghwm/default1.png"  data-src="images/5.jpg"  class="lazy"   alt="CSS中易忽略的特性" ></p>    
</body>    
</html>

看一下网络监视情况(怎么柳岩的照片变小后感觉怪怪的。。。) 

我们可以发现图片0和4没有被下载,0是没有用到的CSS,4是父容器的display被设为none的情况,这两种情况下的CSS引用的图片是不会被加载的,而父容器设置visibility属性为hidden仍然会加载图片,不要搞混了

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

CSS编写代码时的高性能总结

提高css性能的方法

以上是CSS中易忽略的特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
我們如何標記Google字體並創建Goofonts.com我們如何標記Google字體並創建Goofonts.comApr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

永恆的Web開發文章永恆的Web開發文章Apr 12, 2025 am 11:44 AM

Pavithra Kodmad向人們詢問了他們認為是關於網絡開發的一些最永恆的文章的建議

與部分元素的交易與部分元素的交易Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

使用JavaScript API練習GraphQl查詢使用JavaScript API練習GraphQl查詢Apr 12, 2025 am 11:33 AM

學習如何構建GraphQL API可能具有挑戰性。但是您可以學習如何在10分鐘內使用GraphQL API!碰巧的是,我得到了完美的

組件級CMS組件級CMSApr 12, 2025 am 11:09 AM

當一個組件生活在數據查詢居住在附近的數據查詢的環境中時,視覺組件和

將類型設置在圓上...帶偏移路徑將類型設置在圓上...帶偏移路徑Apr 12, 2025 am 11:00 AM

這裡是Yuanchuan的一些合法CSS騙局。有此CSS屬性偏移路徑。曾幾何時,它被稱為Motion-Path,然後被更名。我

'恢復”在CSS中有什麼作用?'恢復”在CSS中有什麼作用?Apr 12, 2025 am 10:59 AM

Miriam Suzanne在Mozilla開發人員的視頻中解釋了該主題。

現代戀人現代戀人Apr 12, 2025 am 10:58 AM

我喜歡這樣的東西。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器