狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

如何在CSS樣式表設(shè)計(jì)中通過(guò)使用JavaScript動(dòng)態(tài)修改變量


2024年7月14日 13:3 本文熱度 1924

Sass 作為一個(gè)強(qiáng)大的CSS預(yù)處理器,在過(guò)去十年里廣受大家好評(píng)。它能夠幫助我們高效地組織可擴(kuò)展和穩(wěn)定的 CSS 代碼。然而,隨著CSS的快速發(fā)展。曾經(jīng)只有 Sass 才有的特性現(xiàn)在已經(jīng)集成到 CSS 中了,包括Sass最引以為豪的變量語(yǔ)法和嵌套語(yǔ)法。

變量

在曾經(jīng)很長(zhǎng)的一段時(shí)間里,能夠在CSS中定義變量被視為是 SCSS 的最獨(dú)特優(yōu)勢(shì),通過(guò)定義變量的方式,我們可以批量的管理屬性,并且這也是原生CSS中一直被人吐槽的地方(當(dāng)我們需要修改同一個(gè)屬性時(shí),需要修改多次)。但是隨著CSS的快速發(fā)展, CSS 中也支持定義變量這種語(yǔ)法了,它的定義方式類(lèi)似于 Sass。但是,它們之間的一個(gè)重大區(qū)別,是Sass的變量?jī)H存在于預(yù)處理器上下文中,而 我們的CSS 變量可以在瀏覽器中使用,甚至可以通過(guò) JavaScript 動(dòng)態(tài)修改

下面我們就示例如何在原始CSS中定義變量。

//定義變量
:root {
  --button-padding10px 20px;
  --button-bg-color#007bff;
  --button-text-color#ffffff;
  --button-border-radius8px;
}

//使用變量
.button {
  paddingvar(--button-padding);
  background-colorvar(--button-bg-color);
  colorvar(--button-text-color);
  border-radiusvar(--button-border-radius);
  border: none;
  cursor: pointer;
  transition: background-color 0.3s;
}

CSS的嵌套

在樣式的編寫(xiě)中 嵌套式的語(yǔ)法幫助了我們大大的減輕工作量也提高了代碼的可讀性。

.blog {
  position: relative;
  padding1rem;
  backgroundvar(--neutral-100);

    .blog-item {
      border1px solid var(--neutral-200);

      & span {
        font-size1rem;
      }
  }
}

:is 偽類(lèi)

:is 偽類(lèi)是通過(guò)接受一個(gè)選擇器列表為參數(shù),然后將后邊的樣式分別賦值給每個(gè)作為參數(shù)的選擇器,它大大的減少了我們樣式中的重復(fù)代碼,并且可以大大的提高我們的編寫(xiě)代碼的效率。

:is(selector1selector2selector3) {
  /* 樣式 */
}

:has 偽類(lèi)

:has()表示滿(mǎn)足一定條件后,就會(huì)匹配該元素,并且括號(hào)里面可以填組合選擇器類(lèi)選擇器ID 選擇器屬性選擇器

選擇包含特定子元素的父元素

.hero:has(.hero-button) {
  background-colorvar(--accent-50);
}

選擇包含特定標(biāo)簽名的子元素的父元素:

cssCopy code
/* 選擇包含 <span> 標(biāo)簽的子元素的 div 元素 */
div:has(span) {
    /* CSS 樣式 */
}

選擇包含指定屬性的子元素的父元素:

cssCopy code
/* 選擇包含有屬性 "href" 的子元素的 a 元素 */
a:has([href]) {
    /* CSS 樣式 */
}

選擇包含特定屬性值的子元素的父元素:

cssCopy code
/* 選擇包含具有 "data-active" 屬性并且值為 "true" 的子元素的 div 元素 */
div:has([data-active="true"]) {
    /* CSS 樣式 */
}

容器查詢(xún)

容器查詢(xún)被認(rèn)為是 CSS3 以來(lái)最重大的創(chuàng)新。因?yàn)樗梢愿鶕?jù)指定容器在尺寸發(fā)生變化時(shí),在滿(mǎn)足條件的情況下設(shè)置其內(nèi)部元素樣式。類(lèi)似@media,但不同的是@container是針對(duì)容器元素,而@media針對(duì)的是瀏覽器窗口。

/* 定義一個(gè)名為 component 的 CSS 類(lèi) */
.component {
  /* 設(shè)置一個(gè)名為 --theme 的 CSS 變量,值為 dark */
  --theme: dark;
  /* 設(shè)置 container-name 屬性的值為 fancy */
  container-name: fancy;
}

/* 使用 @container 自定義容器查詢(xún) */
/* 當(dāng)容器名稱(chēng)為 fancy 且主題為 dark 時(shí),應(yīng)用下列樣式 */
@container fancy style(--theme: dark) {
  /* 選擇所有類(lèi)名為 fancy 的元素 */
  .fancy {
    /* 在這里定義 "dark" 主題下的樣式 */
    /* 這里可以添加一些適用于暗色主題的樣式 */
  }
}

/* 使用媒體查詢(xún) */
/* 當(dāng)視口寬度達(dá)到至少 720 像素時(shí),應(yīng)用下列樣式 */
@container (min-width: 720px) {
  /* 選擇所有類(lèi)名為 headline 的元素 */
  .headline {
    /* 設(shè)置字體大小為 2em */
    font-size2em;
  }
}

@layer(級(jí)聯(lián)層)

作用:用于控制樣式表中規(guī)則的層疊順序。它允許我們將樣式表中的規(guī)則分組到不同的層中。

在 CSS 中,不同來(lái)源的樣式規(guī)則具有不同的優(yōu)先級(jí)。例如,開(kāi)發(fā)者編寫(xiě)的樣式表(作者樣式表)比瀏覽器默認(rèn)樣式表(用戶(hù)代理樣式表)具有更高的優(yōu)先級(jí)。這種優(yōu)先級(jí)關(guān)系可以被理解為“級(jí)聯(lián)規(guī)則”。

使用級(jí)聯(lián)層,開(kāi)發(fā)者可以更靈活地控制這些級(jí)聯(lián)規(guī)則。在級(jí)聯(lián)層 A 中聲明的 CSS 規(guī)則與級(jí)聯(lián)層 B 中的規(guī)則完全獨(dú)立,它們的生效與否僅取決于它們所在的級(jí)聯(lián)層(除非使用了 !important)。因此,當(dāng)我們希望引入第三方樣式表但又不希望第三方某些高優(yōu)先級(jí)的規(guī)則覆蓋原始的同名規(guī)則時(shí),可以使用級(jí)聯(lián)層來(lái)實(shí)現(xiàn)這一目的。

任何未在級(jí)聯(lián)層中聲明的 CSS 規(guī)則都會(huì)被收集到一個(gè)匿名的級(jí)聯(lián)層中,并放置在所有手動(dòng)聲明的、有命名的和匿名的級(jí)聯(lián)層之后。這意味著任何未在級(jí)聯(lián)層中聲明的 CSS 規(guī)則都將覆蓋在級(jí)聯(lián)層中聲明的規(guī)則,與規(guī)則的權(quán)重?zé)o關(guān)。

通過(guò)使用級(jí)聯(lián)層,開(kāi)發(fā)者可以更好地管理樣式規(guī)則,確保特定規(guī)則的優(yōu)先級(jí),以及更好地控制第三方樣式表的影響。

@layer utilities {
  .button {
    padding0.5rem;
  }

  .button--lg {
    padding0.8rem;
  }
}



該文章在 2024/7/15 16:19:04 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved