整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端 CSS 變量簡介及基本使用方法

          復雜的網站都會有大量的CSS代碼,通常也會有許多重復的值。

          舉個例子,同樣一個顏色值可能在成千上百個地方被使用到,如果這個值發生了變化,需要全局搜索并且一個一個替換,效率不高且容易出錯。

          自定義屬性在某個地方存儲一個值,然后在其他許多地方引用它。另一個好處是語義化的標識。比如,--main-text-color 會比 #00ff00 更易理解,尤其是這個顏色值在其他上下文中也被使用到。

          概念

          自定義屬性(有時候也被稱作CSS變量或者級聯變量)是由CSS作者定義的,它包含的值可以在整個文檔中重復使用。

          由自定義屬性標記設定值(比如: --main-color: black;),由 var() 函數來獲取值(比如: color: **var(--main-color)**;)。

          優勢

          在構建大型站點時,作者通常會面對可維護性的挑戰。在這些網頁中,所使用的CSS 的數量是非常龐大的,并且在許多場合大量的信息會重復使用。

          例如,在網頁中維護一個配色方案,意味著一些顏色在 CSS 文件中多次出現,并被重復使用。當你修改配色方案時,不論是調整某個顏色或完全修改整個配色,都會成為一個復雜的問題,不容出錯,而單純查找替換是遠遠不夠的。

          如果使用了CSS 框架,這種情況會變得尤其糟糕,此時如果要修改顏色,則需要對框架本身進行修改。

          在這些場合使用 LESS 或 Sass 類似的預處理器是非常有幫助的,但是這種通過添加額外步驟的方式,可能會增加系統的復雜性。

          CSS變量為我們帶來一些預處理器的便利,并且不需要額外的編譯。

          這些變量的第二個優勢就是名稱本身就包含了語義的信息。CSS 文件變得易讀和理解。main-text-color比文檔中的#00ff00更容易理解,特別是同樣的顏色出現在不同的文件中的時候。

          用法

          下面是 CSS 變量的使用方法和步驟。

          CSS 中聲明變量

          我們都知道,在 JS 中要使用一個變量前,必須聲明這個表變量。在 CSS 中也是一樣的道理。

          聲明一個自定義屬性,屬性名需要以兩個減號(--)開始,屬性值則可以是任何有效的CSS值。和其他屬性一樣,自定義屬性也是寫在規則集之內的,如下:

          body {
              --bg-color: #7F583F;
              --color: #F7EFD2;
          }

          上面代碼中,body選擇器里面聲明了兩個變量:--bg-color和--color。

          它們與color、font-size等正式屬性沒有什么不同,只是沒有默認含義。所以 CSS 變量(CSS variable)又叫做**"CSS 自定義屬性"**(CSS custom properties)。

          規則集所指定的選擇器定義了自定義屬性的可見作用域。通常的最佳實踐是定義在根偽類 :root下,這樣就可以在HTML文檔的任何地方訪問到它了:

          :root {
              --main-bg-color: #eee;
          }

          自定義屬性名是大小寫敏感的,--my-color 和 --My-color 會被認為是兩個不同的自定義屬性。

          CSS 中使用變量

          通過var()函數來讀取變量。語法如下:

          var(custom-property-name, value)
          • name (必需) 變量名(以兩條破折號開頭)。
          • value (可選) 表示變量的默認值。如果該變量不存在,就會使用這個默認值。

          變量名稱必須以兩個破折號(--)開頭,且區分大小寫!

          使用方法:

          element {
            background-color: var(--main-bg-color);
          }

          變量也可以使用在變量聲明中:

          :root {
            --primary-color: #eee;
            --primary-bg-color: var(--main-bg-color);
          }

          變量值只能用作屬性值,不能用作屬性名。

          JS 操作 CSS 變量

          在 JS 代碼中,我們可能需要讀取 CSS 變量的值,其方法如下:

          const root = document.querySelector(":root");
          // 設置 CSS 變量
          root.style.setProperty("--main-bg-color", "red");
          // 讀取 CSS 變量
          const computedStyle = getComputedStyle(root);
          const mainBgColor = computedStyle.getPropertyValue("--main-bg-color");
          console.log(mainBgColor);
          // 刪除 CSS 變量
          root.style.removeProperty("--main-bg-color");

          總結

          以上就是關于 CSS 變量的一些基本概念及使用方法,更多詳情待后續!

          靈活使用 CSS 變量,不僅可以提高生產力,也能夠提高代碼的可閱讀性和維護性。

          ~

          ~

          ~ 本文完

          學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

          大家好!我是〖編程三昧〗的作者 隱逸王,我的公眾號是『編程三昧』,歡迎關注,希望大家多多指教!

          知識與技能并重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!


          PHP中預定義了幾個超級全局變量(superglobals),它們在一個腳本的全部作用域中你不需要特別說明,就可以在函數及類中使用。


          1、$GLOBALS 是PHP的一個超級全局變量組,在一個PHP腳本的全部作用域中都可以訪問。

          $GLOBALS 是一個包含了全部變量的全局組合數組。變量的名字就是數組的鍵。

          <?php 
          $x = 'tiantian'; 
          $y = '好';
           
          function add() 
          { 
              $GLOBALS['a'] = $GLOBALS['x'].$GLOBALS['y']; 
          }
           
          add(); 
          echo $a; 
          ?>

          以上實例中 a 是一個$GLOBALS數組中的超級全局變量,該變量同樣可以在函數外訪問

          2、 $_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。

          $_SERVER 變量中的重要元素:

          <?php 
          echo $_SERVER['PHP_SELF']; //  結果:/index.php  注釋:當前執行腳本的文件名
          echo "<br>";
          echo $_SERVER['SERVER_NAME'];   //  結果:abcphp.com  注釋:當前運行腳本所在的服務器的主機名。 
          echo "<br>";
          echo $_SERVER['HTTP_HOST'];     //  結果:abcphp.com  注釋:當前請求頭中 Host: 項的內容,如果存在的話。
          echo "<br>";
          echo $_SERVER['HTTP_REFERER'];  //  結果:" "  注釋:引導用戶代理到當前頁的前一頁的地址(如果存在)。
          echo "<br>";
          echo $_SERVER['HTTP_USER_AGENT'];   //  結果:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 注釋: 
          echo "<br>";
          echo $_SERVER['SCRIPT_NAME'];// 結果:/index.php  注釋:包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
          echo "<br>";
          echo $_SERVER['GATEWAY_INTERFACE']; // 結果:CGI/1.1  注釋:服務器使用的 CGI 規范的版本;
          echo "<br>";
          echo $_SERVER['SERVER_ADDR'];   // 結果:127.0.0.1  注釋:當前運行腳本所在的服務器的 IP 地址。
          echo "<br>";
          echo $_SERVER['SERVER_SOFTWARE'];   // 結果:nginx/1.15.11  注釋:服務器標識字符串,在響應請求時的頭信息中給出。
          echo "<br>";
          echo $_SERVER['SERVER_PROTOCOL'];   // 結果:HTTP/1.1  注釋:請求頁面時通信協議的名稱和版本。
          echo "<br>";
          echo $_SERVER['REQUEST_METHOD'];    // 結果:GET  注釋:訪問頁面使用的請求方法;例如,"GET", "HEAD","POST","PUT"。
          echo "<br>";
          echo $_SERVER['REQUEST_TIME'];  // 結果:1630663828  注釋:請求開始時的時間戳。從 PHP 5.1.0 起可用。 
          echo "<br>";
          echo $_SERVER['QUERY_STRING'];  // 結果:" "  注釋:query string(查詢字符串),如果有的話,通過它進行頁面訪問。
          echo "<br>";
          echo $_SERVER['HTTP_ACCEPT'];   // 結果:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  注釋:當前請求頭中 Accept: 項的內容,如果存在的話。
          echo "<br>";
          echo $_SERVER['HTTP_ACCEPT_CHARSET'];   // 結果:" "  注釋:當前請求頭中 Accept-Charset: 項的內容,如果存在的話。例:"iso-8859-1,*,utf-8"。
          echo "<br>";
          echo $_SERVER['HTTPS']; // 結果:" "  注釋:如果腳本是通過 HTTPS 協議被訪問,則被設為一個非空的值。
          echo "<br>";
          echo $_SERVER['REMOTE_ADDR'];   // 結果:127.0.0.1  注釋:瀏覽當前頁面的用戶的 IP 地址。
          echo "<br>";
          echo $_SERVER['REMOTE_HOST'];   // 結果:" "  注釋:瀏覽當前頁面的用戶的主機名。DNS 反向解析不依賴于用戶的 REMOTE_ADDR。
          echo "<br>";
          echo $_SERVER['REMOTE_PORT'];   // 結果:58836  注釋:用戶機器上連接到 Web 服務器所使用的端口號。
          echo "<br>";
          echo $_SERVER['SCRIPT_FILENAME'];   // 結果:F:/phpstudy_pro/WWW/php/index.php  注釋:當前執行腳本的絕對路徑。
          echo "<br>";
          echo $_SERVER['SERVER_ADMIN'];  // 結果:" "  注釋:該值指明了 Apache 服務器配置文件中的 SERVER_ADMIN 參數。
          echo "<br>";
          echo $_SERVER['SERVER_PORT'];   // 結果:80  注釋: Web 服務器使用的端口。默認值為 "80"。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 端口。
          echo "<br>";
          echo $_SERVER['SERVER_SIGNATURE'];  // 結果:" "  注釋:包含了服務器版本和虛擬主機名的字符串。
          echo "<br>";
          echo $_SERVER['PATH_TRANSLATED'];   // 結果:F:/phpstudy_pro/WWW/php  注釋:當前腳本所在文件系統(非文檔根目錄)的基本路徑。
          echo "<br>";
          echo $_SERVER['SCRIPT_URI'];    // 結果:" "  注釋:URI 用來指定要訪問的頁面。例如 "/index.html"。
          ?>

          3、$_REQUEST 用于收集HTML表單提交的數據。

          以下實例顯示了一個輸入字段(input)及提交按鈕(submit)的表單(form)。 當用戶通過點擊 "Submit" ,我們可以使用超級全局變量 $_REQUEST 來收集表單中的 input 字段數據:

          <html>
          <body>
           
          <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
            //$_SERVER['PHP_SELF']  當前執行腳本的文件名
          Name: <input type="text" name="rname">
          <input type="submit">
          </form>
           
          <?php 
          $name = $_REQUEST['rname']; 
          echo $name; 
          ?>
           
          </body>
          </html>

          4、$_POST 被廣泛應用于收集表單數據,在HTML form標簽的指定該屬性:"method="post"。

          以下實例顯示了一個輸入字段(input)及提交按鈕(submit)的表單(form)。 當用戶通過點擊 "Submit" 按鈕提交表單數據時,使用超級全局變量 $_POST 來收集表單中的 input 字段數據:

          <html>
          <body>
           
          <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
          Name: <input type="text" name="fname">
          <input type="submit">
          </form>
           
          <?php 
          $name = $_POST['fname']; 
          echo $name; 
          ?>
           
          </body>
          </html>

          5、$_GET 同樣被廣泛應用于收集表單數據,在HTML form標簽的指定該屬性:"method="get"。

          <html>
          <body>
           
          <form method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
          Name: <input type="text" name="fname">
          <input type="submit">
          </form>
           
          <?php 
          $name = $_POST['fname']; 
          echo $name; 
          ?>
           
          </body>
          </html>

          $_GET 也可以收集URL中發送的數據。

          果你正在構建網站或Web應用程序,你應該已經知道代碼重復被認為是一種不良實踐。

          這就是為什么你應該學習如何使用CSS變量來減少你編寫的CSS代碼量并將你的樣式帶到一個新的水平。

          最成功的Web應用程序擁有令人驚嘆的設計。不幸的是,為了達到預期的效果,Web開發人員需要準備大量的樣式。這迫使我們在許多不同的元素中重復值,比如顏色。

          幸運的是,現代樣式表支持CSS變量,這使您可以減少代碼庫中的重復。你不需要像CSS模塊、Less或SASS這樣的外部工具來利用它。

          在這個全面的指南中,我將向您展示如何有效地使用CSS變量,涵蓋從純HTML和CSS的基本示例到更高級的框架,如React和Next.js。

          (本文內容參考:java567.com)


          主站蜘蛛池模板: 精品一区二区三区自拍图片区| 一区二区免费电影| 亚洲av日韩综合一区二区三区 | 动漫精品一区二区三区3d| 亚洲国产精品乱码一区二区| 日韩一区二区三区精品| 色婷婷av一区二区三区仙踪林| 日韩精品一区二区三区四区| 亚洲日韩国产一区二区三区| 国产福利日本一区二区三区| 久夜色精品国产一区二区三区| 国产在线观看一区二区三区 | 亚洲国产av一区二区三区丶| 99久久国产精品免费一区二区| 一区二区三区福利视频| 日本韩国一区二区三区| 精品人妻无码一区二区三区蜜桃一 | 在线欧美精品一区二区三区 | 福利视频一区二区牛牛| 国产婷婷色一区二区三区深爱网| 无码丰满熟妇一区二区| 一区二区传媒有限公司| 五十路熟女人妻一区二区| 亚洲欧洲日韩国产一区二区三区| 亚洲美女视频一区| 69久久精品无码一区二区| 日韩一区二区视频| 国产精品视频免费一区二区| 在线精品自拍亚洲第一区| 色精品一区二区三区| 一区二区三区视频网站| 国产在线aaa片一区二区99| 中文字幕精品亚洲无线码一区| 内射女校花一区二区三区| 无码一区二区三区免费| 国产日本一区二区三区| 精品久久综合一区二区| 久久无码精品一区二区三区| 一区二区三区四区精品视频 | 国产AV午夜精品一区二区入口| 无码一区二区三区视频|