<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • CSS中變量的基本教程詳解

    時間:2024-10-20 03:43:40 CSS 我要投稿
    • 相關推薦

    CSS中關于變量的基本教程詳解

      CSS中的變量給了我們諸多優點:方便、代碼重用、更可靠的代碼庫和提升防錯能力。

      示例

      CSS Code復制內容到剪貼板 :root{ --base-font-size:16px; --link-color:#6495ed; } p{ font-size:var(--base-font-size); } a{ font-size:var(--base-font-size); color:var(--link-color); }

      基礎

      當使用CSS變量時,你應該了解的三個主要組成:

      自定義屬性

      var()函數

      :root偽類

      自定義屬性

      你已經知道了一些CSS的標準屬性,如color,margin,width和font-size。

      下面的示例使用了CSS的color屬性:

      CSS Code復制內容到剪貼板 body{ color:#000000;/*The"color"CSSproperty*/ }

      自定義屬性僅意味著我們(創建CSS文件的人)去定義屬性的名字。

      為了自定義一個屬性名,我們需要用--作為前綴。

      如果我們要創建一個值為黑色的、名為text-color的自定義屬性,可以這樣做:

      CSS Code復制內容到剪貼板 :root{ --text-color:#000000;/*Acustompropertynamed"text-color"*/ }

      var()函數

      為了應用自定義屬性,需要利用var()函數,否則瀏覽器不知道他們代表什么。

      如果想要在p、h1和h2中的樣式中使用--text-color,可以這樣使用var()函數:

      CSS Code復制內容到剪貼板 :root{ --text-color:#000000; } p{ color:var(--text-color); font-size:16px; } h1{ color:var(--text-color); font-size:42px; } h2{ color:var(--text-color); font-size:36px; }

      其等價于:

      CSS Code復制內容到剪貼板 p{ color:#000000; font-size:16px; } h1{ color:#000000; font-size:42px; } h2{ color:#000000; font-size:36px; }

      :root偽類

      我們需要一個地方來放置自定義屬性。雖然可以在任何樣式規則中指定自定義屬性,但到處定義屬性并不是一個好主意,這對CSS的可維護性和可閱讀性是一個挑戰。

      :root 偽類代表了HTML文檔的根元素,這是一個放置自定義屬性的好位置,因為我們可以通過其他更具特異性的選擇器來覆蓋自定義屬性值。

      CSS變量的好處

      可維護性

      在一個Web開發項目中,我們經常重復使用一個特定的CSS屬性值:

      CSS Code復制內容到剪貼板 h1{ margin-bottom:20px; font-size:42px; line-height:120%; color:gray; } p{ margin-bottom:20px; font-size:18px; line-height:120%; color:gray; } img{ margin-bottom:20px; border:1pxsolidgray; } .callout{ margin-bottom:20px; border:3pxsolidgray; border-radius:5px; }

      當需要改變某些屬性值時,問題就會暴露出來了。

      如果我們手動的改變屬性值,尤其是當CSS文件很大時,不僅會花費大量時間,還可能會范一些錯誤。同樣的,如果我們執行一個批處理查找和替換,就可能會無意中影響其他樣式規則。

      我們可以使用CSS變量重寫:

      CSS Code復制內容到剪貼板 :root{ --base-bottombottom-margin:20px; --base-line-height:120%; --text-color:gray; } h1{ margin-bottom:var(--base-bottombottom-margin); font-size:42px; line-height:var(--base-line-height); color:var(--text-color); } p{ margin-bottom:var(--base-bottombottom-margin); font-size:18px; line-height:var(--base-line-height); color:var(--text-color); } img{ margin-bottom:var(--base-bottombottom-margin); border:1pxsolidgray; } .callout{ margin-bottom:var(--base-bottombottom-margin); border:1pxsolidgray; border-radius:5px; color:var(--text-color); }

      假設你現在的客戶說由于文本顏色太亮,導致文本難以閱讀,想要改變文本顏色,此時,我們只需要更新一行CSS規則:

      CSS Code復制內容到剪貼板 --text-color:black;

      提高CSS的可讀性

      自定義屬性會使樣式表更加易讀,也會使CSS屬性聲明更有語義。

      將這個聲明

      CSS Code復制內容到剪貼板 background-color:yellow;

      和下面的聲明比較一下

      CSS Code復制內容到剪貼板 background-color:var(--highlight-color); font-size:var(--base-font-size);

      像yellow和18px一類的屬性值并沒有給我們任何有用的上下文信息,但是當我們閱讀如--base-font-size和--highlight-color一樣的屬性名時,即便在其他人的代碼,我們都能馬上知道這個屬性值是在做什么。

      要注意的事

      大小寫敏感

      自定義屬性是大小寫敏感的(和普通的CSS規則不一樣)

      CSS Code復制內容到剪貼板 :root{ --main-bg-color:green; --MAIN-BG-COLOR:RED; } .box{ background-color:var(--main-bg-color);/*greenbackground*/ } .circle{ BACKGROUND-COLOR:VAR(--MAIN-BG-COLOR);/*redbackground*/ border-radius:9999em; } .box, .circle{ height:100px; width:100px; margin-top:25px; box-sizing:padding-box; padding-top:40px; text-align:center; }

      自定義屬性值的解析

      當重復聲明自定義屬性時,其賦值遵循通常的CSS層疊和繼承規則。例如下面的示例:

      HTML

      XML/HTML Code復制內容到剪貼板Link

      CSS

      CSS Code復制內容到剪貼板 :root{ --highlight-color:yellow; } body{ --highlight-color:green; } .container{ --highlight-color:red; } a{ color:var(--highlight-color); }

      當移除.container規則時,鏈接的顏色值將是green。

      回退值

      當使用var()函數時,可以分配一個回退的屬性值,其作為一個額外參數和第一個參數用,隔開。看下面的示例:

      HTML

      XML/HTML Code復制內容到剪貼板ABox

      CSS

      CSS Code復制內容到剪貼板 div{ --container-bg-color:black; } .box{ width:100px; height:100px; padding-top:40px; box-sizing:padding-box; background-color:var(--container-bf-color,red); color:white; text-align:center; }

      因為給var()傳遞了一個回退值參數,所以div的背景色最中被渲染成紅色。

      無效值

      謹防給CSS屬性分配錯誤類型的值。

      在下面的示例中,由于自定義屬性--small-button被賦予一個長度單位,它被用在.small-button樣式中是無效的(譯者注:因為color的屬性類型值出錯)

      CSS Code復制內容到剪貼板 :root{ --small-button:200px; } .small-button{ color:var(--small-button); }

      避免這種情況的一個好方式是想出具有描述性的自定義屬性名稱。例如將上面的自定義屬性命名為--small-button-width

      瀏覽器對CSS變量的支持

      CSS變量用起來很方便,但是瀏覽器對其支持情況不太好:

    【CSS中變量的基本教程詳解】相關文章:

    css屬性定位教程07-23

    CSS入門教程01-25

    朝鮮族舞蹈基本動作教程詳解09-23

    CSS閉合浮動元素教程06-26

    CSS選擇器教程06-05

    CSS教程之盒模型10-17

    MCSA認證教程詳解10-04

    關于CSS教程:復合型條狀圖表01-25

    詳解CSS3盒模型display:box08-04

    足球的基本技巧教程07-21

    主站蜘蛛池模板: 国产精品久久久久久福利69堂| 一区二区三区日韩精品| 亚洲国产精品va在线播放| 亚洲精品综合一二三区在线| 久久九九精品99国产精品| 欧美日韩成人精品久久久免费看| 亚洲国产精品国自产电影| 精品国产福利在线观看| 亚洲精品99久久久久中文字幕| 国产精品成人小电影在线观看| 国产精品亚洲片在线va| 99久久国产热无码精品免费| 亚洲av无码国产精品色午夜字幕| 欧美精品色婷婷五月综合| 国产精品部在线观看| 欧美精品888| 国产精品福利在线观看| 99精品国产高清一区二区麻豆| 欧美精品亚洲精品日韩传电影| 亚洲精品成人a在线观看| 久久国产午夜精品一区二区三区| 91人前露出精品国产| 欧美精品亚洲精品日韩1818| 国产韩国精品一区二区三区久久| 精品永久久福利一区二区| 亚洲中文字幕久久精品无码喷水 | 久久无码精品一区二区三区| 国产精品99久久不卡| 国产精品99在线播放| 99久久精品九九亚洲精品| 久久精品中文字幕一区| 无码国模国产在线无码精品国产自在久国产| 久久精品免费一区二区三区| 97人妻无码一区二区精品免费| 国产人妖乱国产精品人妖| 国产亚洲精品岁国产微拍精品| 国产精品亚洲片在线| 国产精品毛片VA一区二区三区| 99久久99这里只有免费费精品| 国产成人精品日本亚洲网址| 国产精品视频免费|