您现在的位置是:网站首页> 编程资料编程资料
轻松掌握CSS3中的字体大小单位rem的使用方法详解CSS3 rem(设置字体大小) 教程
2021-09-05
928人已围观
简介 rem是css3新定义的设置字体大小属性,rem大小都是以html的字体大小设置为参考值进行一个字体大小缩放,下面就带大家来轻松掌握CSS3中的字体大小单位rem的使用方法:
CSS3中新的字体单位rem
前段时间无意中在wordpress主题中接触到一种字体单位rem,当时我就很好奇,毕竟以前没有见过,于是我马上查找资料,并测试了一回.
众所周知在web中有很多字体单位(font-size)较常见的有em,px,让我们对比一下这两种单位:
px是绝对值,准确而稳定.但是它的改变会影响页面布局.
em是相对值,它以父元素的大小为基准单位,来计算大小.所以很难把握.
考虑到这么多字体单位的优缺点,在CSS3中rem诞生了.rem也是相对单位(rem=root em)很明显rem是由em变化而来,或者说rem是em的升级版,具体来历.我们就不要去追究了,从字体表面上看,它就是这么回事.
root em,就是相对于根目录的em而不是相对于父元素,也就是说,它虽然是绝对值,但是只是相对于根目录来说也就是html,它不会随着其它元素的改变而改变.也就是说,我们只要设定html的文字大小就可以了.而不用考虑其它因素.
而且他还具有非常好的支持Chrome,Firefox,Safari,Opera,IE9+.IE6,7,8就只能使用px或者em了.
- html{
- font-size:62.5%;
- }
为什么要这么设置呢?因为网页上的字体默认是16px,而16px的62.5%就是10px;也就是说这样的活1rem就等于10px,这个对于我们来说是非常棒的,font-size:1.2rem,当然为了兼容IE的低级版本还要写font-size:12px,别忘了要写在rem的前面.
在这里我要提到一点的就是,假如你要是用rem来设置行高,边距之类的单位.请在html中加入这么一句话:-webkit-text-size-adjust:none;来消除webkit的默认属性.否则在其它的地方rem不是以根目录作为基准值了.
canvas无法使用rem单位的解决方案
我们在使用canvas时需要设置画布的大小,即设置canvas标签的width,height属性。
- <canvas width="200px" height="200px">canvas>
在移动端,画布的大小要根据屏幕的大小进行适配,我们一般采用rem结合媒体查询的方式。使用canvas时就遇到遇到一些问题:
canvas的width属性不支持rem单位(如果使用样式当然支持rem,但注意canvas的width属性与style中的width是有区别的),如下
translate方法传参是坐标位置,不带单位,如ctx.translate(10,10);
适配屏幕是必须的,但如何解决?用最原始的百分比布局就可以:
- //获取屏幕的宽度
- var clientWidth = document.documentElement.clientWidth;
- //根据设计图中的canvas画布的占比进行设置
- var canvasWidth = Math.floor(clientWidth*200/720);
- canvas.setAttribute('width',canvasWidth+'px');
- canvas.setAttribute('height',canvasWidth+'px');
- //translate方法也可以直接传入像素点坐标
相关内容
- CSS弹性盒模型flex在布局中的应用详解实例讲解CSS3中的box-flex弹性盒属性布局CSS3弹性盒模型flex box快速入门心得(必看篇)几个CSS3的flex弹性盒模型布局的简单例子演示基础的CSS3弹性盒Flexbox布局使用实例深入剖析CSS弹性盒模型flexcss3弹性盒模型(Flexbox)详细介绍css flex 弹性布局详解
- css布局小技巧分享(必看)提高CSS代码效率的编写技巧使用CSS的pointer-events属性实现鼠标穿透效果的神奇技巧20个非常实用的CSS技巧CSS 设置技巧(单位和值与样式设置技巧)CSS 高级技巧总结(必看)必须掌握10个非常不错的CSS技巧详解CSS制作Web页面条纹背景样式的技巧CSS制作边框效果的技巧总结20 个 CSS 高级技巧汇总(推荐)
- CSS文本超出指定宽度后隐藏并显示为省略号的实现方法文本超出部分隐藏的两种方法css3实现渐变、阴影、超出指定文本省略号显示等一些效果实例CSS控制文本超出指定宽度显示省略号和文本不换行效果的实现CSS超出文本指定宽度用省略号代替和文本不换行CSS文本超出div或者span时用省略号代替 css实现li中文本超出行宽自动隐藏CSS文本超出2行就隐藏并且显示省略号
- CSS的writing-mode文字排版属性使用教程css网页布局中文字排版的属性和用法CSS教程:CSS控制网页文字排版实例浅析CSS3 用text-overflow解决文字排版问题
- CSS3中的Media Queries学习笔记CSS3 @media的基本用法总结详解使用CSS3的@media来编写响应式的页面 CSS3 media queries + jQuery实现响应式导航css3 media 响应式布局的简单实例css3media响应式布局实例详解CSS3 Media Queries中媒体属性的使用 使用 CSS3 中@media 实现网页自适应的示例代码
- 详解CSS3的perspective属性设置3D变换距离的方法CSS文本超出指定宽度后隐藏并显示为省略号的实现方法CSS3 checkbox复选框特效源码 12种css3实现的模拟3D行星运转效果源码CSS的writing-mode文字排版属性使用教程CSS3中的Media Queries学习笔记CSS3中设置3D变形的transform-style属性详解css 元素选择器的简单实例css布局小技巧分享(必看)
- CSS3中设置3D变形的transform-style属性详解CSS3的常见transformation图形变化用法小结浅谈CSS3中的变形功能-transform功能
- css 元素选择器的简单实例CSS文本超出指定宽度后隐藏并显示为省略号的实现方法CSS3 checkbox复选框特效源码 12种css3实现的模拟3D行星运转效果源码CSS的writing-mode文字排版属性使用教程CSS3中的Media Queries学习笔记详解CSS3的perspective属性设置3D变换距离的方法CSS3中设置3D变形的transform-style属性详解css布局小技巧分享(必看)
- css border属性的使用方法和技巧CSS3中设置3D变形的transform-style属性详解css 元素选择器的简单实例css sprite简单实例CSS3中的Transition过度与Animation动画属性使用要点CSS中:before和:after伪元素使用的奇技淫巧使用CSS绘制基础的对话框图案的代码示例CSS凹型导航按钮效果的实现代码CSS3 magic带64种动画库特效源码CSS文本超出指定宽度后隐藏并显示为省略号的实现方法
- css sprite简单实例CSS3中设置3D变形的transform-style属性详解css 元素选择器的简单实例css border属性的使用方法和技巧CSS3中的Transition过度与Animation动画属性使用要点CSS中:before和:after伪元素使用的奇技淫巧使用CSS绘制基础的对话框图案的代码示例CSS凹型导航按钮效果的实现代码CSS3 magic带64种动画库特效源码CSS文本超出指定宽度后隐藏并显示为省略号的实现方法