通用類別API

      通用類別API是基于Sass工具所產(chǎn)生的通用類。

      Bootstrap實(shí)用類是用我們的實(shí)用程序API生成的,可以通過Sass修改或擴(kuò)展我們的默認(rèn)實(shí)用程序類集。我們的實(shí)用API基于一系列Sass映射和函數(shù),用于生成具有各種選項(xiàng)的類族。如果您不熟悉Sass地圖,請閱讀Sass官方文檔開始使用。

      $utilities映射包含我們的所有實(shí)用程序,稍后將與您的自定義$utilities映射(如果存在)合并。實(shí)用程序映射包含接受以下選項(xiàng)的實(shí)用程序組的鍵控列表:

      Option Type Description
      property Required Name of the property, this can be a string or an array of strings (e.g., horizontal paddings or margins).
      values Required List of values, or a map if you don’t want the class name to be the same as the value. If null is used as map key, it isn’t compiled.
      class Optional Variable for the class name if you don’t want it to be the same as the property. In case you don’t provide the class key and property key is an array of strings, the class name will be the first element of the property array.
      state Optional List of pseudo-class variants like :hover or :focus to generate for the utility. No default value.
      responsive Optional Boolean indicating if responsive classes need to be generated. false by default.
      rfs Optional Boolean to enable fluid rescaling. Have a look at the RFS page to find out how this works. false by default.
      print Optional Boolean indicating if print classes need to be generated. false by default.
      rtl Optional Boolean indicating if utility should be kept in RTL. true by default.

      API explained

      所有的通用類別變數(shù)都加在我們的 _utilities.scss樣式表的$utilities變數(shù)之中。每組通用類別如下所示:

      $utilities: (
      "opacity": (
      property: opacity,
      values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
      )
      )
      );
      

      輸出以下內(nèi)容:

      .opacity-0 { opacity: 0; }
      .opacity-25 { opacity: .25; }
      .opacity-50 { opacity: .5; }
      .opacity-75 { opacity: .75; }
      .opacity-100 { opacity: 1; }
      

      自定義類前綴

      使用class選項(xiàng)更改已編譯CSS中所使用的class前綴:

      $utilities: (
      "opacity": (
      property: opacity,
      class: o,
      values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
      )
      )
      );
      

      Output:

      .o-0 { opacity: 0; }
      .o-25 { opacity: .25; }
      .o-50 { opacity: .5; }
      .o-75 { opacity: .75; }
      .o-100 { opacity: 1; }
      

      狀態(tài)

      使用state選項(xiàng)來生成虛擬類別。例如虛擬類別的:hover和:focus。提供狀態(tài)列表后,將為虛擬類別創(chuàng)建類名。例如,要更改hover時(shí)的透明度,請?zhí)砑觭tate: hover,您將在編譯后的CSS中得到.opacity-hover:hover。

      需要多個(gè)虛擬類別嗎?使用以空格分隔的狀態(tài)列表:state: hover focus。

      $utilities: (
      "opacity": (
      property: opacity,
      class: opacity,
      state: hover,
      values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
      )
      )
      );
      

      輸出:

      .opacity-0-hover:hover { opacity: 0; }
      .opacity-25-hover:hover { opacity: .25; }
      .opacity-50-hover:hover { opacity: .5; }
      .opacity-75-hover:hover { opacity: .75; }
      .opacity-100-hover:hover { opacity: 1; }
      

      響應(yīng)類

      添加responsive布爾值以生成橫跨所有斷點(diǎn)的響應(yīng)式通用類別(例如,.opacity-md-25)。

      $utilities: (
      "opacity": (
      property: opacity,
      responsive: true,
      values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
      )
      )
      );
      

      輸出:

      .opacity-0 { opacity: 0; }
      .opacity-25 { opacity: .25; }
      .opacity-50 { opacity: .5; }
      .opacity-75 { opacity: .75; }
      .opacity-100 { opacity: 1; }
      
      @media (min-width: 576px) {
      .opacity-sm-0 { opacity: 0; }
      .opacity-sm-25 { opacity: .25; }
      .opacity-sm-50 { opacity: .5; }
      .opacity-sm-75 { opacity: .75; }
      .opacity-sm-100 { opacity: 1; }
      }
      
      @media (min-width: 768px) {
      .opacity-md-0 { opacity: 0; }
      .opacity-md-25 { opacity: .25; }
      .opacity-md-50 { opacity: .5; }
      .opacity-md-75 { opacity: .75; }
      .opacity-md-100 { opacity: 1; }
      }
      
      @media (min-width: 992px) {
      .opacity-lg-0 { opacity: 0; }
      .opacity-lg-25 { opacity: .25; }
      .opacity-lg-50 { opacity: .5; }
      .opacity-lg-75 { opacity: .75; }
      .opacity-lg-100 { opacity: 1; }
      }
      
      @media (min-width: 1200px) {
      .opacity-xl-0 { opacity: 0; }
      .opacity-xl-25 { opacity: .25; }
      .opacity-xl-50 { opacity: .5; }
      .opacity-xl-75 { opacity: .75; }
      .opacity-xl-100 { opacity: 1; }
      }
      
      @media (min-width: 1400px) {
      .opacity-xxl-0 { opacity: 0; }
      .opacity-xxl-25 { opacity: .25; }
      .opacity-xxl-50 { opacity: .5; }
      .opacity-xxl-75 { opacity: .75; }
      .opacity-xxl-100 { opacity: 1; }
      }
      

      更改通用類

      透過使用相同的鍵值來覆蓋現(xiàn)有的通用類別。例如,您需要加入響應(yīng)式overflow通用類別的話,你可以這樣做:

      $utilities: (
      "overflow": (
      responsive: true,
      property: overflow,
      values: visible hidden scroll auto,
      ),
      );
      

      啟用print選項(xiàng)將會(huì)同時(shí)為print生成通用類別,并僅能應(yīng)用在@media print { ... }媒體查詢中。

      $utilities: (
      "opacity": (
      property: opacity,
      print: true,
      values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
      )
      )
      );
      

      輸出:

      .opacity-0 { opacity: 0; }
      .opacity-25 { opacity: .25; }
      .opacity-50 { opacity: .5; }
      .opacity-75 { opacity: .75; }
      .opacity-100 { opacity: 1; }
      
      @media print {
      .opacity-print-0 { opacity: 0; }
      .opacity-print-25 { opacity: .25; }
      .opacity-print-50 { opacity: .5; }
      .opacity-print-75 { opacity: .75; }
      .opacity-print-100 { opacity: 1; }
      }
      

      使用API

      既然您已經(jīng)熟悉了通用類別API的運(yùn)作原理,了解如何加入自己的自定義類別并修改我們預(yù)設(shè)的通用類別。

      加入通用類

      可以透過map-merge將新的通用類別加入到預(yù)設(shè)的$utilities map。首先確定有導(dǎo)入您的_utilities.scss,然后使用map-merge加入其他的通用類別。例如,以下是如何透過三個(gè)值加入一個(gè)響應(yīng)式cursor通用類別的方法:

      @import "bootstrap/scss/functions";
      @import "bootstrap/scss/variables";
      @import "bootstrap/scss/utilities";
      
      $utilities: map-merge(
      $utilities,
      (
      "cursor": (
      property: cursor,
      class: cursor,
      responsive: true,
      values: auto pointer grab,
      )
      )
      );
      

      修改通用類

      使用map-get和map-merge函式修改$utilities map中預(yù)設(shè)的通用類別。在下面的示例中,我們在通用類別width加入了一個(gè)附加值。從建立一個(gè)初始的map-merge開始,然后指定要修改的通用類別。在那里使用map-get fetch一個(gè)嵌套的width map,以訪問和修改通用類別的選項(xiàng)和值。

      @import "bootstrap/scss/functions";
      @import "bootstrap/scss/variables";
      @import "bootstrap/scss/utilities";
      
      $utilities: map-merge(
      $utilities,
      (
      "width": map-merge(
      map-get($utilities, "width"),
      (
        values: map-merge(
          map-get(map-get($utilities, "width"), "values"),
          (10: 10%),
        ),
      ),
      ),
      )
      );
      

      重命名通用類

      缺少v4實(shí)用程序,或用于其他命名約定?實(shí)用程序API可以用于覆蓋給定實(shí)用程序的結(jié)果類,例如,將.ms-*實(shí)用程序重命名為oldish.ml-*:

      @import "bootstrap/scss/functions";
      @import "bootstrap/scss/variables";
      @import "bootstrap/scss/utilities";
      
      $utilities: map-merge(
      $utilities, (
      "margin-start": map-merge(
      map-get($utilities, "margin-start"),
      ( class: ml ),
      ),
      )
      );
      

      移除通用類

      透過將群組鍵值設(shè)置為null以刪除任何預(yù)設(shè)的通用類別。舉例來說,如果要?jiǎng)h除我們所有的width通用類別,請創(chuàng)建$utilities map-merge并在其中添加“width”:null。

      @import "bootstrap/scss/functions";
      @import "bootstrap/scss/variables";
      @import "bootstrap/scss/utilities";
      
      $utilities: map-merge(
      $utilities,
      (
      "width": null
      )
      );
      

      在RTL中刪除通用類

      某些情況會(huì)導(dǎo)致RTL難以設(shè)置樣式,例如阿拉伯語系的換行符號(hào)。因此,通過將rtl選項(xiàng)設(shè)置為false可以從RTL輸出中刪除通用類別:

      $utilities: (
      "word-wrap": (
      property: word-wrap word-break,
      class: text,
      values: (break: break-word),
      rtl: false
      ),
      );
      

      輸出:

      /* rtl:begin:remove */
      .text-break {
      word-wrap: break-word !important;
      word-break: break-word !important;
      }
      /* rtl:end:remove */
      

      多虧了RTLCSS remove控制指令,。 在RTL中它不會(huì)輸出任何內(nèi)容

      返回頂部
      主站蜘蛛池模板: 极品人妻少妇一区二区三区| 91久久精品国产免费一区| 国产精品久久无码一区二区三区网 | 日韩人妻无码一区二区三区99 | 亚洲视频一区二区三区| 中文字幕精品一区| 亚洲综合国产一区二区三区| 中文字幕不卡一区| 亚洲国产精品第一区二区| 任你躁国语自产一区在| 欧亚精品一区三区免费| 日韩经典精品无码一区| 久久精品一区二区三区不卡| 精品国产乱子伦一区二区三区 | 日韩精品无码一区二区视频| 一区二区三区四区视频| 亚洲精品日韩一区二区小说| 狠狠综合久久av一区二区| 精品一区二区高清在线观看| 四虎成人精品一区二区免费网站 | 国产萌白酱在线一区二区| 免费av一区二区三区| 狠狠爱无码一区二区三区| 人妻av无码一区二区三区| 国产在线观看一区二区三区| 无码人妻AⅤ一区二区三区| 高清一区高清二区视频| 中文字幕日韩欧美一区二区三区 | 天堂一区二区三区精品| 一本大道东京热无码一区| 国产精品分类视频分类一区| 中文字幕一区二区三区精华液| 国产免费一区二区三区| 国产丝袜美女一区二区三区| 日本一道一区二区免费看| 在线精品亚洲一区二区| 麻豆AV一区二区三区久久| 亚洲色无码一区二区三区| 亚洲AV无码一区二三区| 欧洲亚洲综合一区二区三区| 无码国产精品一区二区免费I6|