Responsive design 如何使用Bootstrap 4实现响应式排版?
我正在用Bootstrap4构建一个响应迅速的web应用程序。与桌面相比,我希望移动设备上所有文本的字体大小都减小,因此我根据引导文档()向我的基本css文件中添加了以下内容:Responsive design 如何使用Bootstrap 4实现响应式排版?,responsive-design,bootstrap-4,Responsive Design,Bootstrap 4,我正在用Bootstrap4构建一个响应迅速的web应用程序。与桌面相比,我希望移动设备上所有文本的字体大小都减小,因此我根据引导文档()向我的基本css文件中添加了以下内容: 但是字体大小保持不变。我做错了什么?这是一个Sass功能 要访问媒体断点混合和大小变量,您需要: 添加一个custom.scss文件 @import“节点模块/bootstrap/scss/bootstrap” 并设置一个Sass编译器 我认为最简单的方法是使用@媒体查询。假设您想相应地更改类为“class name”的
但是字体大小保持不变。我做错了什么?这是一个Sass功能 要访问媒体断点混合和大小变量,您需要:
custom.scss
文件@import“节点模块/bootstrap/scss/bootstrap”代码>
我认为最简单的方法是使用@媒体查询。假设您想相应地更改类为“class name”的内容的字体大小,甚至更改整个html标记的字体大小,只需将媒体查询添加到css文件的末尾或其中的任何位置 示例代码:
/*
####################################################
M E D I A Q U E R I E S
####################################################
*/
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::
Bootstrap 4 breakpoints
*/
/* Small devices (landscape phones, 544px and up) */
@media (min-width: 544px) {
.class-name {font-size: 16px;}
}
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
.class-name {font-size: 30px;}
}
/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
.class-name {font-size: 40px;}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
.class-name {font-size: 48px;}
}
可以找到更多信息从Bootstrap 4.3.1开始,现在有RFS(响应式字体大小)!但是,正如所示,必须使用
$enable responsive font size
SASS变量启用它
RFS演示:
在Bootstrap4.3.1之前,您可以使用SASS实现响应文本。但是,您需要为要调整大小的文本指定所需的适当选择器
@import "bootstrap/functions";
@import "bootstrap/variables";
@import "bootstrap/mixins";
html {
font-size: 1rem;
}
@include media-breakpoint-up(sm) {
html {
font-size: 1.1rem;
}
}
@include media-breakpoint-up(md) {
html {
font-size: 1.2rem;
}
}
@include media-breakpoint-up(lg) {
html {
font-size: 1.3rem;
}
}
@import "bootstrap";
演示:
这也可以仅使用CSS(无SASS)完成:
演示:不是一个完整的答案,但一个好的起点是在v.4.5中启用响应性字体大小
$enable-responsive-font-sizes: true;
@import "../../../node_modules/bootstrap/scss/bootstrap";
这里有一种使用循环的替代方法
@import "bootstrap/functions";
@import "bootstrap/variables";
@import "bootstrap/mixins";
$font-sizes: (
html: ( xs: 1rem, sm: 1.2rem, md: 1.3rem),
);
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $name, $values in $font-sizes {
@each $n, $value in $values {
@if($infix == "-#{$n}" or ($infix == "" and $n == 'xs')) {
#{$name} { font-size: $value; }
}
}
}
}
}
在Rails中,确保此代码(html下至最后一个媒体断点)出现在最后一次导入(@import“bootstrap”;)之后,而不是上面。并在application.scss中编写。演示似乎不起作用:,字体大小始终保持不变。在Bootstrap 4.5中,我设置了
$enable responsive font size:true代码>导入引导SCS之前,但是更改窗口大小时字体大小不会更改。缺少什么?很好的选择。但不要忘记,将1rem应用于表示$font size base*1。因此,您可能希望1rem作为最大值。ie$字体大小:(html:(xs:0.75rem,sm:0.813rem,md:0.875rem,lg:0.938rem,xl:1rem),)@肯尼迪是的,你说得对。对不起,我说的“html”是指任何合适的排版标签。
@import "bootstrap/functions";
@import "bootstrap/variables";
@import "bootstrap/mixins";
$font-sizes: (
html: ( xs: 1rem, sm: 1.2rem, md: 1.3rem),
);
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $name, $values in $font-sizes {
@each $n, $value in $values {
@if($infix == "-#{$n}" or ($infix == "" and $n == 'xs')) {
#{$name} { font-size: $value; }
}
}
}
}
}