亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 3
粉絲 0
評(píng)論 0
訪問量 6190
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
CSS 中各類選擇器的屬性及應(yīng)用
辛迪
原創(chuàng)
2393人瀏覽過

總結(jié):在 CSS 中,選擇器是一種模式,用于選擇需要添加樣式的元素。CSS 選擇器主要有簡(jiǎn)單選擇器、上下文選擇器、偽類選擇器。下面主要介紹 CSS 中各類選擇器的屬性及應(yīng)用。

1. 簡(jiǎn)單選擇器

選擇器的種類介紹

選擇器描述舉例
元素選擇器根據(jù)元素標(biāo)簽名稱進(jìn)行匹配div {...}
群組選擇器同時(shí)選擇多個(gè)不同類型的元素h1,h2,h3{...}
通配選擇器選擇全部元素,不區(qū)分類型* {...}
屬性選擇器根據(jù)元素屬性進(jìn)行匹配*[...]
類選擇器根據(jù)元素 class 屬性進(jìn)行匹配*.active {...}
id 選擇器根據(jù)元素 id 屬性進(jìn)行匹配*#top {...}
  • 以上 6 種,其實(shí)可分為二類: 元素選擇器屬性選擇器, 其它的只是二者的特例。

  • 元素是使用標(biāo)簽和屬性進(jìn)行描述,所以使用標(biāo)簽和屬性來選擇元素非常自然直觀。

  • 最常用的是: 元素選擇器, 類選擇器, id 選擇器

  • 當(dāng) class,id 選擇器不限定被修改的元素類型時(shí), 星號(hào)”*“可以省略。

各類選擇器的實(shí)例演示:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>簡(jiǎn)單選擇器</title>    <style>      /* 群組選擇器 */      h2,      h3,      h4 {        color: red;      }      .container {        width: 300px;        height: 300px;        display: grid;        grid-template-columns: repeat(3, 1fr);        gap: 5px;      }      /* 類選擇器 */      .item {        font-size: 2rem;        background-color: cadetblue;        display: flex;        justify-content: center;        align-items: center;      }      /* 元素選擇器 */      body {        background-color: lightblue;      }      /* 多個(gè)類選擇器 */      .item.center {        background-color: lightgreen;      }      /* id選擇器 */      /* id,class可以添加到任何元素上,前面的元素限定符默認(rèn)是“*”,當(dāng) class,id 選擇器不限定被修改的元素類型時(shí), 星號(hào)"`*`"可以省略 */      /* *#first{}  通配選擇器 */      #first {        background-color: lightcoral;      }      /* id前加標(biāo)簽,結(jié)果無變化 */      div#first {        background-color: lightcoral;      }      /* class權(quán)重大于標(biāo)簽 */      .item#first {        background-color: coral;      }      /* id權(quán)重大于class */      #first.item {        background-color: rgb(255, 80, 246);      }      /* 優(yōu)先級(jí):標(biāo)簽 < class屬性 < id屬性 */      /* 屬性選擇器 */      .item[title="hello"] {        /* hello可不加引號(hào),如果是兩個(gè)以上單詞必須加引號(hào),如:title="hello world" */        /* 如果只有一個(gè)元素有title屬性,“hello”可以省略,如:.item[title] */        background-color: rgb(253, 240, 56);      }    </style>  </head>  <body>    <h2>簡(jiǎn)單選擇器</h2>    <h3>簡(jiǎn)單選擇器</h3>    <h4>簡(jiǎn)單選擇器</h4>    <!-- 使用九宮格來演示簡(jiǎn)單選擇器 -->    <div class="container">      <div class="item" id="first">1</div>      <div class="item">2</div>      <div class="item">3</div>      <div class="item">4</div>      <div class="item center">5</div>      <div class="item" title="hello">6</div>      <div class="item">7</div>      <div class="item">8</div>      <div class="item">9</div>    </div>  </body></html>

實(shí)例效果圖:

簡(jiǎn)單選擇器


2. 上下文選擇器

html 文檔看上去就像一顆倒置的”樹”,所以是有層級(jí)結(jié)構(gòu)的。每一個(gè)元素在文檔中都有自己的位置,即上下文關(guān)系。完全可以根據(jù)元素的上下文關(guān)系,來獲取到它們。

