响应式布局-Rem的用法

前言: 文章较为系统地介绍了rem这个新的文字大小单位,绝对干货,绝对好文。转载时略有改动。
 
先来看看一些基本理念,比如:

响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求。响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷。

同样的,响应式的设计应该秉承「内容优先,移动优先」的设计原则,那么我们知道网页中的内容主要是由文字图片等元素组成的,那么文字该如何响应式呢?

当我们每天面对缤纷的互联网世界的时候,文字不仅仅传递给我们众多的信息资讯,而且在设计师的手里,文字在网页中的排版承载着一种艺术的直觉。

网页中常用的文字大小单位是 px(Pixels),em,现在《CSS Values and Units Module Level 3》中新增了 rem 这个单位。

一、那到底什么是 rem 呢?

规范中明确写道:

Equal to the computed value of ‘font-size’ on the root element.

「rem」是指根元素(root element,html)的字体大小,好开心的是,从遥远的 IE6 到版本帝 Chrome 他们都约好了,根元素默认的 font-size 都是 16px。这样一个新的单位兼容性如何呢?请出 Caniuse 看看吧

<img class="aligncenter" src="http://image.woshipm.com/wp-files/2013/05/f3931141462f7778b1c0d435bb14c7cb.png" alt="" width="700" height="270" /></p>

 

太好了,IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支持了,我可以放肆的使用 rem 了。

可是,W3C 那些家伙为什么要闲着下面疼的新增这样一个单位呢?它和 em 有啥区别呢?

我们知道 em 的计算是基于父级元素的,在实际使用中给我们的计算带来了很大的不便。所以 rem 的出现解救了我这样不会算术的人,再也不用担心父级元素的 font-size 了,因为它始终是基于根元素(html) 的。

比如默认的 html font-size=16px,那么我想设置12px 的文字就是:12÷16=0.75(rem)

当然,你可以引入 CSS 预处理工具(Sass、LESS 、Stylus等)自动计算 rem 值,这里就不一一举例了。

但是像我这样的懒人或者团队开发中还没有引入CSS 预处理工具的该肿么办呢?只能搬个计算器啪啪啪了吗?别急,你还可以变通一下。我们改变一下 html 的默认 font-size=10px 不就好计算了嘛!Like this:

html{

font-size:62.5%; /* 10÷16=62.5% */

}

body{

font-size:12px;

font-size:1.2rem ; /* 12÷10=1.2 */

}

p{

font-size:14px;

font-size:1.4rem;

}

需要注意的是,为了兼容不支持 rem 的浏览器,我们需要在 rem 前面写上对应的 px 值,这样不支持的浏览器可以优雅降级。其实不用太纠结是默认的font-size:100%,还是设置为font-size:62.5%,如果你引入了 CSS 预处理工具那么自然可以使用默认值,如果由于其他原因使用font-size:62.5% 也无可厚非,完全可以在 body 中重置回你需要的默认 font-size。

二、为啥要用 rem 呢?

黑夜给了我黑色的眼睛,我将用它寻找关怀。

浏览器中用户都是可以自定义默认的文字大小的,如果使用 px,用户自行在浏览器设置中改变了文字大小后,网页上是不会变化的。我们不能排除视障用户(如近视)、老年用户不会这么做,作为一个具有「人文关怀」的前端,我们完全可以考虑这些情况。由其是在引入了 CSS预处理工具之后,这几乎不会增加什么成本。

也再次印证前面提到的:响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求。

各个浏览器的设置方法如下:

    1. IE浏览器:按下 Alt 键,打开菜单栏→查看→字体大小
<img class="aligncenter" src="http://image.woshipm.com/wp-files/2013/05/feb19e3e3f677e59c871481b128ba9f8.png" alt="" width="358" height="312" /></li>
    1. Chrome 浏览器:设置→显示高级设置→网页内容
<img src="http://image.woshipm.com/wp-files/2013/05/33585364b47f7a92ccb6c7525dbbfcbd.png" alt="" width="390" height="142" /></li>
    1. Firefox 浏览器:按下 Alt 键,打开菜单栏→工具→选项→内容选项卡
<img class="aligncenter" src="http://image.woshipm.com/wp-files/2013/05/94fd72d68841b2ac1411821192dcf894.png" alt="" width="520" height="303" /></li>
  1. 其他浏览器就不一一举例了……

三、什么时候用 rem?

既然 rem 的可用性更好,是不是在所有地方都去使用呢?别捉急,通常在标题,正文等大面积文字的位置可以使用 rem。但是在一些特殊的设计场景,rem 可能会导致布局错位,比如这样一个回顶部的按钮:

<img class="aligncenter" src="http://image.woshipm.com/wp-files/2013/05/24f3cf06f575ea8938ce5df65efda84e.png" alt="" width="113" height="158" /></p>

所以,什么时候用 rem,如何用好 rem? 这也需要你拿出 18K的黑色乌金睛来照亮整个页面。让我们一起:

抛开布局,响应文字;抛开成见,响应内心。

在面对响应式开发的时候,什么才是合适的,什么是不合适的,你真的想好了吗?

<img class="aligncenter" src="http://image.woshipm.com/wp-files/2013/05/8d91ff911dedc8960db68a54c4708170.jpg" alt="" width="382" height="467" /></p>

(看图思考:有个小姑娘很爱漂亮,上图是她正在偷偷的穿妈妈的高跟鞋……)

 

转自:http://www.iyunlu.com/view/css-xhtml/76.html

转载于:https://www.cnblogs.com/phoebewang00/p/5583938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
响应式布局和媒体查询是前端开发中常用的技术,主要用于创建适应不同设备(如手机、平板、桌面等)的布局。以下是它们的使用方法和一些要点: 1. **响应式布局**:响应式布局是一种使网站能够在不同设备和屏幕尺寸上显示良好的一种方法。它使用 CSS 属性来检测浏览器窗口的大小,并根据这些尺寸改变布局。常用的响应式布局方法包括百分比布局、弹性盒子布局(Flexbox)、网格布局(Grid)等。 使用响应式布局,需要确保所有元素都有合适的宽度和高度,并且能根据屏幕大小自适应调整。可以使用媒体查询来更改元素的尺寸、颜色、背景等属性,以适应不同的屏幕尺寸。 2. **媒体查询**:媒体查询是 CSS3 中的一个特性,它允许开发者根据设备的特定属性(如屏幕宽度、颜色空间等)应用不同的样式规则。媒体查询通常与响应式设计一起使用,以便在不同的屏幕尺寸上应用不同的布局和样式。 使用媒体查询的基本语法如下: ```css @media screen and (max-width: 600px) { /* 这些样式仅在屏幕宽度小于或等于 600px 应用 */ } ``` 在上面的代码中,`@media` 关键字用于指定媒体查询的条件,括号中的 `max-width: 600px` 表示只有当屏幕宽度小于或等于 600px ,才会应用括号内的样式规则。 另外,还可以使用其他媒体查询相关的属性,如 `min-device-pixel-ratio`(用于处理高分辨率屏幕)、`orientation`(用于检测设备方向)等。 使用响应式布局和媒体查询,需要注意以下几点: * 尽可能使用百分比、em 或 rem 等相对单位进行布局,而不是像素(px)。 * 确保所有元素都有合适的宽度和高度,以便在需要进行自适应调整。 * 根据需要使用不同的媒体查询条件,以适应不同的设备和屏幕尺寸。 * 测试你的网站在不同设备和屏幕尺寸上的表现,以确保响应式布局和媒体查询能够正常工作。 希望这些信息对你有所帮助!如果你有任何其他问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值