真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CSS原生嵌套語法怎么使用

本文小編為大家詳細介紹“CSS原生嵌套語法怎么使用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“CSS原生嵌套語法怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比寶興網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式寶興網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋寶興地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

基本概念

所謂的嵌套,就是將一個 CSS 規(guī)則放在另一個(嵌套規(guī)則)中,子規(guī)則的選擇器將相對于父規(guī)則的選擇器。這有利于代碼的模塊化和可維護性。原來只能在 CSS 預(yù)處理器中使用的嵌套功能,先在可以在原生 CSS 中使用。

其實,CSS 嵌套和 Sass 的嵌套類似,比如,對于以下 CSS 樣式:

table.colortable td {
 text-align:center;
}

table.colortable td.c {
 text-transform:uppercase;
}

table.colortable td:first-child, table.colortable td:first-child+td {
 border:1px solid black;
}

table.colortable th {
 text-align:center;
 background:black;
 color:white;
}

如果使用 CSS 嵌套時,就是這樣的:

table.colortable {
  & td {
    text-align:center;
    &.c { text-transform:uppercase }
    &:first-child, &:first-child + td { border:1px solid black }
  }
  & th {
    text-align:center;
    background:black;
    color:white;
  }
}

可以看到,使用嵌套不僅消除重復(fù),相關(guān)規(guī)則的分組還提高了生成的 CSS 的可讀性和可維護性。

嵌套規(guī)則

嵌套規(guī)則可以使用嵌套選擇器(&) 直接引用父規(guī)則的匹配元素,或者使用相對選擇器語法指定“后代”以外的關(guān)系。

.foo {
  color: red;

  &:hover {
    color: blue;
  }
}

/* 相當(dāng)于: */

.foo { color: red; }
.foo:hover { color: blue; }
.foo {
  color: red;

  + .bar {
    color: blue;
  }
}

/* 相當(dāng)于: */

.foo { color: red; }
.foo + .bar { color: blue; }

但是,以標識符(類型選擇器)開始嵌套選擇器是無效的:

div {
  color: red;

  input {
    margin: 1em;
  }
}
/* 無效,因為 input 是一個標識符 */

如果想繼續(xù)這樣編寫,就需要稍微進行修改:

div {
  color: red;

  & input { margin: 1em; }
  /* 有效,不再以標識符開頭 */

  :is(input) { margin: 1em; }
  /* 有效,以冒號開頭,并且等同于之前的規(guī)則 */
}

嵌套選擇器

在使用嵌套規(guī)則時,必須能夠引用父規(guī)則匹配的元素。為此,規(guī)范中定義了一個新的選擇器,即嵌套選擇器,寫為 & 。

當(dāng)在嵌套樣式規(guī)則的選擇器中使用時,嵌套選擇器表示與父規(guī)則匹配的元素。當(dāng)在任何其他上下文中使用時,它表示與該上下文中的 :scope 相同的元素。

嵌套選擇器可以通過 :is() 選擇器將其替換為父樣式規(guī)則的選擇器。例如:

a, b {
  & c { color: blue; }
}

這就相當(dāng)于:

:is(a, b) c { color: blue; }

嵌套選擇器不能表示偽元素(與 :is() 的行為相同):

.foo, .foo::before, .foo::after {
  color: red;

  &:hover { color: blue; }
}

這里,& 只代表.foo匹配的元素,它等同于:

.foo, .foo::before, .foo::after {
  color: red;
}

.foo:hover {
  color: blue;
}

嵌套選擇器的特異性(權(quán)重)等于父樣式規(guī)則的選擇器列表中復(fù)雜選擇器中最大的特異性(與 :is() 的行為相同):

#a, b {
  & c { color: blue; }
}

.foo c { color: red; }

DOM 結(jié)構(gòu)如下:


  Blue text

文本將是藍色的,而不是紅色的。& 的特異度是 #a([1,0,0]) 和 b([0,0,1]) 特異性中較大的一個,所以是 [1,0,0],而整個 & c 選擇器具有特異性 [1,0,1],它大于 .foo c ([0,1,1]) 的特異性。

值得注意的是,這與將嵌套手動擴展為非嵌套規(guī)則時得到的結(jié)果不同,因為 color: blue 聲明將由 b c 選擇器 ([0,0,2]) 匹配,而不是#a c ([1,0,1])。

讀到這里,這篇“CSS原生嵌套語法怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前名稱:CSS原生嵌套語法怎么使用
瀏覽地址:http://weahome.cn/article/jicpcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部