2.1 一個(gè)元素的四種角色

角色描述
祖先元素擁有子元素、孫元素等所有層級(jí)的后代元素
父級(jí)元素僅擁有子元素層級(jí)的元素
后代元素與其它層級(jí)元素一起擁有共同祖先元素
子元素與其它同級(jí)元素一起擁有共同父級(jí)元素

實(shí)例:

<div>  <!-- div為祖先元素 -->  <p>...<span>...</span></p>  <!-- p為span的父級(jí)元素,span為子元素,p、span都為后代元素 -->  <table>  <!-- p、table為div的子元素 --></div>

2.2 四種上下文選擇器

選擇器操作符描述舉例
后代選擇器空格選擇當(dāng)前元素的所有后代元素div p, body *
父子選擇器>選擇當(dāng)前元素的所有子元素div > h2
同級(jí)相鄰選擇器+選擇擁有共同父級(jí)且相鄰的元素li.red + li
同級(jí)所有選擇器~選擇擁有共同父級(jí)的后續(xù)所有元素li.red ~ li

上下文選擇器的實(shí)例演示:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>    <style>      .container {        width: 300px;        height: 300px;        display: grid;        grid-template-columns: repeat(3, 1fr);        gap: 5px;      }      /* 類選擇器 */      .item {        font-size: 2rem;        color: azure;        background-color: cadetblue;        display: flex;        justify-content: center;        align-items: center;      }      /* 元素選擇器 */      body {        background-color: lightblue;      }      /* 后代選擇器 */      .container div {        border: 3px solid coral;      }      /* 父子選擇器,只有外層的div受影響 */      body > div {        border: 10px solid green;      }      /* body div.container {        border: 3px solid green;      }      指定container,用后代選擇器模擬父子選擇器 */      /* 同級(jí)相鄰選擇器 */      /* 選擇與第五個(gè)相鄰的(即后面的)一個(gè)元素 */      .item.center + .item {        background-color: cyan;      }      /* 同級(jí)所有選擇器 */      /* 選擇與第五個(gè)后面有共同父級(jí)的所有兄弟元素 */      .item.center ~ .item {        background-color: cyan;      }    </style>  </head>  <body>    <h2>上下文選擇器</h2>    <!-- 使用九宮格來演示上下文選擇器 -->    <div class="container">      <div class="item">1</div>      <div class="item">2</div>      <div class="item">3</div>      <div class="item">4</div>      <div class="item center">5</div>      <div class="item">6</div>      <div class="item">7</div>      <div class="item">8</div>      <div class="item">9</div>    </div>  </body></html>

實(shí)例效果圖:

上下文選擇器


3. 偽類選擇器

學(xué)習(xí)之前,先分析上下文選擇器的局限性,例如選擇同一個(gè)父級(jí)下的第二個(gè)子元素,就沒那么簡(jiǎn)單。而偽類就正好彌補(bǔ)了上下文選擇器的短板, 所以偽類,大多數(shù)是基于文檔中元素結(jié)構(gòu)的。

  • : 本意是假的、不存在的, 這里是特指, 不需要在元素上添加額外的屬性來獲取元素。

  • : 暗指?jìng)晤惖募?jí)別, 仍然是屬于”class”級(jí)別, 仍然屬于屬性選擇器范疇,級(jí)別高于元素選擇器。

偽類的應(yīng)用場(chǎng)景:

  • 結(jié)構(gòu)偽類——根據(jù)子元素的位置特征進(jìn)行選擇

  • 表單偽類——根據(jù)表單控件狀態(tài)特征進(jìn)行選擇

3.1 結(jié)構(gòu)偽類

不分組匹配

選擇器描述舉例
:first-child匹配第一個(gè)子元素div :first-child
:last-child匹配最后一個(gè)子元素div :last-child
:only-child選擇元素的唯一子元素div :only-child
:nth-child(n)匹配任意位置的子元素div :nth-child(n)
:nth-last-child(n)匹配倒數(shù)任意位置的子元素div :nth-last-child(n)

