用rem设置文字大小
一、px与em
用px设置文字大小是再正常不过的事情,比如
html {font-size: 12px;}
随处可见的在设置width、height使用px,这也是细致稳妥的设置方法,这样做的缺点在于调整浏览器的文字大小并未影响以px为单位的文本,这对一部分用户造成了不便。
用em设置文字大小弥补了这个问题,em是一个相对单位。文字大小用em表示的情况下,可以随着浏览器字号(比如在chrome下“设置->高级设置->字号”)的变大(变小)而变大(变小),使用格式与px基本一样,比如
p {font-size: 1em;}
以上面这个p元素为例,em的计算方式是这样的:
- 若p的父元素设置了文字大小,如font-size:20px,则1em=20px;
- 若父元素没有设置文字大小,则继续寻找上层节点的文字大小,直到根节点html;
- 若根节点html没有设置文字大小,则取浏览器默认文字大小16px。
使用em有一个令人头疼的地方:
假设的文档结构是这样的:html>p>span,样式是这样的:
html {
font-size: 62.5%;/* 10px÷16px=62.5% */
}
p {
font-size: 1.4em;/* 14px */
}
现在我想设置span的文字大小为12px,我需要计算12/14=85.7%
span {
font-size: 0.857em/* 12px/14px=85.7% */
}
若还要设置span里面子节点的文字大小,计算会越来越痛苦。。。
这就是该rem出现的时候了。
二、rem
在CSS3中引入了rem,rem是指根元素(root element,html)的文字大小,IE9+与Firefox、Chrome、Safari、Opera等主流版本都支持。
设置过根节点的文字大小后,所有子节点的文字大小全部相对于根节点计算。比如html为10px,则1.2rem=12px,2rem=20px...以此类推。
html {
font-size: 62.5%;/* 10px÷16px=62.5% */
}
p {
font-size: 14px;
font-size: 1.4rem;
}
span {
font-size: 12px;
font-size: 1.2rem;
}
为了兼容不支持rem的浏览器,要在设置rem的前面写上对应的px值,实现优雅降级。
使用rem的好处是:它具有em的相对特性(相对浏览器),又不会像em一样难以计算和控制。
用rem设置文字大小的更多相关文章
- 响应式十日谈第一日:使用 rem 设置文字大小
上面回顾: 在序言中我们已经提到了响应式的一些基本理念,比如: 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时 ...
- 使用 rem 设置文字大小
一.那到底什么是 rem 呢? 规范中明确写道: Equal to the computed value of ‘font-size’ on the root element. 「rem」是指根元素( ...
- 【转】CSS3的REM设置字体大小
rem 长度单位 在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: ...
- CSS3的REM设置字体大小
在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px v ...
- Android中设置文字大小的定义类型
在Android中所有的组件可以设置大小,但是在设置大小的时候需要指定其单位,这些单位如下: px(pixels):像素: dip(device independent pixels):依赖于设备的像 ...
- QLabel设置文字大小和颜色
https://blog.csdn.net/fm0517/article/details/4805462 ui.label是QLabel ui.label_4->setText("so ...
- Eclipse设置文字大小
1,选择窗口,preference 2,general
- UIButton修改文字大小问题
一.问题描述 通过UIButton对象font属性设置文字大小,却发现该属性在2.0.3.0就已经被废弃,ios不建议使用. 图1-1:点出UIButton对象的font属性提示被废弃 图1-2:UI ...
- iOS UIAlertView 文字对其方式 文字大小 设置方法
- (void) willPresentAlertView:(UIAlertView *)alertView { for (UIView *subViewin alertView.subviews) ...
随机推荐
- HDU 6205 2017沈阳网络赛 思维题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6205 题意:给你n堆牌,原本每一堆的所有牌(a[i]张)默认向下,每次从第一堆开始,将固定个数的牌(b ...
- ssh登录时较慢的解决方法
ssh在登录的时候,通常都会经过DNS的反向解析,过程为: IP --> (反向DNS) --> hostname --> (DNS) --> IP 然后匹配开头申请的和最后得 ...
- 转- 阿里云、Amazon、Google云数据库方案架构与技术分析
「一切都会运行在云端」. 云时代早已来临,本文着眼于顶级云服务商云服务商的云数据库方案背后的架构,以及笔者最近观察到的一些对于云数据库有意义的工业界的相关技术的进展,希望读者能有所收获. 现在越来越多 ...
- 关于HTML&CSS的笔记
最近在看Jon Duckett的HTML&CSS一书(http://book.douban.com/subject/6585090/),书的排版和讲解方式很不错,并且有许多其他教学材料遗漏的关 ...
- scala windows 安装
下载 https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.msi 第一步:设置 右击我的电脑,单击"属性",进入 ...
- 回文词(UVa401)
详细题目描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- Js数组的常用的方法概述
学习JS的同学们,也曾对数组进行学习掌握,所以我也把数组中常用的方法列举下来,相互学习 不多废话,直接上正文 . 快乐的分割线... 一.对象继承的方法 数组是一种特殊 ...
- 【ghost初级教程】 怎么搭建一个免费的ghost博客
ghost博客系统无疑是这个月最火热的话题之一,这个号称”只为博客“的系统,早在项目开始之初就受到了众人的关注.它使用了当前最火热node.js技术,10月14日发布了V0.3.3版本.江湖传言它将是 ...
- Wannafly挑战赛7 B - codeJan与旅行
题目描述 codeJan 非常喜欢旅行.现在有 n 个城市排在一条线上,并且 codeJan 的位置不和任何一个城市的位置重叠.codeJan 想要游览 m 个城市,同时因为时间是不断变化的,游览一个 ...
- 洛谷P1503 鬼子进村 [平衡树,STL]
题目传送门 鬼子进村 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战. ...