html手机网站font-size:16em,px、em、rem

px、em、rem

px 是固定的长度单位

em 是父元素的font-size(字体大小)的值,常用来设置首行缩进2em(2字符)

rem 是根节点(html,body)的font-size(字体大小)的值,可以用来做移动端的自适应。

为什么要适配移动端

px像素(pixel)

相对长度单位。相对于显示器屏幕分辨率而言。PC端使用px倒也无所谓,可是在移动端,因为手机分辨率种类颇多,不可能一个个去适配,这时px就显得非常无力,所以就要考虑em和rem

em

相对于父节点的font-size,会有一些组合的问题。比如你把body的font-size定义为50%,一般地会是8px。

那么你在body里字体大小就是  1em=8px

可当你定义了一个div,然后把字体设置成了75%,请问,现在的1em等于多少?

这个时候你会发现,原来他继承了body的值,现在字体更小了,变成了6px!

因为em是相对于父节点的单位,这么嵌套下去,你要数嵌套层级和比例,你会哭的饿......  (幸好出现了rem)

rem

相对长度单位,指相对于根元素的字体大小的单位。

rem只会相对html的值,不会受到父级的影响,这样的好处在于:从em里的例子来讲,1rem始终会等于8px。

使用的时候不需要重新计算rem此时的大小。

rem因为是css3增加的,所以ie8或以下请无视。

屏幕适配的几种方法(流式布局、固定宽度、响应式、通过viewport进行缩放、使用rem)

1、流式布局

在页面布局的时候都是通过百分比来定义宽度,但是高度大都是用px来固定住,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度还是和原来一样,实际显示非常的不协调,这就是流式布局的最致命的缺点

往往只有几个尺寸的手机下看到的效果是令人满意的,其实很多视觉设计师应该无法接受这种效果,因为他们的设计图在大屏幕手机下看到的效果相当于是被横向拉长来一样。

流式布局并不是最理想的实现方式,通过大量的百分比布局,会经常出现许多兼容性的问题,还有就是对设计有很多的限制,因为他们在设计之初就需要考虑流式布局对元素造成的影响,只能设计横向拉伸的元素布局,设计的时候存在很多局限性。

2、固定宽度

把页面设置成320的宽度,超出部分留白,这样做视觉,前端设计都挺挺开心,UI再也不用被流式布局限制自己的设计灵感了,前端也不用流式布局。

但是这种解决方案也是存在一些问题,例如在大屏幕手机下两边是留白的,浪费了宝贵的可用空间(放几个广告也好啊,我错了...)

还有一个就是大屏幕手机下看起来页面会特别小,操作的按钮也很小

3、响应式

响应式这种方式在国内很少有大型企业的复杂性的网站在移动端用这种方法去做,主要原因是工作大,维护性

难,所以一般都是中小型的门户或者博客类站点会采用响应式的方法从web page到web app直接一步到位,因为这样

反而可以节约成本,不用再专门为自己的网站做一个web、app的版本。

4、通过viewport进行缩放

以320宽度为基准,进行缩放,最大缩放为320*1.3 = 416,基本缩放到416都就可以兼容iphone6 plus的屏幕了,这个方法简单粗暴,又高效。

说实话,我觉得他和用接下去我们要讲的rem都非常高效,不过有部分同学使用过程中反应缩放会导致有些页面元素会糊的情况。

5、使用 rem 相对字体

rem 等比例适配所有屏幕,通过js来判断当前屏幕大小,进而设置html的font-size

代码里面rem的值就是Ui设计稿上量的px除以100就是你代码中要写的rem值。

(function(){

var currClientWidth,

fontValue,

originWidth;

originWidth = 750;//ui设计稿的宽度,一般750或640

__resize();

window.addEventListener('resize', __resize, false);

function __resize() {

currClientWidth = document.documentElement.clientWidth;

if (currClientWidth > 768){

currClientWidth = 768;

}

if (currClientWidth < 320){

currClientWidth = 320;

}

fontValue = ((625 * currClientWidth) / originWidth).toFixed(2);

document.documentElement.style.fontSize = fontValue + '%';

}

})();

// 当前假如当前分辨率是375, 设计稿分辨率是750

// 750/375=0.5

// 比例关系是0.5倍

// 再算一下你要换算1rem等于多少px,

// 假如我要100, 100/16=6.25

// 把这个换算的乘以刚才得出的比例

// 0.5*625=312.5

// 最后还拼接了一个百分号 = 312.5%

// 就是在375分辨率下 1rem = 312.5%

// 312.5% * 16px = 50px

前端设置使用 rem 最经典代码

下面代码在是中国平安工作时,身边的一个同事写的,兼容性特别好,移动端建议使用。

(function(doc, win) {

var docEl = doc.documentElement,

resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',

recalc = function() {

var clientWidth = docEl.clientWidth;

if (!clientWidth) return;

docEl.style.fontSize = 50 * (clientWidth / 375) + 'px';

};

if (!doc.addEventListener) return;

win.addEventListener(resizeEvt, recalc, false);

doc.addEventListener('DOMContentLoaded', recalc, false);

})(document, window)

