公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

如何在CSS樣式表設計中通過使用JavaScript動態修改變量


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

Sass 作為一個強大的CSS預處理器,在過去十年里廣受大家好評。它能夠幫助我們高效地組織可擴展和穩定的 CSS 代碼。然而,隨著CSS的快速發展。曾經只有 Sass 才有的特性現在已經集成到 CSS 中了,包括Sass最引以為豪的變量語法和嵌套語法。

變量

在曾經很長的一段時間里,能夠在CSS中定義變量被視為是 SCSS 的最獨特優勢,通過定義變量的方式,我們可以批量的管理屬性,并且這也是原生CSS中一直被人吐槽的地方(當我們需要修改同一個屬性時,需要修改多次)。但是隨著CSS的快速發展, CSS 中也支持定義變量這種語法了,它的定義方式類似于 Sass。但是,它們之間的一個重大區別,是Sass的變量僅存在于預處理器上下文中,而 我們的CSS 變量可以在瀏覽器中使用,甚至可以通過 JavaScript 動態修改

下面我們就示例如何在原始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的嵌套

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

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

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

      & span {
        font-size1rem;
      }
  }
}

:is 偽類

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

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

:has 偽類

:has()表示滿足一定條件后,就會匹配該元素,并且括號里面可以填組合選擇器類選擇器ID 選擇器屬性選擇器

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

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

選擇包含特定標簽名的子元素的父元素:

cssCopy code
/* 選擇包含 <span> 標簽的子元素的 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 樣式 */
}

容器查詢

容器查詢被認為是 CSS3 以來最重大的創新。因為它可以根據指定容器在尺寸發生變化時,在滿足條件的情況下設置其內部元素樣式。類似@media,但不同的是@container是針對容器元素,而@media針對的是瀏覽器窗口。

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

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

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

@layer(級聯層)

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

在 CSS 中,不同來源的樣式規則具有不同的優先級。例如,開發者編寫的樣式表(作者樣式表)比瀏覽器默認樣式表(用戶代理樣式表)具有更高的優先級。這種優先級關系可以被理解為“級聯規則”。

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

任何未在級聯層中聲明的 CSS 規則都會被收集到一個匿名的級聯層中,并放置在所有手動聲明的、有命名的和匿名的級聯層之后。這意味著任何未在級聯層中聲明的 CSS 規則都將覆蓋在級聯層中聲明的規則,與規則的權重無關。

通過使用級聯層,開發者可以更好地管理樣式規則,確保特定規則的優先級,以及更好地控制第三方樣式表的影響。

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

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



該文章在 2024/7/15 16:19:04 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产成人无码影片在线观看 | 国产精品女同一 | 国产黄色av | 精品国产香蕉伊思人在线 | 国产一区二区三区av水蜜桃 | 国产成人永久免费高清 | 国产精品白浆冒出视频 | 国产高清在线精品一区二区 | 精品国产高清一区二区广区 | 国产毛片久久毛片 | 国产精品v无码a片在线看 | 国产在线视频最新中文字幕 | 国产成人无码aⅴ片在线观看 | 2025国产男人亚洲欧美天堂 | 99精品国产高清一区二区麻豆 | 国产内射一级一片内射精品视频 | 99久久久精品综合 | 成人a级毛片免费观看av一区 | 国产精品免费人成网站 | 国产天堂一区二区三区 | 国产av午夜网站 | 国产欧美精品区一区二区三区 | 国产亚洲中文一区二区三区 | 国产精品偷伦视频免费 | 国产在线精品国自产 | 成人夜色视频网站 | 国产综合久久一区二区三区 | 99久久婷婷国产自综合青草 | 国产成人亚洲精品无码车a 国产成人亚洲精品无码青app | 国产美女精品久久久 | 国产亚洲成av人片在线观黄桃 | 国产午夜伦鲁鲁 | 精品国产自线午夜福利 | av三区在线在线播放 | 动漫久章草在线视频播放国产 | 国产99精品视频一区二区三区 | 岛国大片在线一区二区三区 | 成年在线观看 | 国产人妖ts观看一区二区 | 潮喷失禁大喷水无码 | 国产精品成人自产拍在线观看 |