精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

Utility API

The utility API is a Sass-based tool to generate utility classes.

Bootstrap utilities are generated with our utility API and can be used to modify or extend our default set of utility classes via Sass. Our utility API is based on a series of Sass maps and functions for generating families of classes with various options. If you’re unfamiliar with Sass maps, read up on the official Sass docs to get started.

The $utilities map contains all our utilities and is later merged with your custom $utilities map, if present. The utility map contains a keyed list of utility groups which accept the following options:

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

All utility variables are added to the $utilities variable within our _utilities.scss stylesheet. Each group of utilities looks something like this:

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

Which outputs the following:

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

Custom class prefix

Use the class option to change the class prefix used in the compiled CSS:

$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; }

States

Use the state option to generate pseudo-class variations. Example pseudo-classes are :hover and :focus. When a list of states are provided, classnames are created for that pseudo-class. For example, to change opacity on hover, add state: hover and you’ll get .opacity-hover:hover in your compiled CSS.

Need multiple pseudo-classes? Use a space-separated list of states: state: hover focus.

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

Output:

.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; }

Responsive utilities

Add the responsive boolean to generate responsive utilities (e.g., .opacity-md-25) across all breakpoints.

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

Output:

.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; }
}

Changing utilities

Override existing utilities by using the same key. For example, if you want additional responsive overflow utility classes, you can do this:

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

Enabling the print option will also generate utility classes for print, which are only applied within the @media print { ... } media query.

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

Output:

.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; }
}

Using the API

Now that you’re familiar with how the utilities API works, learn how to add your own custom classes and modify our default utilities.

Add utilities

New utilities can be added to the default $utilities map with a map-merge. Make sure our required Sass files and _utilities.scss are imported first, then use the map-merge to add your additional utilities. For example, here’s how to add a responsive cursor utility with three values.

@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,
    )
  )
);

Modify utilities

Modify existing utilities in the default $utilities map with map-get and map-merge functions. In the example below, we’re adding an additional value to the width utilities. Start with an initial map-merge and then specify which utility you want to modify. From there, fetch the nested "width" map with map-get to access and modify the utility’s options and values.

@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%),
        ),
      ),
    ),
  )
);

Rename utilities

Missing v4 utilities, or used to another naming convention? The utilities API can be used to override the resulting class of a given utility—for example, to rename .ms-* utilities to 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 ),
    ),
  )
);

Remove utilities

Remove any of the default utilities by setting the group key to null. For example, to remove all our width utilities, create a $utilities map-merge and add "width": null within.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "width": null
  )
);

Remove utility in RTL

Some edge cases make RTL styling difficult, such as line breaks in Arabic. Thus utilities can be dropped from RTL output by setting the rtl option to false:

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

Output:

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

This doesn’t output anything in RTL, thanks to the RTLCSS remove control directive.