代码说明:

docEl.style.fontSize = 50 * (clientWidth / 375) + 'px';

例如:手机竖屏的宽度为 750px,则 fontSize = 50 * (750 / 375) = 100px

像素就可以直接使用rem,比如 font-size: 0.2rem;  即 font-size: 20px;

rem 做移动端适配

一般长度最好是除得尽的数值,例如40,50。

mimvp blog

var html = document.documentElement;

var htmlWidth = document.documentElement.clientWidth;

//html.style.fontSize = htmlWidth/27+'px'; //如:设计图1080宽度,将屏幕分为27份,每份为设计图的40px

html.style.fontSize = htmlWidth/15+'px'; //如:设计图750宽度,将屏幕分为15份,每份为设计图的50px

*{

margin: 0;

padding: 0;

list-style: none;

}

.box{

width: 7.5rem; /* 相当于设计图上的7.5*50px 设置的值=设计图上的长度/每份的长度 */

height: 2.5rem; /* 相当于设计图上的2.5*50px */

border: 1px solid #000;

}

代码说明:

//html.style.fontSize = htmlWidth/27+'px'; // 如:设计图1080宽度,将屏幕分为27份,每份为设计图的40px

html.style.fontSize = htmlWidth/15+'px';   // 如:设计图750宽度,将屏幕分为15份,每份为设计图的50px

width: 7.5rem;         /* 相当于设计图上的7.5*50px     设置的值=设计图上的长度/每份的长度 */

height: 2.5rem;      /* 相当于设计图上的2.5*50px  */

参考推荐:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1至9填入九个方框内_防水涂料和施工堵漏的“五大技巧”和“九个细节”

防水涂料和施工堵漏的“五大技巧”和“九个细节”很多业主会在留言里问我家里水管堵了、房顶渗水怎么办&#xff0c;所以防水问题不可忽视。让您住的安心&#xff0c;您楼下的邻居也住的安心。对于防水问题&#xff0c;一定要在最初进行装修的时候就特别注意。下面这些是专业人…

限制 计算机中 某用户上网 win7,利用win7限制上网时间的方法

随着电脑的普及&#xff0c;很多家长为了让自己的孩子能有更广泛的知识&#xff0c;都给自己的孩子买了电脑&#xff0c;可现在很多孩子使用电脑却很少耗费在学习上&#xff0c;更多的时间是在娱乐&#xff0c;这样不仅影响学习而且还影响着视力&#xff0c;这样的问题相信困扰…

【ZOJ - 2976】Light Bulbs (枚举,暴力)

题干&#xff1a; Wildleopard had fallen in love with his girlfriend for 20 years. He wanted to end the long match for their love and get married this year. He bought a new house for his family and hired a company to decorate his house. Wildleopard and his…

dataframe去重复 python_python – 在DataFrame中组合重复的列

如果我的数据框具有包含相同名称的列,是否有办法将具有相同名称的列与某种功能(即总和)组合在一起&#xff1f;例如&#xff1a;In [186]:df["NY-WEB01"].head()Out[186]:NY-WEB01 NY-WEB01DateTime2012-10-18 16:00:00 5.6 2.82012-10-18 17:00:00 18.6 12.02012-10…

为什么计算机编程以英语为主,为什么做编程都用英文,中文不行吗?听程序员解释完,总算明白了...

今天我们科普的话题是&#xff1a;为什么做编程都用英文&#xff0c;中文不行吗&#xff1f;听程序员解释完&#xff0c;总算明白了不知道大家最近有没有追过一部电视剧&#xff0c;它是《亲爱的热爱的》&#xff0c;由李现和杨紫主演的。主要讲述了这对情侣发生的浪漫爱情故事…

【HRBUST - 1613】迷宫问题 (bfs)

题干&#xff1a; 小z身处在一个迷宫中&#xff0c;小z每分钟可以走到上下左右四个方向的相邻格之一。迷宫中有一些墙和障碍物。 同时迷宫中也有一些传送门&#xff0c;当小z走到任意一个传送门时&#xff0c;可以选择传送到其他任意的传送门(传送是不花费时间的)&#xff0c;…

eclipse 跑maven命令_eclipse中运行maven命令没有反应,console也不出现信息

eclipse的maven项目中&#xff0c;在run as/Debug as 执行maven命令的时候发现毫无反应&#xff0c;console也不打印信息原因是因为没有传参数&#xff0c;解决办法如下&#xff1a;1.打开eclipse的window菜单&#xff1a;Preferences -->?Java?--> Installed JREs2.选…

html的技术标准网站,HTML5标准最新技术预览

已经存在近十年的HTML4已经成为不断发展的Web开发领域的瓶颈&#xff1b;HTML5标准在此时显得尤为重要。每天都有新颖而创新的网站出现&#xff0c;全方位地拓展HTML的边界。Web开发者正在寻求新的技术&#xff0c;提供更强大的功能&#xff0c;那些因为脚本语言和浏览器的限制…