實(shí)例:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>    <style>      .container {        width: 300px;        height: 300px;        display: grid;        grid-template-columns: repeat(3, 1fr);        gap: 5px;      }      /* 類選擇器 */      .item {        font-size: 2rem;        color: azure;        background-color: cadetblue;        display: flex;        justify-content: center;        align-items: center;      }      /* 偽類選擇器,:first-child 匹配第一個(gè)單元格 */      .container > :first-child {        /* .container > .item:first-child ,.item可省略 */        /* :first-child  body、兩個(gè)div都包括 */        /* * :first-child 、 * :first-child 效果一樣,兩個(gè)div都包括*/        background-color: burlywood;      }      /* :last-child匹配最后一個(gè) */      .container > :last-child {        background-color: crimson;      }      /* :nth-child(n) 匹配任何一個(gè),索引從1開始計(jì)算  */      .container > :nth-child(3) {        background-color: chartreuse;      }      /* :nth-child(n) n 支持表達(dá)式 */      /* :nth-child(2n) 匹配偶數(shù),n在表達(dá)式中從0開始 */      .container > :nth-child(2n) {        /* even代表偶數(shù),可寫為:nth-child(even) */        background-color: rgb(206, 49, 253);      }      /* 選擇奇數(shù) */      .container > :nth-child(2n-1) {        /* odd 代表奇數(shù),可寫為:nth-child(odd) */        background-color: darkgreen;      }      /* 只選前3個(gè),n從0開始  */      .container > :nth-child(-n + 3) {        background-color: rgb(255, 166, 0);      }      /* 選擇倒數(shù)第2個(gè) */      .container > :nth-last-child(2) {        background-color: darkmagenta;      }      /* 從第4個(gè)開始選擇后面所有的 */      .container > :nth-child(n + 4) {        background-color: darkslateblue;      }    </style>  </head>  <body>    <h2>偽類選擇器(結(jié)構(gòu)偽類不分組匹配)</h2>    <!-- 使用九宮格來演示偽類選擇器 -->    <div class="container">      <div class="item">1</div>      <div class="item">2</div>      <div class="item">3</div>      <div class="item">4</div>      <div class="item">5</div>      <div class="item">6</div>      <div class="item">7</div>      <div class="item">8</div>      <div class="item">9</div>    </div>  </body></html>

奇數(shù)偶數(shù)實(shí)例:

<!-- 選擇偶數(shù) -->.container > :nth-child(2n) { background-color: rgb(206, 49, 253); }<!-- 選擇奇數(shù) -->.container > :nth-child(2n-1) { background-color: darkgreen; }

實(shí)例效果圖:

不分組匹配偽類選擇器

分組匹配

選擇器描述舉例
:first-of-type匹配按類型分組后的第一個(gè)子元素div :first-of-type
:last-of-type匹配按類型分組后的最后一個(gè)子元素div :last-of-type
:only-of-type匹配按類型分組后的唯一子元素div :only-of-type
:nth-of-type()匹配按類型分組后的任意位置的子元素div :nth-of-type(n)
:nth-last-of-type()匹配按類型分組后倒數(shù)任意位置的子元素div :nth-last-of-type(n)
  • 允許使用表達(dá)式來匹配一組元素,表達(dá)式中的“n”是從“0”開始計(jì)數(shù),且必須寫到前面。

  • “-n”表示獲取前面一組元素,正數(shù)表示從指定位置獲取余下元素。

實(shí)例:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>    <style>      .container {        width: 300px;        height: 300px;        display: grid;        grid-template-columns: repeat(3, 1fr);        gap: 5px;      }      /* 類選擇器 */      .item {        font-size: 2rem;        color: azure;        background-color: cadetblue;        display: flex;        justify-content: center;        align-items: center;      }      /* 選擇span分組的第一個(gè) */      .container span:first-of-type {        background-color: darkslateblue;      }      /* 選擇span分組的最后一個(gè) */      .container span:last-of-type {        background-color: slateblue;      }      /* 選擇div分組的前三個(gè) */      .container div:nth-of-type(-n + 3) {        background-color: blue;      }    </style>  </head>  <body>    <h2>偽類選擇器(結(jié)構(gòu)偽類分組匹配)</h2>    <!-- 使用九宮格來演示偽類選擇器 -->    <div class="container">      <!-- 第一組 -->      <div class="item">1</div>      <div class="item">2</div>      <div class="item">3</div>      <div class="item">4</div>      <!-- 第二組 -->      <span class="item">5</span>      <span class="item">6</span>      <span class="item">7</span>      <span class="item">8</span>      <span class="item">9</span>    </div>  </body></html>

