rem布局

news/2024/7/24 4:48:47 标签: css, html

1 rem与em

rem单位:指的是html元素的font-size的倍数。和em关注父元素不同,rem只关注根元素(html)
<html>---font-size: 20px;	这个就是基准字号
<body>---font-size: 2rem;	计算后是40px,不看父亲只看根
	<div>----font-size: 2rem;	计算后是40px,不看父亲只看根
	<p>----font-size: 2rem;	计算后是40px,不看父亲只看根
	<span>----font-size: 2rem;	计算后是40px,不看父亲只看根
em是相对于父元素的字号

2 rem布局

rem布局的本质是等比缩放,一般是基于视口宽度
rem布局原理:假设我们将屏幕宽度平均分成100份,每一份的宽度用x表示,x=屏幕宽度/100,如果将x作为单位,x前面的数值就代表屏幕宽度的百分比p{width:50x}/*屏幕宽度的50%*/
如果子元素设置rem单位的属性,通过更改html元素的字体大小,就可以让子元素实际大小发生改变。
如果让html元素字体的大小,恒等于屏幕宽度的1/100,那1rem和1x就等价了
html" title=css>css提供了vw和vh,可以表示x单位:1vw=1x
	vw--视口宽度的1/100		vh--视口宽度的1/100

3 宽度标准化

根据效果图的宽度计算rem太烦琐了,如果1rem与1px恒等就好了。
工作中,移动端设计师通常为我们提供宽度为320px的设计图。
为了让1rem代表1px,我们常常将html根元素的字号定义为100/320vw
	即:html{
			font-size: 0.3125vw;
	}
	此时在标准设计图中,1rem=1px

实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        html {
       		// 工作中,移动端设计师通常为我们提供宽度为320px的设计图。其它大小的设计图也可以更改
			//为了让1rem代表1px,我们常常将html根元素的字号定义为100/320vw
            /* 让1rem=1px 以320px宽度为基准 */
            font-size: 0.3125vw;
        }
        /* 容器 */
        .container {
            width: 310rem;
            margin: 0 auto;
        }
        .list {
            margin-right: -5rem;
        }
        .box {
            width: 100rem;
            height: 50rem;
            background-color: pink;
            margin-right: 5rem;
            margin-bottom: 5rem;
            float: left;
        }
        .big {
            height: 105rem;
            margin-bottom: 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="list">
            <div class="box big">111</div>
            <div class="box">222</div>
            <div class="box">333</div>
            <div class="box">444</div>
            <div class="box">555</div>
        </div>
    </div>
</body>
</html>

http://www.niftyadmin.cn/n/734967.html

相关文章

数据库连接池的创建

德鲁伊连接池的创建 //获取druid.properties配置文件的路径&#xff0c;&#xff08;DruidUtils&#xff09;是"druid.properties"文件的兄弟路径&#xff0c;getClassLoader()获取的是<他们>的运行时路径InputS…

python上传文件

2019独角兽企业重金招聘Python工程师标准>>> <body> <input type"file" name"fafa" id"fafa"> <a href"">上传</a> <input type"submit" value"提交" οnclick"submi…

Vue的计算属性和侦听器

1 计算属性&#xff1a;他是根据对象已有的属性计算出新的属性值。具有缓存的功能&#xff0c;如果原始属性不变&#xff0c;则用缓存。否则&#xff0c;重新计算。 前端 <form><label>姓</label><input v-model"firstName"><label>名…

vue ref属性

1 ref 想在脚本中&#xff0c;获取模板中的元素或者组件&#xff0c;可以使用ref属性 分成两步第一步 为元素或者组件添加ref属性&#xff0c;属性值代表它的名称第二步 在脚本中&#xff0c;通过this.$refs属性&#xff0c;即可获取对应的元素或者组件为元素设置ref&#xff…

一次服务器被挖矿的处理解决过程

内网一台服务器cpu爆满&#xff0c;第6感猜测中了挖矿病毒&#xff0c;以下为cpu爆满监控图表赶紧ssh进系统&#xff0c;top了下&#xff0c;一个./x3e536747 进程占用了大量的cpu&#xff0c;cpu load average超过了cpu内核数&#xff0c;先kill掉进程&#xff0c;不用猜&…

react中实现搜索结果中关键词高亮显示

网上看到很多js实现的关键词高亮显示&#xff0c;方法都是一个道理&#xff0c;先获取要替换的文字区域&#xff0c;然后在用正则匹配到关键词&#xff0c;并进行替换。 react中实现起来似乎更简单一些。 我这里的需求是通过搜索框搜索出新闻列表&#xff0c;在已经获取到新闻列…

区块链技术的重要性及应用前景

2008年&#xff0c;一个叫做中本聪&#xff08;Satoshi Nakamoto&#xff09;的人&#xff08;或团体&#xff09;定义了第一个区块链。 2009年1月&#xff0c;中本聪将区块链作为比特币的核心组成部分推出&#xff0c;它是网络上所有交易的公共分类帐。 由于使用了区块链技术&…

性能提升简版

性能提升&#xff1a;gzip压缩&#xff1b;CDN服务&#xff1b;资源合并与压缩&#xff1b;代码分割图片压缩和懒加载又拍云针对html/css/js&#xff0c;默认开启gzip压缩&#xff0c;压缩比率大约70%&#xff08;这里也可以自行设置&#xff0c;毕竟gz解析也耗时&#xff09;&…