问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于css3样式rem的自适应属性问题

发布网友 发布时间:2022-04-06 13:35

我来回答

3个回答

懂视网 时间:2022-04-06 17:56

为什么要自适应?

比如,对于一个移动端页面,设计师给的视觉稿画布宽 750,视觉稿中的一个黄色区块的尺寸是 702 x 300,并在画板中居中。我们希望在任何一个设备中的呈现比例都与视觉稿中一样,根据布局视口宽度等比缩放。

b33e8493f45b4f6440d6fb9b7cc5971.png

在移动端我们一般会设置布局视口宽度=设备宽度,即内容呈现的区域在设备屏幕内。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

但不同设备的宽度不同,因而让布局视口的宽度也不同。比如 iPhone 6 的布局视口宽度为 375, iPhone6 Plus 布局视口的宽度为 414。

(相关视频教程推荐:css视频教程)

对于给定的画布宽 750 的视觉稿,如果在布局视口宽度为 375 的 iPhone 6 设备上呈现,我们可以将视觉稿中元素的像素值除以 2,代码如下:

.box{
 width: 351px;
 height: 150px;
 margin-top: 40px;
 background: #F5A623;
}

那么在 iPhone 6 中的呈现如右图,与左图视觉稿布局一致。

c91e11af1bba615c77d15b04b16c87e.png

但同样的代码,在 iPhone 6 Plus 中呈现的就不一样了,两侧间距变大。因为 iPhone 6 Plus 的布局视口比 iPhone 6 要宽,而矩形框的尺寸没有变, 依然是 315 x 150。

8665d31628ca484310690e447bf89db.png

对于给定的画布宽 750 的视觉稿,如果在布局视口宽度为 414 的 iPhone 6 Plus 设备上呈现,我们可以将视觉稿中元素的像素值按比例除以 (750 / 414),即:

.box{
 width: 387.5px;
 height: 165.6px;
 margin-top: 44.2px;
 background: #F5A623;
}

页面呈现效果也可以跟视觉稿一样了。

3a9b349625140a14c4ba56b82624fe4.png

为了在不同设备宽度(不同视口宽度)的页面中呈现效果跟视觉稿一样,需要写不同的 CSS 像素值。 我们的诉求是希望能用同样的 CSS 代码在不同宽度的设备上展现效果与视觉稿相同,通俗的说就是按照视觉稿中元素与画布的尺寸比例在不同设备上等比缩放,从而达到在不同设备上自适应的效果。

使用 Rem 布局解决自适应问题

如何用同一份 CSS 代码,使元素尺寸随着布局视口宽度的变化按视觉稿中的比例等比缩放?

我们结合 CSS 中相对单位 rem 的特性,rem 单位的像素值是相对于根元素(HTML 元素) 的 font-size 的。例如:HTML 的 font-size 为 100px, 在 CSS 样式中设置某一元素的宽度为 2rem, 那么此元素在页面中的宽度为 200px。

根据元素在视觉稿中的比例等比缩放找到这样一层关系:

视觉稿元素尺寸 / 视觉稿画布宽度 
= (rem 值 * HTML 元素的 font-size) / 布局视口宽度 
= rem 值 * (HTML 元素的 font-size / 布局视口宽度)
= rem 值 / (布局视口宽度 / HTML 元素的 font-size)

如果:

布局视口宽度 / HTML 元素的 font-size = 定值 N

就可以用同一份 CSS 代码实现在任何设备中自适应。

rem 值 = N * (视觉稿元素尺寸 / 视觉稿画布宽度 )

所以,我们只要确定一个 N 值,再完成两步,即可实现自适应:

第 1 步:动态设置 HTML 元素的 font-size = 布局视口宽度 / N

第 2 步:将视觉稿中导出的元素 CSS 像素值转成 rem 单位: rem 值 = N * (视觉稿元素尺寸 / 视觉稿画布宽度 )

假如您的视觉稿画布宽度是 750,为了便于 rem 值的计算, 您可以选择设置 N = 7.5, 这样只需要将视觉稿中的尺寸值除以 100 就可以得到 rem 单位的 CSS 像素值。

推荐教程:CSS入门教程

热心网友 时间:2022-04-06 15:04

把字体一开始就设置62.5%,然后1rem就等于10px。希望能帮助到你。追问1rem等于10px只能对字体生效

追答好吧,没仔细去研究,帮不了你了。

热心网友 时间:2022-04-06 16:22

是不是等于12px?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
成都汇众益智游戏学院怎么样 为什么苹果手机屏幕老是自动滚上去? roughness test什么意思 国家标准打印纸为每包500张,小雨同学家里新买—包打印 纸,她想练习... 谁知道卡布奇诺含义 卡布奇诺咖啡历史 电脑针式打印纸有哪些规格? 外籍人才招聘 接种甲肝疫苗会出现什么不良反应 中华人民共和国境内的任何人均应接种哪些疫苗 手机用迅雷下载的视频怎样传到电脑上 我的华夏银行账号6231820101034804665 我想查一下我朋友的华夏银行的信用卡卡号是多少怎么查啊 如何查银行卡开户行和姓名? 通过这个华夏银行5239590003027978的卡号能查出来卡主姓名吗 华夏银行有卡号可以查到办卡人姓名吗 华夏银行知道银行卡,怎么才能查到开户名 金价和油价、股市、利率什么关系? 大学生,博士,硕士 英语怎么说 大一、大二、大三、大四、研究生,硕士依次用英语怎么说? 研究生,硕士,博士 英语怎么说 英文表述:研究生 硕士研究生 谢谢各位! 求单机版魔兽世界的GM指令和全技能代码 逍遥魔兽需要下wow吗 魔兽世界单机版坐骑GM代码 魔兽世界 单机版 修改攻击速度GM命令 魔兽世界3.3 单机 无法输入GM指令啊 说没有此类子命令 怎么办 WOW单机版的GM权限怎么设置 求魔兽世界单机版GM指令——怪打你不掉血和加护甲指令 魔兽世界单机版GM荣誉命令 手机设置隐藏,没有设置键怎么办除了出厂模式 手机设置隐藏,没有设置键怎么办 魅族mx手机桌面上的“设置”按钮 不见了,求指导如何恢复? 魅族flyme 4.0 设置键 找不到了 手机返回键和设置键没了,就是下面这个。只有下载得软件没有……我是魅族MX3 魅族手机里没有恢复出厂设置,怎么办? 魅族手机怎么找不到恢复出厂设置 魅族m9底栏那里的信息快捷键找不到了 怎么设置 2019年江苏成人高考用书如何选择 2019年江苏成人高考辅导教材在哪里买? 2012江苏成人高考的考试书籍用哪个出版社的 江苏 我是职高的学生、想参加*高考、、那么我需要买什么书来学习?那些书那有买的? 江苏成人高考考试内容是什么,要具体到每科考哪几本书. 江苏成人高考的考试依据什么教材 成人高考主要考哪些科目?需要准备些什么?可以买哪些书作为资料?求解 我想买江苏省*高考14级高起本科理工类书籍,不知道哪有卖的。 江苏成人高考的书是哪个出版社的, 今年江苏成人高考专升本教材是图里这个版本的教材吗 江苏成人高考需要准备哪些资料? 速求“2009江苏省成人高考”的教材