實(shí)例效果圖:

偽類結(jié)構(gòu)分組選擇器

3.2 表單偽類

選擇器描述舉例
:enabled匹配表單中有效屬性的元素input :enabled
:disabled匹配表單中禁用屬性的元素input :disable
required匹配表單中必選屬性的元素input :required

實(shí)例:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>    <style>      /* 所有有效的input控件 */      input:enabled {        background-color: lightgreen;      }      /* 被禁用的 */      input:disabled {        background-color: lightgray;      }      /* 所有必選項(xiàng) */      input:required {        background-color: bisque;      }    </style>  </head>  <body>    <h3>用戶登錄</h3>    <form action="" method="POST">      <div>        <label for="email">郵箱:</label>        <input          type="email"          id="email"          name="email"          required          placeholder="example@email.com"        />      </div>      <label for="password">密碼:</label>      <input        type="password"        id="password"        name="password"        required        placeholder="不得少于6位"      />      <div>        <label for="save">保存密碼:</label>        <input type="checkbox" id="save" name="save" checked readonly />      </div>      <div>        <label for="save_time">保存期限:</label>        <select name="save_time" id="save_time">          <option value="7" selected>7天</option>          <option value="30">30天</option>        </select>      </div>      <div>        <input type="hidden" name="login_time" value="登錄時(shí)間戳" />      </div>      <div>        <label for="warning">警告:</label>        <input          type="text"          id="warning"          value="一天內(nèi)僅允許登錄3次"          style="border: none;"          disabled        />      </div>      <script>        //   自動(dòng)生成時(shí)間戳,填充到表單隱藏域中        document.querySelector('[type="hidden"]').value = new Date().getTime();      </script>    </form>  </body></html>

演示效果:

表單偽類

3.3 其它偽類

選擇器描述
:active向被激活的元素添加樣式
:focus向擁有鍵盤輸入焦點(diǎn)的元素添加樣式
:hover當(dāng)鼠標(biāo)懸浮在元素上方時(shí),向元素添加樣式
:link向未被訪問的鏈接添加樣式
:visited向已被訪問的鏈接添加樣式
:root根元素,通常是html
:empty選擇沒有任何子元素的元素(含文本節(jié)點(diǎn))
:not()排除與選擇器參數(shù)匹配的元素

實(shí)例:

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>    <style>      /* 根元素 */      :root {        /* html效果相同,但在xml中沒有html元素, */        background-color: lightsteelblue;      }      /* 觸發(fā)順序?yàn)閘ink-->visited-->hover-->active ,focus在hover和active之間*/      /* 未被訪問的鏈接 */      a:link {        color: red;      }      /* 已被訪問的鏈接 */      a:visited {        color: royalblue;      }      /* 當(dāng)鼠標(biāo)懸浮在元素上方時(shí) */      a:hover {        color: yellow;      }      /* 被激活的元素 */      a:active {        color: yellowgreen;      }      /* 擁有鍵盤輸入焦點(diǎn)的元素 */      a:focus {        color: violet;      }      /* 選擇沒有任何子元素的元素(含文本節(jié)點(diǎn))  */      /* 指定空的 p 元素的背景色 */      p:empty {        background-color: wheat;      }      /* :not()排除與選擇器參數(shù)匹配的元素  */      div :not([class="container"]) {        color: yellow;      }    </style>  </head>  <body>    <p></p>    <a href="http:ipnx.cn">php中文網(wǎng)</a>    <div>      <div class="container">hello</div>      <div>hello</div>    </div>  </body></html>
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:非常直觀 , 圖文并茂, 一看就明白
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)