面对不同设备的适配与响应;这里介绍不同的是@media 规则进行匹配不同的设备;
不同的设备宽度不尽相同,尺寸有320px ,360px ,375px ,414px …等常见的宽度,面对在不同的尺寸环境下,文字的阅读体验问题,我们常常使用的是CSS单位 - rem ; *其中“r“代表的是root 的意思,在HTML网页中,root指的就是<html> 元素,正如CSS伪类:root的目标元素和html属性选择器一样;*例如:
html {
font-size: 16px;
}
使用rem 的基础,可衍生出下面的俩种方法 (1). 可使用@media 设定临界点,来设置字号,代码如下:
html {
font-size: 16px;
}
@media (min-width: 414px) {
html {
font-size: 18px;
}
}
@media (min-width: 600px) {
html {
font-size: 20px;
}
}
(2).头部嵌入javaScript 代码,根据屏幕尺寸设置对应的根字号大小;
document.documentElement.style.width = document.documentElement.clientWidth / 7.5 + 'px';
社区的相对单位
calc()函数下的最佳实践
结合vw 单位与calc() 函数进行计算,无需使用任何的JavaScript 代码,可实现基于设备宽度的移动端布局;代码如下:
html {
font-size: 16px;
}
@media (min-width: 375px) {
html {
font-size: calc(16px + 2 * (100vw - 375px) / 39);
}
}
@media (min-width: 414px) {
html {
font-size: calc(18px + 4 * (100vw - 414px) / 586);
}
}
@media (min-width: 1000px) {
html {
font-size: calc(22px + 5 * (100vw - 1000px) / 1000);
}
}
声明:rem 单位并不是万能的,首先主要的问题是尺寸并不总是整数的问题;在个别的屏幕下会出现渲染问题,例如:边缘出现奇怪的间隙,渲染高度误差及模糊的问题;但这些都是极小的问题体验,可控的范围内处理;rem还是不错的适配之选;
|