【Hihocoder - offer编程练习赛86 - C】跳数游戏(STLset或map预处理,dp)

题干&#xff1a; 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个长度为N的数组A1, A2, ... AN&#xff0c;请你判断其中有几个元素Ai按如下跳跃规则能跳到最后一个元素AN。 假设你当前位于Ai&#xff0c;跳跃的规则是&#xff1a; 如果这一步是第奇…

linux+平均磁盘请求数量_Linux 查看磁盘IO并找出占用IO读写很高的进程

背景-线上告警线上一台服务器告警&#xff0c;磁盘利用率 disk.util > 90&#xff0c;并持续告警。登录该服务器后通过 iostat -x 1 10 查看了相关磁盘使用信息。相关截图如下&#xff1a;# 如果没有 iostat 命令&#xff0c;那么使用 yum install sysstat 进行安装# iostat…

计算机网络技术实验,计算机网络技术实验

计算机网络技术实验 实 验 一 (2课时) 课题(项目)名称: 基本网络命令 计划学时: 2学时 实验目的 1. 了解网络命令的基本使用方法 2. 掌握常用网络命令的应用 3. 掌握网络通达性的基本测试方法 实验要求 1. 全面了解各种网络命令 2. 对常用的网络命令&#xff0c;上机测试运行 3…

【7-10 PAT】树的遍历(给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。)

题干&#xff1a; 给定一棵二叉树的后序遍历和中序遍历&#xff0c;请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 解题报告&#xff1a; dfs求出这棵树来&#xff0c;然后bfs求层序遍历就行了。 AC代码&#xff1a; #include<cstdio> #include<…

html div分钟刷新一次啊代码_接口测试平台代码实现57首页重构5

本节我们接着开发首页&#xff0c;主要内容是 让左侧的请求记录和右侧的请求模块 联动起来。具体联动需求&#xff1a;右侧请求一次之后&#xff0c;左侧生成记录点击左侧记录&#xff0c;右侧则会显示这次记录的请求数据我们本节课的内容是想办法实现1-生成记录。我们知道&…

会计专业领域计算机应用系统,信息技术在会计专业领域中的应用

在当今这个信息时代,信息技术对会计专业产生了重大的变革。本文在详细分析会计信息化特征的基础上,阐述了由于信息技术应用对会计职能产生的影响,并提出了如何更好的在会计专业领域推广信息技术。信息技术在会计专业领域中的应用郑晨(福建农林大学计算机与信息学院&#xff0c;…

【ZOJ - 3703】Happy Programming Contest(带优先级的01背包,贪心背包)

题干&#xff1a; In Zhejiang University Programming Contest, a team is called "couple team" if it consists of only two students loving each other. In the contest, the team will get a lovely balloon with unique color for each problem they solved.…

固定 顶部_纹络型温室大棚顶部通风样式及效率对比

纹络型温室大棚是一种使用玻璃作为覆盖材料的温室大棚&#xff0c;该种温室大棚由于抗风雪能力强&#xff0c;环境控制能力强、使用年限长&#xff0c;目前在我国的南北地区大量建造。由于该型号的玻璃温室大棚单体占地面积能够达到几十亩地&#xff0c;因此单靠墙面通风无法满…

微型计算机智能体重评测,荣耀智能体脂秤WiFi版评测:17项身体指标 比你更懂你...

原标题&#xff1a;荣耀智能体脂秤WiFi版评测&#xff1a;17项身体指标 比你更懂你[PConline 评测]俗话说冬天不减肥&#xff0c;夏天徒伤悲&#xff0c;每个人都希望拥有穿衣显瘦、脱 衣有肉的完美身材。但往往理想很丰满&#xff0c;现实很骨感&#xff0c;很多人都陷入减肥的…

【ZOJ - 3211】Dream City (01背包类问题,贪心背包)

题干&#xff1a; JAVAMAN is visiting Dream City and he sees a yard of gold coin trees. There are n trees in the yard. Lets call them tree 1, tree 2 ...and tree n. At the first day, each tree i has ai coins on it (i1, 2, 3...n). Surprisingly, each tree i c…

gitlable iphone_使用gitlab ci构建IOS包并发送通知消息到企业微信

在之前的文章中&#xff0c;我们介绍了使用gitlab ci构建Android包的方法。今天我们介绍使用gitlab ci如何构建IOS包&#xff0c;并且在打包成功或者失败时&#xff0c;如何将消息通知到企业微信。如果对gitlab ci还不熟悉的&#xff0c;可以参考之前的文章使用gitlab ci构建An…

2020计算机网络基础与应用,2020年国防科技大学硕士研究生考试F1107计算机网络基础考试大纲...

全国各省市院校2020年硕士研究生考试大纲汇总(持续更新中)》》》2020年全国硕士研究生入学考试命题标准大纲已于7月8日正式公布&#xff0c;接下来全国各研招院校将陆续发布2020考研专业课大纲。以下是中公考研小编整理的“2020年国防科技大学硕士研究生考试F1107计算机网络基础…