返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      9000px;">

          粉嫩av一区二区三区| 成人免费毛片app| 亚洲国产欧美一区二区三区丁香婷 | 亚洲素人一区二区| 久久综合精品国产一区二区三区| 欧美区在线观看| 欧美日韩国产免费| 91精品国产综合久久精品图片| 欧美久久一二三四区| 欧美日韩激情一区二区| 91精品国产综合久久久久久| 日韩一区二区在线观看视频播放| 日韩视频一区在线观看| 精品国产a毛片| 久久久久久久久久久黄色| 国产欧美视频一区二区三区| 亚洲国产激情av| 亚洲品质自拍视频| 亚洲小说春色综合另类电影| 亚洲成人手机在线| 美女被吸乳得到大胸91| 国产一区啦啦啦在线观看| 国产91丝袜在线观看| 色婷婷国产精品综合在线观看| 91老司机福利 在线| 欧美视频在线不卡| 欧美日韩免费一区二区三区| 91精品在线观看入口| 精品国产青草久久久久福利| 国产日韩综合av| 亚洲主播在线播放| 精品一区二区三区免费观看 | 欧美zozozo| 久久这里只有精品视频网| 国产亚洲精久久久久久| 一区二区在线观看免费| 久99久精品视频免费观看| 国产成人无遮挡在线视频| 色婷婷精品大在线视频| 91精品国产aⅴ一区二区| 久久精品在这里| 亚洲国产精品欧美一二99| 久久国产成人午夜av影院| 91一区一区三区| 精品国产123| 一区二区在线看| 国产精品一区二区男女羞羞无遮挡| 色婷婷综合久久久久中文 | 欧美视频在线观看一区二区| 精品国产乱码久久久久久影片| 亚洲免费毛片网站| 国产成人自拍在线| 在线播放中文一区| 亚洲男人的天堂在线aⅴ视频| 另类的小说在线视频另类成人小视频在线 | 国产精品久99| 国产一区二区福利视频| 91精品综合久久久久久| 亚洲美女偷拍久久| 国产ts人妖一区二区| 日韩一级大片在线| 亚洲一区二区三区视频在线播放 | 91精品国产一区二区| 亚洲国产精品一区二区www在线| 久久成人羞羞网站| 91麻豆精品国产综合久久久久久| 一区二区三区精品在线| 成熟亚洲日本毛茸茸凸凹| 精品国产免费一区二区三区四区| 青青草97国产精品免费观看| 在线综合视频播放| 国产一区二区免费看| 日韩欧美视频在线| 久久国产精品无码网站| 日韩午夜激情免费电影| 日本不卡一区二区三区高清视频| 欧美视频一区在线观看| 一区二区高清在线| 欧美色精品天天在线观看视频| 一区二区三区欧美日| 欧美三级一区二区| 天堂午夜影视日韩欧美一区二区| 欧美亚洲精品一区| 视频一区二区三区中文字幕| 91精品国产综合久久久蜜臀图片| 人人精品人人爱| 日韩视频一区二区三区在线播放 | 亚洲天堂精品视频| 欧洲一区二区三区在线| 亚洲成人午夜影院| 欧美一区二区不卡视频| 免费成人深夜小野草| www国产精品av| 粗大黑人巨茎大战欧美成人| 亚洲少妇30p| 欧美精品123区| 美女精品自拍一二三四| 国产网站一区二区三区| 91麻豆精品视频| 香蕉av福利精品导航| 日韩欧美国产综合一区 | 欧美日韩中文另类| 国产精品自产自拍| 亚洲人妖av一区二区| 欧美日韩成人高清| 韩日欧美一区二区三区| 国产精品久久久99| 91精品福利在线一区二区三区| 国产一区二区视频在线播放| 亚洲免费av高清| 精品久久一二三区| 欧洲一区在线观看| 国产高清亚洲一区| 视频在线观看一区二区三区| 国产日韩欧美在线一区| 欧美色图天堂网| 国产精品1区2区3区在线观看| 一区二区三区日韩精品| 久久精品视频一区二区三区| 99久久99久久精品国产片果冻| 精品综合久久久久久8888| 成人免费在线视频| 2020国产精品| 91精品国产综合久久精品app| 99在线视频精品| 国产麻豆精品久久一二三| 午夜精品福利视频网站| 亚洲欧洲精品天堂一级| 欧美tickling网站挠脚心| 欧洲生活片亚洲生活在线观看| eeuss鲁片一区二区三区在线看| 看片网站欧美日韩| 日韩激情视频在线观看| 亚洲猫色日本管| 中文字幕在线播放不卡一区| 精品国产免费视频| 日韩欧美国产成人一区二区| 欧美主播一区二区三区美女| 成人黄色大片在线观看| 韩国欧美国产一区| 免费看黄色91| 午夜欧美大尺度福利影院在线看| 亚洲欧美日韩中文字幕一区二区三区| 精品成人免费观看| 欧美成人a视频| 日韩精品一区二| 26uuu欧美| 精品国产在天天线2019| 日韩一区二区影院| 4438成人网| 欧美久久久久久久久久| 欧美日韩一区二区欧美激情| 欧美视频一区二| 欧美精品精品一区| 91精品国产一区二区| 欧美电影一区二区| 日韩欧美视频在线| 久久嫩草精品久久久久| 久久影院电视剧免费观看| 久久在线免费观看| 久久蜜桃av一区精品变态类天堂 | 一区二区三区在线观看欧美| 亚洲日本在线视频观看| 亚洲欧美视频在线观看| 亚洲午夜一二三区视频| 五月激情综合婷婷| 男人的天堂久久精品| 精品中文字幕一区二区小辣椒| 狠狠色丁香婷婷综合| 成人精品亚洲人成在线| 色婷婷亚洲一区二区三区| 欧美高清精品3d| 国产视频在线观看一区二区三区 | 欧美日韩免费观看一区二区三区 | 欧洲国内综合视频| 日韩欧美亚洲一区二区| 中文字幕国产一区| 亚洲成a人在线观看| 久久国产剧场电影| 99riav一区二区三区| 欧美性色黄大片手机版| 欧美成va人片在线观看| 亚洲欧美偷拍三级| 青青草伊人久久| 99久久精品国产精品久久| 欧美日韩视频专区在线播放| www一区二区| 亚洲一区二区精品3399| 国产一区二区不卡| 欧美性大战xxxxx久久久| 日韩欧美一级在线播放| 亚洲欧美另类小说| 久久99热这里只有精品| 日本韩国视频一区二区| 久久亚洲精精品中文字幕早川悠里| 国产精品第一页第二页第三页| 美国一区二区三区在线播放| 91视视频在线直接观看在线看网页在线看| 欧美一卡2卡3卡4卡| 亚洲女同一区二区|