CSS单位,em,rem以及元素的宽度和高度

一、em和rem

说到自适应布局,就不得不提到rem这个单位。

简单的说

  • em: 就是字体大小,根据元素自身的字体大小来定,如果自身没有定义字体大小,则继承父元素的字体大小,即1em = 1 font-size;
  • rem: 和em差不多,可以看成是root-em,是根据根元素的字体大小来定义的,即html设置的字体大小来定义,默认html的字体大小是16px;

用一个demo来说明最好:

<style>
html{
    font-size: 50px;
}
    #wrapper{
        font-size: 40px;
        background-color:red;
        width:2em;
        height: 2em;
    }
    #outter{
        font-size: 20px;
        background-color: yellow;
        width: 2em;
        height: 2em;
    }
    #inner{
        font-size: 10px;
        background: blue;
        width: 2em;
        height: 2em;
    }
    #wrapper-1{
        font-size: 40px;
        background-color:red;
        width:2rem;
        height: 2rem;
    }
    #outter-1{
        font-size: 20px;
        background-color: yellow;
        width: 2rem;
        height: 2rem;
    }
    #inner-1{
        font-size: 10px;
        background: blue;
        width: 2rem;
        height: 2rem;
    }
</style>
<body>
    <div id = ‘wrapper‘>
        <div id = ‘outter‘>
            <div id = ‘inner‘>0</div>
        </div>
    </div>
    <div id = ‘wrapper-1‘>
        <div id = ‘outter-1‘>
            <div id = ‘inner-1‘>1</div>
        </div>
    </div>
</body>

结果如图,上为用em,为rem

可以看到用em的大小根据自身元素字体大小的变化而变化,而用rem则不会,一直以根font-size为标准。

二、宽度和高度

单我想获取上面元素的宽度时,我习惯的用了:

document.getElementById(‘wrapper‘).style.width // 结果是“”

找了一下资料,发现这是查找设置了的css元素属性时使用的,而一般应该用以下方法:

1.clientWidth和clientHeight

var width = el.clientWidth;
var height = el.clienHeight;

说明:padding和scroll变动,才有变化

2.scrollWidth 和box.scrollHeight

var width = el.scrollWidth;
var height = el.scrollHeight;

说明,1)border变化,不同浏览器有不同变化2)padding变化,有变化3)margin变化,无变化

3.offsetWidth和offsetHeight

var width = el.offsetWidth;
var height = el.offsetHeight;

说明,padding和border有变动,才有变化

时间: 2024-10-10 15:19:24

CSS单位,em,rem以及元素的宽度和高度的相关文章

jquery如何获取元素的宽度和高度

jquery如何获取元素的宽度和高度: 这当然是比较基础的问题,不过有可能初学者还是不够明了,下面就简单介绍一下. 获取元素的宽度: $(selector).width() 获取元素的高度: $(selector).height() selector是选择器,例如id.类和元素选择器登登. 原文地址是:http://www.51texiao.cn/jqueryjiaocheng/2015/0613/4046.html 最为原始地址是:http://www.softwhy.com/forum.ph

CSS中em,rem的区别

首先这两个单位一般用在移动端 不太清楚得求证  再记录 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字体尺寸. 2em 等于当前字体尺寸的两倍. 例如,如果某元素以 12pt 显示,那么 2em 是24pt. 在 CSS 中,em 是非常有用的单位,因为它可以自动适应用户所使用的字体. ex 一个 ex 是一个字体的 x-height. (x-height 通常是字体尺寸的一半.) pt 磅 (1

css单位之rem

在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px vs. pt vs. percent这样的PK大局.仍然有不同的利弊,使各种技术都不太理想,但又无法不去用.真是进也难,退也难呀. 在详细介绍rem之前,我们先一起来回顾一下我们常用的两种记量单位,也是备受争论的两个: PX为单位 EM为单位 PX为单位 在Web页面初期制作中,我们都是使用"px&q

IOS 动态获取 UILabel 元素的宽度和高度

//高度自适应 UIFont *font = [UIFont fontWithName:@"Arial" size:13]; //设置一个行高上限 CGSize size = CGSizeMake(320,1000); //计算实际frame大小,并将label的frame变成实际大小 CGSize labelsize = [entity.content sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreak

css单位em、px、rem和pt的区别

1.PX :像素(Pixel) PX是相对长度单位,它是相对于显示器屏幕分辨率而言的. 优缺点:比较稳定和精确,但在浏览器中放大或缩放浏览页面时会出现页面混乱的情况. 2.EM:是相对长度单位. EM是相对于父元素来设计字体大小的.如果当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. 优缺点:EM的值并不是固定的,它会继承父级元素的字体大小. EM和PX的之间的相互转换: 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.7

[css] px em rem

一.区别 px是相对于显示器屏幕分辨率而言的. em相对于浏览器的默认字体尺寸. rem相对于HTML根元素. 二.使用  1.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, 也就是说只需要将你的原来

获取dom元素的宽度和高度

一.获取css的大小 1.第一种通过内联样式 var box = document.getElementById('box'); var w = box.style.width; var h = box.style.height; 2.通过计算元素的大小(但是在ie情况下有一个问题,那就没写widht和height的css就返回auto); var style = window.getComputedStyle ? window.getComputedStyle(box,null) : null

jQuery获取display为none的隐藏元素的宽度和高度的解决方案

1.利用给元素添加行内样式:visibility:hidden;display:block 2.让隐藏元素变成有物理尺寸存在,但不可见,获取元素宽高 3.再给它还原成display为none,去除visibility //#step-2默认是隐藏 display:none //添加样式,物理可见 $("#step-2").css({"display":"block","visibility":"hidden"

Css单位px,rem,em,vw,vh的区别

px px就是pixel像素的缩写,相对长度单位,网页设计常用的基本单位.像素px是相对于显示器屏幕分辨率而言的 em em是相对长度单位.相对于当前对象内文本的字体尺寸(参考物是父元素的font-size) 如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸 特点: 1. em的值并不是固定的: 2. em会继承父级元素的字体大小 rem rem是CSS3新增的一个相对单位,rem是相对于HTML根元素的字体大小(font-size)来计算的长度单位 如果你没有设置html的字体大小,