中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS中的 :is() 和 :where()怎么用

發布時間:2021-09-24 10:16:53 來源:億速云 閱讀:169 作者:柒染 欄目:web開發

這篇文章將為大家詳細講解有關CSS中的 :is() 和 :where()怎么用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

新人在入門CSS的時候,往往最困惑的就是兩件事情(個人想法):1. CSS是基于文檔流的,有些時候編寫的代碼,并不符合自己的預期! 2.復雜的選擇器,什么場景用什么選擇器,選擇器太長,讓新人很困惱,。最近在公司的代碼中發現了這樣一段代碼。

.home .col .card a i.i1,
.home .col .card a i.i2,
.home .col .card a i.i3,
.home .col .card a i.i4,
.home .col .card a i.i5,
.home .col .card a i.i5,
.home .col .card a i.i6,
.home .col .card a i.i7 {
  background-size: 35px;
  width: 60px;
  height: 42px;
  margin: auto;
}

乍一看真的特別多,作為交接人,我真的看呆了,這也忒長了吧。

CSS中的 :is() 和 :where()怎么用

大家可以開動自己的小腦筋,嘗試不同的方案,去簡化簡寫這段帶代碼!

本文我們來講講CSS3比較高效的選擇器,保證讓人眼前一亮的選擇器。

:is

用更少的代碼去更有效地選擇元素!666,牛逼!!!

簡單的來說就是 通過提取共通的選擇器,來簡化代碼!

注意: :is() 原名  :match()

舉例1. 全局 :is

場景:在前端開發的時候,某些情況下,在不同的div下,可能文本的顏色是一致的。

例如下面的三個div,三個div的文本顏色都是紅色。

    <div class="div1">
        <p>p1</p>
    </div>
    <div class="div2">
        <p>p2</p>

    </div>
    <div class="div3">
        <p>p3</p>
    </div>

初級版本(新手)

對于很多新手,確實是會出現下面的寫法:針對不同的div的p進行相同的設置。

.div1>p{
    color:red;
}
.div2>p{
    color:red;
}
.div3>P{
    color:red;
}

進階版本

隨著編寫代碼的增多,新手逐漸發現,有很多共同的代碼,可以提取出來。比如這里的color:red ,就可以提取出來。哇,代碼瞬間減少了很多!!!

.div1>p,
.div2>p,
.div3>P{
    color:red;
}

高級版本(:is)

這時候新手又覺得了,既然color:red;可以提出來,那為什么p不提出來呢? 于是出現了下面更簡潔的版本。

:is(.div1,.div2,.div3) >P {
  color:red;
}

CSS中的 :is() 和 :where()怎么用

舉例2 特定元素:is

且看下面的代碼,我們想要實現div的顏色是紅色的,并且顏色定義是在textColor種,并且保持p是黑色的。

<div class="textColor">
        p1
</div>
<div class="textColor">
    p2
</div>
<div class="textColor">
    p3
</div>
<p class="textColor">p4</p>

看了上面的舉例1,我估計有些新手就要開始這樣寫了:直接給p標簽添加新的式樣。

:is(.textColor) {    color:red;

}.pColor{   color: black;
}
<p class="textColor pColor">p4</p>

但是:is是支持特定元素的寫法的:你只需要在:is 前面添加

div:is(.textColor) {
    color:red;
}

CSS中的 :is() 和 :where()怎么用

多個:is

div:is(.textColor) :is(h2,h5){
  color:red;
}
<div class="textColor">
  <h2>h2</h2>
  <h3>h3</h3>
  <h4>h4</h4>
  <h5>h5</h5>
</div>

CSS中的 :is() 和 :where()怎么用

權重

:is 的權重是由提供的id,元素等選擇器決定的;可能比較難理解。一個例子馬上明白。

<ol id="olID">
    <li>li1</li>
    <li>li2</li>
</ol>

我們來更改li的字體顏色。

:is(ol) li {
  color: red;
}
ol li {
  color: blue;
}

大家可以猜一下是什么顏色。

是藍色:為啥呢,首先is的參數是ol與下面的那個ol選擇器的權重一致。并且由于blue是在下面的,瀏覽器自動使用blue覆蓋掉了red。

CSS中的 :is() 和 :where()怎么用

再看下面的寫法,我們給is的參數加了一個id: #olID,最終的顏色就是紅色。這就是因為is使用了權重更高的id選擇器。

 :is(ol,#olID) li {
        color: red;
      }
      ol li {
        color: blue;
      }

CSS中的 :is() 和 :where()怎么用

:where

:where和:is的語法參數完全一致。唯一不同的就是:where的權重永遠為0,或者說是最卑微的。 還是上面那個例子。

<ol id="olID">
  <li>li1</li>
  <li>li2</li>
</ol>

這里我們:

:where(ol,#olID) li {
  color: red;
}
ol li {
  color: blue;
}

最后的結果是藍色

CSS中的 :is() 和 :where()怎么用

應用場景

因為要說了,既然有了is為啥還要:where?個人覺得,:where還是很有用的。比如說在開發組件庫的時候,可以使用,因為where的權重很低,那么使用者是不是很容易覆蓋了,就不需要什么!imprtant,v-deep之類的了。

CSS中的 :is() 和 :where()怎么用

關于CSS中的 :is() 和 :where()怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闽清县| 二连浩特市| 乌拉特后旗| 龙江县| 厦门市| 辽阳县| 新竹县| 安仁县| 丰县| 堆龙德庆县| 连平县| 辉南县| 永兴县| 西和县| 西城区| 灵璧县| 沙坪坝区| 千阳县| 安西县| 怀远县| 密山市| 许昌市| 广昌县| 永新县| 平舆县| 拜泉县| 石河子市| 卓资县| 会理县| 邛崃市| 平湖市| 原平市| 通州区| 竹山县| 台南县| 南江县| 嘉善县| 合水县| 潞城市| 文登市| 景泰县|