此篇会着重在 Bootstrap 5 响应式的介绍以及使用方法。
响应式网页设计 (Responsive Web Design) 简称
RWD
,为了让网页排版能适应不同尺寸的装置,透过 CSS3 的media query
针对不同装置来设置对应的样式。
Step1:起手式(设置 viewport
)
在
<head>
标签引入viewport
的<meta>
标签
width=device-width
: 浏览器页面宽度=当前装置的宽度。(ex: 平板、手机)height=device-height
:浏览器页面高度=当前装置的高度。(ex: 平板、手机)initial-scale=1.0
: 画面初始缩放比例为 100%(即不放大也不缩小)。minimum-scale
:允许使用者缩放到的最小比例。maximum-scale
:允许使用者缩放到的最大比例。user-scalable
: 设定使用者能否手动缩放比例,user-scalable=no
就是不允许缩放。<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
Step2:透过断点来设置不同装置大小对应的样式
bootstrap 5 使用响应式会在样式後面加上 -*
断点的通用类别名称。(ex:class="p-md-2"
)
示范:此容器的 padding、文字大小,都设置了三个断点,并对应不同尺寸装置所显上的样式。
<div class="p-1 p-md-2 p-lg-3">
<p class="fs-1 fs-2 fs-3">响应式文字</p>
</div>
用来判别装置的尺寸,在设置相对应尺寸的样式。
media 语法:
@media (条件) {样式}
透过
max-*
、min-*
设置不同装置尺寸的范围,来指定对应样式。
@media(max-width:767px) {
.container{
max-width: 720px;
}
}
@media(max-width:992px){
.container{
max-width: 960px;
}
}
覆盖特性(程序码由上到下),因此後面样式会覆盖前。
断点是响应式开发的基础,使用断点来控制在特定尺寸或设备上调整布局。
常见尺寸:
常用设置:
Bootstrap 是 min-width
手机优先,预设没有断点状况是手机大小的样式。
手机优先(由小写到大):CodePen范例
@media (min-width: 576px) { ... }
@media (min-width: 768px) { ... }
@media (min-width: 992px) { ... }
@media (min-width: 1200px) { ... }
@media (min-width: 1400px) { ... }
桌面版优先(由大写到小):CodePen 范例
@media (max-width: 1399.98px) { ... }
@media (max-width: 1199.98px) { ... }
@media (max-width: 991.98px) { ... }
@media (max-width: 767.98px) { ... }
@media (max-width: 575.98px) { ... }
注意事项:
顺序
撰写,不然样式会无法覆盖。(覆盖特性
後面的样式会覆盖前面的样式)
/* 错误范例 */
@media (min-width: 576px) { ... }
@media (min-width: 992px) { ... }
@media (min-width: 768px) { ... }
min-width
、max-width
混用。
/* 错误范例 */
@media (min-width: 576px) { ... }
@media (max-width: 992px) { ... }
越少
越好 3-4 个即可。(不要超过五个,除非客户很机八)min-width、max-width 如何选择 ?
小技巧:
我自己喜欢 min-width
比较方便设置 @media
区间,平时也使用 Bootstrap 比较多。
职场小聚场
第一次 Demo
第二次 Demo
问题:版型写死导致子元素破版超出父元。
解决:
% 数
计算容器大小,来达到尺寸自适应缩放。% 数计算:
通常不会算满 100% 会少一点点预留空间。
网页出现滚动轴,别说是 RWD 网页。
问题:外层写死了宽度,导致浏览器没有自适应缩放,小於 1400px 时就会出现 x 轴。
container{
width: 1400px;
}
解决:改写为 max-width
。
row {
max-width: 100%;
/*max-width: 1400px;*/
margin: 0 auto;
}
优点:
viewport
?
>>: [Day24] React - 浅谈SPA(single-page applications)
前情提要 前一篇实作了 Selenium 爬取 Dcard 文章的爬虫,可以看到会出现一个浏览器视窗...
(一)介绍 透过push方法将B处於堆叠顶端。 透过pop方法将B从堆叠中移除。 结论:Naviga...
甚麽是立即函数? IIFE (Immediately Invoked Function Expres...
先import各种会用到的套件 使用sklearn的datasets套件建立要regression的...
树耳朵 oh les feuilles 地点:台南市白河区94-7号 时间:五六日 13:00~17...