【CSS】深入探究rem响应式原理
发布网友
发布时间:2023-05-11 20:25
我来回答
共1个回答
热心网友
时间:2024-04-27 02:20
em:作为font-size单位时,其代表父元素字体大小,作为其他属性(line-height)单位时,代表自身字体大小
例:
<div style="font-size:16px">
<div style="font-size:2em;line-height:2em"></div>
</div>
第二个div的font-size:2em=2 16px=32px
line-height:2em=2 32px=64px
rem:作用于非根元素时,相对于根元素字体大小;作用于根元素字体大小时,相对于其初始字体大小(浏览器默认字体大小)
例:
html{font-size:2rem} 2 16px=32px
p{font-size:2rem} 2 32px=64px
综上,em是为字体和行高而生的,有时候子元素字体就应该与父元素相关。而rem布局的本质是等比例缩放
①让根元素的字体与屏幕宽度产生关系,即随屏幕宽度变化而变化
②其他元素的大小根据根元素字体生成rem单位,例如:
html{font-size:width/100},假设设置根元素字体为屏幕宽度的1%,(注意:屏幕宽度是动态变化的),则屏幕宽度的1%就代表1rem。假设现在有p元素,我们就可以作如下设置:
p{width:5rem;},则p的宽度就为屏幕的5%
现在你明白rem的原理了吧,那如何动态获取屏幕宽度呢?这里我们介绍两种方法:
①通过js设置
window.onload=function(){
document.documentElement.style.fontSize = document.documentElement.clientWidth/100 +'px'
}
这样就实现了设置根元素的字体大小为屏幕宽度的1%
②vw
CSS3引进了vw vh的概念,vw是指视口宽度的1%;vh是指视口高度的1%。因此我们就可以直接作如下设置:
p{width:5vw}
vw缺点就是兼容性没有rem好
rem是弹性布局的一种实现方式,强调的是等比例缩放,弹性布局是响应式的一种。响应式布局强调的是不同屏幕要有不同的显示(例如我有行照片墙,在PC iPad 手机都一行展现不同的数目,你可能会想到flex)
①字体不能用rem
字体不是线性关系,设置了根元素字体大小,会影响所有没设置字体大小的元素,因为 字体会继承
字体如何实现响应式:通过body字体的大小来实现,同时所有设置字体的地方都用em,例:
body{font-size:16px;}
p{font-size:1.2em;}
但是我们一般遇到的设备有手机、iPad、电脑,如果想要实现不同宽度字体显示大小不一样,可以使用媒体查询:
@media screen and (min-width:320px){
body{font-size:16px;}
}
@media screen and (min-width:480px){
body{font-size:18px;}
}
@media screen and (min-width:960px){
body{font-size:20px;}
}
②根元素字体小于浏览器默认字体
假设屏幕宽度是780px,html字体大小780/100=7.8px,小于浏览器默认字体16px,怎么办。这个时候可以设置html字体大小780/10=78px,则其他元素的参考1rem就是屏幕宽度的1/10,再根据这个参考系来计算。其实道理是一样的
参看链接:
① Rem布局的原理解析
【CSS】深入探究rem响应式原理
rem是弹性布局的一种实现方式,强调的是等比例缩放,弹性布局是响应式的一种。响应式布局强调的是不同屏幕要有不同的显示(例如我有行照片墙,在PC iPad 手机都一行展现不同的数目,你可能会想到flex)①字体不能用rem 字体不是线性关系,设置了根元素字体大小,会影响所有没设置字体大小的元素,因...
非结构化数据如何可视化呈现?
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准...
CSS3 的字体大小单位「rem」到底好在哪?
腾旭ISUX的一篇深入解析文章,详细介绍了rem的原理和应用,为设计者提供了全新的设计思路。通过rem,设计师们得以摆脱传统方法的束缚,实现更为灵活、高效的响应式设计,让网页在任何设备上都能展现出最佳的视觉体验。总结来说,CSS3的rem单位凭借其灵活、统一的特性,成为了现代网页设计不可或缺的一部分...
css样式布局及rem用法梳理
2、弹性盒模型布局flex 这种布局方式是通过css3新增的一些辅助布局的样式属性来制作布局的方式。3、rem布局 rem是一种相对长度单位,通过这个长度单位可以实现元素宽高等比例缩放,从而完成不同宽度屏幕的适配。4、响应式布局 (媒体查询)通过样式动态查询屏幕的宽度,动态切换样式来适配不同宽度屏幕的布局...
rem布局如何使用rem布局怎么实现
在实际应用中,pc页面需要实现响应式的比例缩放(即自适应),rem灵活布局是一种现实而理想的解决方案。移动端可以用rem布局,也可以用px(主要是flex),这要看产品是怎么设计的。Css3规定1rem的大小是根元素
什么是 rem、px、em 区别以及如何计算
em是相对单位,基于元素自身的字体大小或父元素的字体大小,计算时需考虑元素和父级的尺寸。rem则是相对于HTML根元素字体大小的单位,不受元素或父级影响,只受根元素设置的字体大小影响。在实际开发中,rem常用于响应式设计,因为它能随着根元素字体大小的变化自动调整元素尺寸。px和em则在特定情况下使用...
快速入门 postcss 插件:自动转换 px 到 rem
在实际场景中,比如为了适应不同设备的屏幕宽度,px 到 rem 的自动转换可以帮助我们简化工作。通过计算 html 的 font-size,将所有 px 样式值转换为 rem,就可以实现响应式设计。总结来说,postcss 提供的插件功能能够进行自定义的 CSS 代码分析和转换,适用于如颜色切换、单位转换等多样化的场景。通过...
前端开发需要学什么啊?
需要学习如下内容:1、HTML语言 掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。HTML是一种标记语言,能够实现Web...
零基础学Web前端的学习路线总结
第一个阶段:1、HTML+CSS:HTML进阶、CSS进阶、div+css布局、HTML+css整站开发。2、JavaScript基础:Js基础教程、js内置对象常用方法、常见DOM操作、ECMAscript、DOM、BOM、定时器和焦点图。3、JS基本特效:常见特效、例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、...
web前端需要学什么?
1、Web前端开发环境,HTML常用标签,表单元素,Table布局,CSS样式表,DIV+CSS布局。熟练运用HTML和CSS样式属性完成页面的布局和美化,能够仿制任意网站的前端页面实现。2、CSS3选择器、伪类、过渡、变换、动画、字体图标、弹性盒模型、响应式布局、移动端。熟练运用CSS3来开发网页、熟练开发移动端,整理网页...
想学web前端需要学什么知识
一、HTML5+CSS3 HTML是网页的主要组成部分,网页的本质就是HTML,是用来制作超文本文档的简单标记语言;CSS样式是对HTML语言的有效补充,通过使用CSS样式,便于页面的修改以及页面风格的统一,还可以减少页面的体积,通过HTML和CSS完成静态页面的布局。HTML5+CSS3是HTML+CSS的更新,增加了很多非常实用的功能...