首页 > 其他分享 >CSS—相对单位rem

CSS—相对单位rem

时间:2023-04-19 10:44:32浏览次数:29  
标签:标签 单位 html 尺寸 rem 适配 font CSS

一、概述

rem是一个相对长度单位,它的单位长度取决于根标签html的字体尺寸。rem即root em的意思,中文翻译为根em。浏览器的文本尺寸一般默认为16px,即默认情况下:

1rem = 16px

rem布局原理:根据CSS媒体查询功能,更改根标签的字体尺寸,实现rem单位随屏幕尺寸的变化,如下代码所示

@media only screen and (max-width: 1600px) and (min-width: 1280px){
    html{
        font-size: 14px;
    }
}
@media only screen and (max-width: 1280px) and (min-width: 960px){
    html{
        font-size: 12px;
    }
}
@media only screen and (max-width: 960px){
    html{
        font-size: 10px;
    }
}

注意,一般使用rem方案解决移动端适配问题。IOS6以上和Android2.1以上,基本覆盖所有流行的手机系统。 

 

二、详解

通过设置根标签的字体尺寸,可以改变rem,从而形成一个可控的统一参考系。

rem有两种思路。其一设置rem所代表的尺寸大小与屏幕宽度成正比。其二设置rem所代表的尺寸大小与px容易换算,方便按照设计稿写CSS,此时可以使用媒体查询动态修改根标签的字体尺寸来适配。

第一种思路:设置rem的大小与屏幕宽度成正比

通过JS动态设置根标签的字体尺寸,从而改变rem的尺寸。为了方便计算,一般将rem设置为视图宽度的十分之一。rem可以等比例适配所有分辨率终端(PC端和各种移动端)

// 获取视图宽度
// document.documentElement是指html根节点
// document.body是指body节点
// 因为兼容问题, 有时拿不到根节点的宽度就会拿body来顶替
let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
console.log(htmlWidth);
 
// 设置html标签的font-size为视图宽度的十分之一
let htmlDom = document.getElementsByTagName('html')[0];
console.log(htmlDom.style.fontSize);
htmlDom.style.fontSize = htmlWidth / 10 + 'px';
console.log(htmlDom.style.fontSize);

注意,使用rem+sass可以更好、更方便的适配各种分辨率的移动端。

第二种思路:设置rem尺寸与px容易换算

浏览器的文本尺寸一般默认为16px,设置如下所示。使用媒体查询动态修改根标签的字体尺寸来适配不同分辨率的终端。

html{
    font-size: 62.5%; /* 62.5% * 16px = 10px */
}

注意,一般PC浏览器规定字体尺寸最小支持12px,手机端不存在这个问题。

标签:标签,单位,html,尺寸,rem,适配,font,CSS
From: https://www.cnblogs.com/dlx609/p/17332471.html

相关文章

  • css选择器
    1、id选择器#id_name{}前缀#,后接选中html元素的id属性值选取单个2、class选择器.class_name{}前缀.,后接选中html元素的class属性值可以选择多个class_name的第一个字符不能是数字3、标签/元素选择器label_name{}直接使用标签名称,比如p,h1可以选择多个4、属性选......
  • css文本
    1、colorcolor:red;设置字体颜色2、text-aligntext-align:center;设置文本的水平对齐方式,可选项:center居中对齐,right向右对齐,left向左对齐,justify两端对齐3、文本修饰text-decoration:none;可选项:overline上划线,line-through删除线,underline下划线,none没有4、大小......
  • css-背景
    1、背景颜色background-color:red;background-color:#b0c4df;background-color:rgb(255,0,0);设置背景颜色,有三种值,十六进制、RGB方法、颜色名称在线颜色选择器:在线颜色选择器|RGB颜色查询对照表(jb51.net)2、背景图像background-img:url('bg.jpg');默认情况,图像进......
  • css字体
    1、font-family字体系列font-family:"TimesNewRoman",Times,serif;应该设置多个,以作为后备机制,如果浏览器不支持第一种字体,他将尝试下一种字体。字体系列的名称超过一个字,必须使用引号2、字体样式font-style:normal;可选项:normal正常,italic斜体,oblique倾斜的文字,和斜......
  • css一般设置
    1、链接a:link-正常,未访问过的链接a:visited-用户已访问过的链接a:hover-当用户鼠标放在链接上时a:active-链接被点击的那一刻超链接a标签具有四个状态,可以基于css选择器进行选择a:hover必须跟在a:link和a:visited后面a:active必须跟在a:hover后面一个常......
  • css盒子模型
    1、介绍所有HTML元素可以看作盒子,包括:外边距margin边框border内边距(填充)padding实际内容:显示文本和图像,指定元素的width和height属性实际就是内容的宽度和高度2、边框(1)border-style样式none:默认无边框dashed虚线边框solid实线边框double两个边框groove3D沟槽......
  • Unable to create an object of type 'NetcoremvcDbcontext'. For the different patt
    问题描述:我整个项目重新生成没有报错,但是用efcore迁移数据库命令:Add-Migrationinit就生成不了文件夹Migrations,并且报错:Unabletocreateanobjectoftype'NetcoremvcDbcontext'.Forthedifferentpatternssupportedatdesigntime,seehttps://go.microsoft.com/fwlink/......
  • 喜报!Coremail连续10次入选《中国网络安全行业全景图》
    近日,国内权威媒体安全牛第十版《中国网络安全行业全景图》(以下简称“全景图”)正式发布。全景图共收录456家国内网络安全企业和相关机构,共分为15个一级安全分类,107个二级细分领域。Coremail凭借自身卓越的技术实力,突出的市场表现,完善的服务能力,已经连续十次入选“邮件安全”领域。邮......
  • Clouds remind me that magical things in life can come out of nowhere
    Cloudscanalsotransportmeawayfromthedullerpartsoflife,awayfromboringsituationsandawayfromdaytodaystressesandworries.Theygetmeoutofmyheadandintoadreamscape,amagicallookinglandscapethatfloatsabovemewhereIcanimag......
  • css实现艺术字
    最近在写一个新的小活动,本来有涉及艺术字的标题,本来是想用图片展示的,后来面向百度编程的时候,发现可以使用css来实现效果及代码如下font-size:60rpx;color:#fff;text-shadow:005px#FF0200,0010px#727272;text-align:center;margin:30rpxau......