其实rem不只是能应用到字体上面,还可以应用到长度和宽度上面,接下来看下我做的一个项目的首页吧。
Demo
由于这个项目我设置了最大的宽度限制是640px,最小限制是320px,大家可以改变浏览器的分辨率或者通过手机访问看看效果。基本上在不同分辨率下都是差不多的展示效果,而且在手机移动终端下都是100%的撑开。这种响应式的效果,我想应该是最符合现在移动终端多样化的需求的,如果只是做几个特别适应的尺寸,例如320、480、340、600这种特定的尺寸,那真是要累死前端开发的同学了。但是如果用rem来实现就可以不用考虑上诉的问题也可以达到自适应了。
这个效果对设计师的要求也是非常严格的,例如你需要指定一个规范的宽度进行设计,我们的设计师是按照640的宽度去设计的,实际设计图的宽度是640*2这样做的目的是为了在移动端能高清显示。小图标是采用CSS3的图标字体,不得不说这是个非常好的东西。
设置对应的响应式的html rem比例
我们平常在使用长度单位都会使用px,但是在做上面的响应式的时候,需要用rem或者百分比的单位,大家可以看我的Demo代码。在上篇文章介绍了rem的字体设置计算方法:
- 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;
- }
通过设置html的font-size值来控制全局的rem输出,这段代码其实是这个rem的精髓所在,我在我的页面中设置了如下的代码来控制不同设备下的字体大小显示使其达到自适应:
- html {
- font-size: 62.5%;
- }
- @media only screen and (min-width: 481px){
- html {
- font-size: 94%!important;
- }
- }
- @media only screen and (min-width: 561px){
- html {
- font-size: 109%!important;
- }
- }
- @media only screen and (min-width: 641px){
- html {
- font-size: 125%!important;
- }
- }
看上面的代码,可能大家会觉得为什么要这样设置呢,其实这个是根据许多测试推算出来的,上面代码如果要转换城px会变成这样:
- html {
- font-size: 62.5%; /* 10÷16=62.5% */
- }
- @media only screen and (min-width: 481px){
- html {
- font-size: 94%!important; /* 15.04÷16=94% */
- }
- }
- @media only screen and (min-width: 561px){
- html {
- font-size: 109%!important; /* 17.44÷16=109% */
- }
- }
- @media only screen and (min-width: 641px){
- html {
- font-size: 125%!important; /* 20÷16=125% */
- }
- }
给margin padding 设置rem
上面展示的是怎么通过计算获取到不同分辨率下的html font-site百分比的值。实际开发如果设计师是按照640的宽度去设计的,我们就按照最大的640去切图,切图的时候如果我们要设置margin怎么banner,设计图的值加入是10px的间距,我们通过640的比例去计算:
- margin-top:.5rem; /*10 ÷ 20 = 0.5*/
- padding-top:1rem /* 20 ÷ 20 =1 */
上面分别是设计图上的间距10px和20px计算成rem的方法,大家可以以此类推,如果你的设计图是640设计的就可以用上面的方法,反正每次以最大的值来计算就可以了。
给height width 设置rem
实际开发中大家最常设置的估计就是height width值了,为了做到各个设备下长度自己相应,许多开发人员会用百分比来做,这个是没有问题,但是其实很多场景下用rem比百分比更加灵活,在我实际开发中,一般我只在大块的div布局里面用百分比,元素的设置一般都用rem来。例如:
- height:100px; /* 100 ÷ 20 = 5rem;*/
- width:50px; /* 50 ÷ 20 = 2.5rem;*/
给border 设置rem
其实就连border我们也可以用rem来做,但是貌似现在的安卓手机对border用rem单位有一小部分不支持,在我开发测试发现了,高版本的安卓浏览器支持,但是低版本的有许多都不支持,具体要不要使用就看你们自己的情况。
- border:.2rem solid #cccccc;
需要注意的是:
网页要多终端匹配,传统字体单位px满足不了,考虑使用rem单位
rem 是相对于根节点的!
为此,如下代码,先让根节点单位为10px,之后就方便使用rem了
CSS Code复制内容到剪贴板- html { font-size: 62.5%; }
- body { font-size: 1.4rem; } /* =14px */
- h1 { font-size: 2.4rem; } /* =24px */
非常好的是,rem ie9支持
如要兼容ie9以下浏览器,可
CSS Code复制内容到剪贴板- html { font-size: 62.5%; }
- body { font-size: 14px; font-size: 1.4rem; } /* =14px */
- h1 { font-size: 24px; font-size: 2.4rem; } /* =24px */
总结
rem的使用其实我可能是只是总结了大家比较常用的一些属性,其实他的范围肯定不止是这么多,实际的项目开发中我相信大家在使用他的过程会发现许多惊喜的,非常希望大家留言讨论这一章的内容。有什么问题我会第一时间反馈。
CSS3,rem,响应式,布局
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]