浅谈rem、em、px

1、px:像素(Pixel)

px是相对长度单位,他是相对于显示器屏幕分辨率而言的

优点:比较稳定、精确

缺点:在浏览器 中放大或者缩小浏览页面,会出现页面混乱的情况。

如下例子:

.buttonPX{    width:100px;    height:60px;    line-height:60px;    display: inline-block;    font-weight:bold;">#00a0b6;    -webkit-border-radius:90px;    -moz-border-radius:60px;    border-radius:15px;    font-size:24px;    color:#fff;    text-decoration: none;    text-align: center;    border:none}
<button type="button" class="buttonPX">确定</button>效果:

2、em:是相对长度单位

em是相对于父元素来设计字体大小的,如果当前对行内文本的字体尺寸为被人为设置,则em是相对于浏览器的默认字体尺寸。浏览器默认的字体是16px,所以未经调整的浏览器都符合 1em = 16px,为了方便使用em时,通常在css的body中声明font-size=62.5%(16*62.5%=10px)

缺点:em的值并不是固定的,他会继承父元素的字体大小

如同样设置48px的字体,设置父元素的大小和不设置父元素的大小的区别

.box1{    font-size:12px;}.buttonEm{    width:200px;    height:60px;    line-height:60px;    display: inline-block;    font-weight:bold;">#00a0b6;    -webkit-border-radius:90px;    -moz-border-radius:60px;    border-radius:15px;    font-size:4em;//注意此处    color:#fff;    text-decoration: none;    text-align: center;    border:none}.buttonEm2{    width:200px;    height:60px;    line-height:60px;    display: inline-block;    font-weight:bold;">#00a0b6;    -webkit-border-radius:90px;    -moz-border-radius:60px;    border-radius:15px;    font-size:3em; //注意此处    color:#fff;    text-decoration: none;    text-align: center;    border:none}
<div class="box1">    <button type="button" class="buttonEm">确定</button>  //设置了父元素的字体大小</div><br><div class="box2">    <button type="button" class="buttonEm2">确定</button>  //未设置父元素的字体大小</div>如果将其中的宽度等其他元素也改为em单位,则width=10em的实际宽度为width=48(行内文本字体的尺寸)*10 = 480px,也就是width的基本单位1em=fontsize的大小

3、rem (root em,根 em)

rem是相对单位,是相对与html根节点的单位

rem 主要是通过html 节点的fontsize确定的,所以不存在逐层复合的连锁反应

在JS的window.resize 事件中,动态的控制html节点的fontsize的大小,来动态控制rem的比例

设置rem单位的方法

方法一:直接在css样式中写一下代码即可:

html{

font-size:20px; //表示1rem相当于常用的20px,1rem = 20px

}

为了兼容适配不同的屏幕,也可斜成下面这样

html{font-size : 20px;}@media only screen and (min-width: 401px){    html {        font-size: 25px !important;    }}@media only screen and (min-width: 428px){    html {        font-size: 26.75px !important;    }}@media only screen and (min-width: 481px){    html {        font-size: 30px !important;    }}@media only screen and (min-width: 569px){    html {        font-size: 35px !important;    }}@media only screen and (min-width: 641px){    html {        font-size: 40px !important;    }}

方法二:使用js动态的实现此效果

(function(doc, win) {    var docEl = doc.documentElement,        resizeEvt = ‘orientationchange‘ in window ? ‘orientationchange‘: ‘resize‘,        recalc = function() {            var clientWidth = docEl.clientWidth;            if (!clientWidth) return;

            if (clientWidth > 1920) {                clientWidth = 1920;                docEl.style.fontSize = 25 * (clientWidth / 1200) + ‘px‘; //font-size=25            }            else if (clientWidth > 900) {                docEl.style.fontSize = 25 * (clientWidth / 1200) + ‘px‘;//font-size = 25            }            else if (clientWidth >= 320) {                docEl.style.fontSize = 100 * (clientWidth / 500) + ‘px‘;//font-size = 100            }            else if (clientWidth >= 320) {                clientWidth = 320;                docEl.style.fontSize = 100 * (clientWidth / 500) + ‘px‘;//font-size = 100            }        };

    if (!doc.addEventListener) return;    win.addEventListener(resizeEvt, recalc, false);    doc.addEventListener(‘DOMContentLoaded‘, recalc, false);})(document, window);

除了ie8以外,其他的都兼容rem

时间: 2024-08-06 02:40:44

浅谈rem、em、px的相关文章

rem em px 单位换算

1.px(像素) px(像素),为分辨率的基准单位,相对于显示器屏幕分辨率而言的. 特点: IE无法调整那些使用px作为单位的字体大小: 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核). 2.em em是相对长度单位,相对于当前对象内文本的字体尺寸,如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合:

CSS3用rem,em,px设置字体大小

PX为单位 相对长度单位.像素px是相对于显示器屏幕分辨率而言的. 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小,这时会使我们的Web页面布局被打破.这样对于那些关心自己网站可用性的用户来说,就是一个大问题了.因此,这时就提出了使用“em”来定义Web页面的字体. PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在

浅谈对em的认识。

EM (一种字体高) EM指字体高,任意浏览器的默认字体高都是16px. em指字体高,任意浏览器的默认字体高都是16px.所以未经调整的浏览器都符合: 1em=16px.那么12px=0.75em, 10px=0.625em.为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了.

浅谈Web自适应

浅谈Web自适应 2016-08-13 前端大全 前端大全 (点击上方公众号,可快速关注我们) 来源:卖烧烤夫斯基 链接:www.cnblogs.com/constantince/p/5708930.html 前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置.移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样.这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出.记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计

浅谈CSS盒子模型

[摘要]盒子模型是CSS中的一个重要概念,虽然CSS中没有盒子这个单独的属性对象,但它却是CSS中无处不在的一个重要组成部分.掌握盒子模型的原理和使用方法可以极大地丰富HTML元素的表现效果,同时对于整个HTML文档的布局也会产生很大的帮助和促进.本文尝试在介绍CSS盒子模型基本概念和组成元素属性的基础上,结合个人学习经验对其在网页制作中的实际应用谈一谈自己浅显的观点和看法.[关键词]盒子模型:表现效果:网页布局: CSS是Cascading Style Sheets的缩写,中文意思是层叠样式表

2018 浅谈前端面试那些事

虽然今年没有换工作的打算 但为了跟上时代的脚步 还是忍不住整理了一份最新前端知识点 知识点汇总 1.HTML HTML5新特性,语义化浏览器的标准模式和怪异模式xhtml和html的区别使用data-的好处meta标签canvasHTML废弃的标签IE6 bug,和一些定位写法css js放置位置和原因什么是渐进式渲染html模板语言meta viewport原理 2.CSS 盒模型,box-sizingCSS3新特性,伪类,伪元素,锚伪类CSS实现隐藏页面的方式如何实现水平居中和垂直居中.说说

浅谈CSS优先级机制(一)

初次写随笔,如果有哪个地方不足还望大神指点改正,下面我来谈谈我对于CSS优先级的了解吧. CSS优先级,通俗的理解就是你给元素等一堆属性描述,然后最后到底是哪个描述作为最终显示的效果的规则或机制(个人理解).以下我将分为几个点来谈谈优先级的确定. 1.引入方式: CSS引入的方式,我目前只知道四种:内联式.内嵌式.导入式.链接式(当然网上的说法名称不一,理解就好). 各种引入方式的用法我在这里就不再多说了.以上我所按顺序罗列的四个方式是理论上的优先级顺序,也就是说,我使用内联式引入的css代码作

浅谈自然语言处理基础(下)

命名实体识别 命名实体的提出源自信息抽取问题,即从报章等非结构化文本中抽取关于公司活动和国防相关活动的结构化信息,而人名.地名.组织机构名.时间和数字表达式结构化信息的关键内容,所以需要从文本中去识别这些实体指称及其类别,即命名实体识别和分类. 21世纪以后,基于大规模语料库的统计方法成为自然语言处理的主流,以下是基于统计模型的命名实体识别方法归纳: 基于CRF的命名实体识别方法 基于CRF的命名实体识别方法简便易行,而且可以获得较好的性能,广泛地应用于人名.地名和组织机构等各种类型命名实体的识

移动端适配方案以及rem和px之间的转换

背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1)首先,选取一款手机的屏幕宽高作为基准(以前是iPhone4的320×480,现在更多的是iphone6的375×667). 2)对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言: