此篇会教学如何将 Bootstrap 通用类别 utilities 自干一个出来。
事前准备:
使用到四只档案:
@media
响应式。可以搭配注解看原始码,Bootstrap 注解算写的蛮好理解的。
粗略拆为三个部分讲解
後续会大量应用到 @mixin
、@include
、@content
不熟悉的朋友请参考这篇:@mixin 建立专属语法资料库(蛮好理解的,最後也有附上 CodePen 范例)
取得断点参数的 key(ex:xs、sm、md、lg)将其组合成阵列,再透过回圈读取出来。
@each $breakpoint in map-keys($grid-breakpoints) {
}
先撰写外层 @media 样式,最後会再依照 utility 参数判断是否要写入到断点中。
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
}
media-breakpoint-up
来自於mixins/_breakpoints.scss
。
判断条件:
@content:代表之後 generate-utility 生成的通用类别样式。
@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($name, $breakpoints);
@if $min {
@media (min-width: $min) {
@content;
}
} @else {
@content;
}
}
取得断点的 point,回传一个 point 加上
-
符号的字串(ex:-md),用於之後生成样式时断点字串。(ex:pd-md-1)
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
取得 _utilities.scss 设置的
$utilities: ()
map,并透过回圈方式将其参数一一取出。
若还不了解如何撰写 utilities 通用类别参数,请参考官方 API 文件。
@each $key, $utility in $utilities {
}
若符合以下两个条件,才会执行最後的
generate-utility
生成通用类别样式。
$utility
资料是否为 map 资料型态generate-utility
在执行逻辑的部分能正常。$utility
资料中,是否有设置 responsive: true
@if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
}
下一集将解析 generate-utility 是如何生成通用类别样式。
>>: 【把玩Azure DevOps】Day24 设定Build Pipeline与Release Pipeline的执行权限
用工具完成任务 ≠ 了解工具。 随着时代演进,大部分的公司都采用框架来加速开发效率;自从有了框架,...
网页的外观和操作本质上还是和原生的有差异但可以透过配置来让体验更接近。 全萤幕模式 视觉设计 事件操...
To use Azure Machine Learning Create an Azure Mach...
做完大概长这样,左边的图片就会是显示在line上面的样子,有兴趣可以自己摸索一下,这边还有一个重点是...
JavaScript函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块,函数包裹在花括号{}...