成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快來使用 CSS 的 :is() 減少你的代碼吧

開發 前端
is() 是一個 CSS 偽類函數,該函數將選擇器列表作為參數,并選擇該列表中任意一個選擇器可以選擇的元素。

[[440852]]

 deis()  么?

is() 是一個 CSS 偽類函數,該函數將選擇器列表作為參數,并選擇該列表中任意一個選擇器可以選擇的元素。舉個例子就比較清晰的理解:

使用前: 

  1. ul li,  
  2. ol li {} 

使用后: 

  1. :is(ul, ol) li {} 

優化我們的代碼

假如我們系統比較復雜,is() 可以幫助我們簡化代碼,比如如下代碼: 

  1. /* 3-deep (or more) unordered lists use a square */  
  2. ol ol ul,     ol ul ul,     ol menu ul,     ol dir ul,  
  3. ol ol menu,   ol ul menu,   ol menu menu,   ol dir menu,  
  4. ol ol dir,    ol ul dir,    ol menu dir,    ol dir dir,  
  5. ul ol ul,     ul ul ul,     ul menu ul,     ul dir ul,  
  6. ul ol menu,   ul ul menu,   ul menu menu,   ul dir menu,  
  7. ul ol dir,    ul ul dir,    ul menu dir,    ul dir dir,  
  8. menu ol ul,   menu ul ul,   menu menu ul,   menu dir ul,  
  9. menu ol menu, menu ul menu, menu menu menu, menu dir menu,  
  10. menu ol dir,  menu ul dir,  menu menu dir,  menu dir dir,  
  11. dir ol ul,    dir ul ul,    dir menu ul,    dir dir ul,  
  12. dir ol menu,  dir ul menu,  dir menu menu,  dir dir menu,  
  13. dir ol dir,   dir ul dir,   dir menu dir,   dir dir dir {  
  14.   list-style-type: square;  

簡化成: 

  1. /* 3-deep (or more) unordered lists use a square */  
  2. :is(ol, ul, menu, dir) :is(ol, ul, menu, dir) ul,  
  3. :is(ol, ul, menu, dir) :is(ol, ul, menu, dir) menu,  
  4. :is(ol, ul, menu, dir) :is(ol, ul, menu, dir) dir {  
  5.   list-style-type: square;  

避免 CSS 錯誤

假如我們的 CSS 中有錯誤,將導致整個選擇器不生效。比如下面的 .content 寫成 :content。demo 地址[1] 

  1. <div class="container-1">  
  2.   <p class="title">I am Gopal</p>  
  3.   <div class="content">我是鍋巴</div>  
  4. </div>  
  5. <div class="container-2">  
  6.   <p class="title">I am Gopal</p>  
  7.   <div class="content">我是鍋巴</div>  
  8. </div>  
  1. /* 寫錯,將導致都不生效 */ 
  2. .container-1 .title, .container-1 :content {  
  3.   color: #885c5c;  

但假如使用 :is(),.title 選擇器依然可以生效,如下: 

  1. /* content 寫錯,title 還可以生效 */  
  2. .container-2 :is(.title, :content) {  
  3.   color: #885c5c;  

is() VS CSS 預處理器

is() 和 CSS 預處理器中的嵌套規則很相像,如下所示: 

  1. div, p, ul, ol {  
  2.   span {  
  3.     /* ... */  
  4.   }  
  5.  
  6. /* 最終解析成 */  
  7. div span, p span, ul span, ol span {  
  8.   /* ...*/  

以下是 :is() 的實現 

  1. :is(div, p, ul, ol) span {  

但需要注意的是它們的優先級是不一樣的。

優先級

通過 :is() 匹配到元素的優先級,會采用 :is() 選擇器列表參數中優先級最高的計算(即使它不存在)。

理解起來有點拗口,直接看一個 demo 地址[2] 

  1. <ul class="container-3">  
  2.   <li class="title">I am Gopal</li>  
  3.   <li class="content">我是鍋巴</li>  
  4. </ul>  
  1. /* 計算的時候,取 .list,而不是 ul。其優先級為 0 1 1 */  
  2. :is(ol, .list, ul) li { 
  3.   color: #885c5c;  
  4.  
  5. /* 優先級為 0 0 2 */  
  6. ul li {  
  7.   color: #000;  

在使用 :is() 的時候,它的參數為 ol, .list, ul,取最高的 .list 計算,其優先級為 0 1 1。而 ul li 的優先級是 0 0 2。所以會是 :is() 選擇器生效,即使后者寫在后面,這個跟預選擇器是有區別的,使用預選擇器會被后面的覆蓋。

兼容性

:is() 兼容性,IE 還是全軍覆沒,但很多場景可以用起來了。詳情[3]

 

 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2014-08-06 09:39:27

移動辦公企業郵箱吧

2023-07-05 08:20:33

自定義注解Java語言

2021-06-10 07:59:40

Linux 系統硬件操作系統

2021-06-22 10:16:39

Java工具庫代碼

2023-04-14 19:19:09

CSSHTML文檔

2010-06-21 09:08:02

Twitter宕機云計算

2022-03-08 06:41:35

css代碼

2023-07-05 10:11:02

2021-09-03 08:21:20

前端代碼模塊

2009-07-22 07:45:00

Scala代碼重復

2022-10-28 09:51:18

PrintfLinux開發

2021-08-02 15:30:43

Windows 11Linux

2021-08-02 07:52:26

Windows 11操作系統 Linux

2022-08-01 08:36:09

upstream下游上游

2009-12-15 17:53:18

Ruby標準庫

2019-11-25 10:20:54

CSS代碼javascript

2012-02-07 14:04:53

CSS

2024-05-11 18:48:40

技巧代碼技能

2014-08-08 13:40:53

AngularJS模塊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲人成人一区二区在线观看 | 日日做夜夜爽毛片麻豆 | 久久综合久久久 | 五月花丁香婷婷 | 婷婷开心激情综合五月天 | 久久久精品一区二区三区四季av | 国产中文字幕在线观看 | 日韩在线欧美 | 国产精品一二区 | 中文字幕视频一区 | 亚洲a在线观看 | 日韩在线看片 | 国产精品久久久久久影院8一贰佰 | 久久草在线视频 | 国产一区二区电影 | 色婷婷av777 av免费网站在线 | 久久久综合色 | 99久久精品一区二区毛片吞精 | 精品成人免费一区二区在线播放 | 国产91丝袜 | av黄在线观看| 久久久久久高潮国产精品视 | 国产精品久久久久久妇女6080 | 日本不卡视频在线播放 | 日韩精品一区在线 | 蜜臀久久99精品久久久久久宅男 | 黄免费在线 | 免费视频一区 | 999久久久| 国产色播av在线 | 91视频观看 | 亚洲精品久久久久久久久久久久久 | 国内自拍偷拍一区 | 国产在线精品一区二区三区 | 一区二区三区中文字幕 | 亚洲精品视频免费观看 | 欧美国产视频 | 亚洲视频1区 | 成人免费影院 | 久久久成人网 | 亚洲综合二区 |