【HTML5】Web前端——第四課:CSS3新增選擇器
知識點:CSS3 新增的選擇器、新增的屬性選擇器、新增的偽類選擇器、新增的偽元素選擇器
推薦學習網頁:CSS 選擇器(菜鳥教程)
1、CSS 3 簡介
CSS就是層疊樣式表,是一種用來表現HTML或XML等檔案樣式的計算機語言。而 CSS 3 就是最新的 CSS 標準。我們現在說的 CSS 3 ,指的是那些在 CSS 2.1 之後釋出的所有東西。 CSS 很早已經開始被分割成多個獨立的模組,每個模組可以獨立分級,每個模組值包含一小部分功能,所以某個進展緩慢的模組不會拖慢整個規範的指定工作。
CSS 3 的優勢是能夠使網站變得非常炫酷。 CSS 3 .0 能夠代替之前需要使用 JavaScript 、jQuery 才能實現的互動效果,可以為使用者帶來更好的體驗,特別是針對移動端介面。另外使用 CSS 3 還能減少開發和維護成功。 例如,之前想在網頁中增加一個圓角效果,通常需要選取一張背景圖片或者多張圖片實現此效果,過程繁雜。而在 CSS 3 中僅通過新增屬性模組就可以輕鬆實現該效果。
CSS 3 將完全向後相容,所以沒有必要修改現在的設計以使它們繼續運作。瀏覽器也還將繼續支援 CSS 2 。所以, CSS 3 主要的影響是可以使用新的可用的選擇器和屬性,這些允許實現新的設計效果(如動態和漸變),而且可以很簡單地設計出現在的設計效果(如使用分欄)。
在實際開發中,一個好的前端開發是以漸進增強和優雅降級的思想進行設計與開發的,即在編寫頁面時首先要保證核心功能一定能實現,使任何低端瀏覽器看到主要內容即可。而對比較高階的瀏覽器,則可以使用 CSS 3中提供的新特性模組實現高階功能,從而為使用者帶來更好的體驗。
2、兄弟選擇器
兄弟選擇器和 CSS 2 中的相鄰兄弟選擇器是不一樣的。相鄰兄弟選擇器是指兩個元素相鄰,擁有同一個父元素;兄弟選擇器是第一個元素之後,所有的元素 2 都會被選中,且這些元素和第一個元素擁有同一個父元素,兩個元素之間不一定要相鄰。
選擇器名稱 | 作用 | 語法 |
兄弟選擇器 | 匹配當前元素的【後面的所有兄弟】元素, 前提是有相同的父元素 | selector1~selector2 |
相鄰兄弟選擇器 | 匹配的相鄰的元素 - 當前元素的【後面的第一個】元素, 前提必須有相同的父元素 | selector1+selector2 |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>兄弟選擇器-王迪</title>
<style>
h2~p { color: red;}
</style>
</head>
<body>
<h1>一級標題</h1>
<p>我和h2是同輩,但是在h2上面,沒有被選中,不會變色</p>
<h2>二級標題</h2>
<p>我緊挨著h2後面,和h2是同輩,被選中了,會變色</p>
<h3>三級標題</h3>
<p>我沒有挨著h2,但是和h2是同輩,被選中了,會變色</p>
<div>
<p>我在div內部,和h2不是同一個父元素,沒有被選中,不會變色</p>
</div>
</body>
</html>
3、新增的屬性選擇器
屬性選擇器 | 描述 | 示例 | 示例說明 |
E[attribute^=value] | 用於選取帶有以指定值開頭的屬性值的元素 | li[title^="h"] | 選擇每一個title屬性的值以"h"開頭的元素 |
E[attribute$=value] | 用於選取屬性值以指定值結尾的元素 | li[title$="in"] | 選擇每一個title屬性的值以"in"結尾的元素 |
E[attribute*=value] | 用於選取屬性值中包含指定值的元素,位置不限,也不限制整個單詞 | li[title*="g"] | 選擇每一個title屬性的值包含子字串"g"的元素 |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>屬性選擇器-王迪</title>
<style>
li[title^="h"] { color: red;}
li[title$="in"] { color: yellow;}
li[title*="g"] { color: blue;}
</style>
</head>
<body>
<ul>
<h2>各地小吃介紹</h2>
<li title="beijing">北京: 焦圈、蜜麻花、豌豆黃、艾窩窩、炒肝爆肚</li>
<li title="shanghai">上海: 蟹殼黃、南翔小籠饅頭、小紹興雞粥</li>
<li title="anhui">安徽: 臘八粥、大救駕、徽州餅、豆皮飯</li>
<li title="guangxi">廣西: 大肉棕、桂林馬肉米粉、炒粉蟲</li>
<li title="tianjin">天津: 嗄巴菜、 狗不理包子、桂發祥大麻花、 五香驢肉</li>
<li title="hubei">湖北: 三鮮豆皮、雲夢炒魚面、熱乾麵</li>
<li title="xinjiang">新疆: 烤羊肉、烤饢、抓飯</li>
<li title="hunan">湖南: 新飯、腦髓卷、米粉、八寶龜羊湯、火宮殿臭豆腐</li>
</ul>
</body>
</html>
4、新增的偽類選擇器
偽類選擇器 | 作用 |
:root | 選擇文件的根元素,在 HTML 中永遠是 <html>元素 |
:last-child | 用來匹配當前元素的,父元素中,最後一個子元素。 |
:nth-child(n) | 用來匹配當前元素的,父元素中,第 n 個子元素。 |
:nth-last-child(n) | 用來匹配當前元素的,父元素中,倒數第 n 個子元素。 |
:only-child | 用來匹配當前元素的,父元素中,唯一一 個子元素。 |
:first-of-type | 用來匹配當前元素的,同級同型別元素中的,第一個元素。 |
:last-of-type | 用來匹配當前元素的,同級同型別元素中的,最後一個元素。 |
:nth-of-type(n) | 用來匹配當前元素的,同級同型別元素中的,第 n 個元素。 |
:nth-last-of-type(n) | 用來匹配當前元素的,同級同型別元素中的,倒數第 n 個元素。 |
:only-of-type | 用來匹配當前元素的,同級同型別元素中的,唯一一個元素。 |
:empty | 選擇沒有任何內容的元素(包括文字節點),這裡沒有內容指的是一點內容都沒有,哪怕是一個空格。 |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>偽類選擇器-王迪</title>
<style>
ul {
list-style-type: none;/*清除預設的樣式符號*/
float: left;/*浮動到同一行*/
}
#wz {
clear: both;/*清除浮動塌陷*/
}
:root {/*根元素html被選中*/
background-color: peachpuff;
font-size: 30px;
}
li:last-child {/*li標籤,父元素的最後一個li被選中。“九州同樂”也會被選中,為什麼?*/
color: red;
}
li:nth-child(3){/*li標籤,且是父元素中的第3個li被選中*/
color: green;
}
li:nth-last-child(2){/*li標籤,且是父元素中的倒數第2個li被選中*/
color: blue;
}
li:only-child{/*li標籤,且是父元素的唯一一個li*/
font-weight: bolder;
}
li:first-of-type{/*li標籤,且是同類級同型別元素中的第一個元素*/
border-bottom: 1px solid red ;
}
li:last-of-type{/*li標籤,且是同類級同型別元素中的最後一個元素*/
border-left: 1px solid blue;
}
li:nth-of-type(5){/*li標籤,且是同類級同型別元素中的第5個元素*/
color: green;
}
li:nth-last-of-type(4){/*li標籤,且是同類級同型別元素中的倒數第4個元素*/
color: white;
}
li:only-of-type{/*li標籤,且是同類級同型別元素中唯一的一個*/
border-right: 1px solid red ;
}
:empty{/*向沒有子元素(包括文字內容)的元素新增樣式*/
background-color: red;
width: 100px;
height: 30px;
}
</style>
</head>
<body>
<ul id="zuo">
<li>春</li>
<li>色</li>
<li>滿</li>
<li>園</li>
<li>四</li>
<li>海</li>
<li>花</li>
<li>團</li>
<li>錦</li>
<li>簇</li>
</ul>
<ul id="heng">
<li>九州同樂</li>
</ul>
<ul id="you">
<li>龍</li>
<li>行</li>
<li>天</li>
<li>下</li>
<li>五</li>
<li>湖</li>
<li>唱</li>
<li>響</li>
<li>吉</li>
<li>祥</li>
</ul>
<p id="wz">春聯,又稱“春貼”、“門對”和“對聯”。</p>
<span>測試</span>
<p></p>
</body>
</html>
5、新增的偽元素選擇器
/* 為某個元素的第一行文字使用樣式。 */
:first-line
/* 為某個元素中的文字的首字母或第一個字使用樣式。 */
:first-letter
/* 在某個元素之前插入一些內容。 */
:before
/* 在某個元素之後插入一些內容。 */
:after
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>偽元素選擇器-王迪</title>
<style type="text/css">
p {
width: 400px;
height: 200px;
background-color: pink;
text-indent: 2em;
}
p:first-line{/*選中p元素的第一行文字*/
color: red;
}
p:first-letter{/*選中p元素中的文字的,首字母或第一個字使用樣式*/
font-size: 30px;
}
</style>
</head>
<body>
<p>在15歲時覺得游泳難,放棄游泳,到18歲遇到一個你喜歡的人約你去游泳,你只好說“我不會耶”。18歲覺得英文難,放棄英文,28歲出現一個很棒但要會英文的工作,你只好說“我不會耶”。人生前期越嫌麻煩,越懶得學,後來就越可能錯過讓你動心的人和事,錯過新風景。</p>
</body>
</html>
============結束分割線============
相關文章
- CSS系列:CSS3新增選擇器CSSS3
- CSS3新增選擇器(屬性選擇器、結構偽類選擇器、偽元素選擇器)CSSS3
- HTML5新增的3種選擇器HTML
- HTML5中CSS3的屬性選擇器HTMLCSSS3
- CSS3選擇器02—CSS3部分選擇器CSSS3
- css3選擇器CSSS3
- CSS3 - 選擇器CSSS3
- css3 選擇器:屬性選擇器(五)CSSS3
- Web開發者選擇的最佳HTML5/CSS3程式碼生成器WebHTMLCSSS3
- 後端碼農談前端(CSS篇)第四課:選擇器補充(偽類與偽元素)後端前端CSS
- 如何選擇 Web 前端模板引擎?Web前端
- 如何選擇Web前端模板引擎?Web前端
- 好程式設計師web前端培訓分享HTMLCSS學習筆記css3選擇器程式設計師Web前端HTMLCSS筆記S3
- css3 nth-child選擇器CSSS3
- CSS3學習----選擇器、字型CSSS3
- css3 nth-child() 選擇器 (遍歷選擇器的奇偶數)CSSS3
- 選擇python還是web前端好PythonWeb前端
- CSS3 相鄰兄弟選擇器 hoverCSSS3
- 神通廣大的CSS3選擇器CSSS3
- Web應用課 第二講 CSS定義方式、選擇器、顏色WebCSS
- CSS3簡明教程之徵服CSS3選擇器CSSS3
- 好程式設計師web前端CSS選擇符(選擇器):表示要定義樣式的物件程式設計師Web前端CSS物件
- html5/css3新增屬性HTMLCSSS3
- CSS3選擇器及優先順序CSSS3
- jQuery選擇器 標籤選擇元素+css簡單新增移除操作jQueryCSS
- 好程式設計師HTML5培訓教程-總結30個CSS3選擇器程式設計師HTMLCSSS3
- 《HTML5與CSS3權威指南(第3版·下冊)》——第19章選 擇 器HTMLCSSS3
- Html5,css3選單HTMLCSSS3
- 002---選擇器(標籤選擇器、類選擇器、id選擇器、偽類選擇器、萬用字元選擇器)字元
- CSS3屬性選擇器簡單介紹CSSS3
- 圖解CSS3 讀書筆記——選擇器圖解CSSS3筆記
- 如何正確選擇Web前端培訓機構Web前端
- jQuery選擇器介紹:基本選擇器、層次選擇器、過濾選擇器、表單選擇器jQuery
- HTML5與Web前端HTMLWeb前端
- jQuery選擇器——基本選擇器jQuery
- Web前端開發精華文章集錦(jQuery、HTML5、CSS3)【系列十七】Web前端jQueryHTMLCSSS3
- Web前端開發精華文章集錦(jQuery、HTML5、CSS3)【系列十八】Web前端jQueryHTMLCSSS3
- Web前端開發精華文章推薦(jQuery、HTML5、CSS3)【系列十六】Web前端jQueryHTMLCSSS3