移动端单位介绍

前言

在页面整体布局中,页面元素的尺寸大小(长度、宽度、内外边距等)和页面字体的大小也是重要的工作之一。一个合理设置,则会让页面看起来层次分明,重点鲜明,赏心悦目。反之,一个不友好的页面尺寸和字体大小设置,则会增加页面的复杂性,增加用户对页面理解的复杂性;甚至在当下访问终端(iPhone、iPad、PC、Android…)层出不穷的今天,适应各式各样的访问终端,将成为手中的一块“烫手的山芋”。所以在近几年,“九宫格”式的“流式布局”再度回归。为了提供页面布局,及其它的可维护性、可扩展性,我们尝试将页面元素的大小,以及字体大小都设置为相对值,不再是孤立的固定像素点。使其能在父元素的尺寸变化的同时,子元素也能随之适应变化。以及结合少量最新CSS3的@media查询,来实现“响应式布局”,bootstrap这类CSS框架大势兴起。

然而在CSS中,W3C文档把尺寸单位划为为两类:相对长度单位绝对长度单位

然而相对长度单位按照不同的参考元素,又可以分为字体相对单位和视窗相对单位

字体相对单位有:em、ex、ch、rem;

视窗相对单位则包含:vw、vh、vmin、vmax几种

绝对定位则是固定尺寸,它们采用的是物理度量单位:cm、mm、in、px、pt以及pc。但在实际应用中,我们使用最广泛的则是em、rem、px以及百分比(%)来度量页面元素的尺寸。

px: 绝对(固定)单位
缺点:任何情况下都是固定值,会导致布局在不同尺寸下的设备错位

%:相对定位(会有影响发生变化)相对于父级(自身)大小进行定位
缺点:能确定范围的还是比较好计算的,对于不太好确定值得地方不好使用百分比,并且会导致变形,高度一般不好控制

em: 相对定位 (会有影响发生变化) em=当前字体大小
缺点:会根据当前容器字体大小发生变化,假如每个容器字体大小不一致,那么计算会非常麻烦

rem 
r==root
em=字体大小 font-size
rem 相对单位
只依赖于html字体大小

可以认为它没啥缺点吧!反正我个人还是挺喜欢的

动态的修改根元素的font-size:

需要通过js去控制:

/*获得页面宽度后动态修改html上的fontsize
* 320为iphone5设计稿下的页面宽度,如下设置后页面的页面在iphone5等宽屏幕上html
* 的font-size会变为20px,即 1rem = 100px    1px=0.05rem
* 所以设置元素尺寸的时候,如果测量设计稿 15px  则需设置尺寸为 (0.05*15)rem = 0.75rem
*/

!(function(doc, win) {
    var docEle = doc.documentElement,
        evt = "onorientationchange" in window ? "orientationchange" : "resize",
        fn = function() {
            var width = docEle.clientWidth;
            console.log(width)
            width && (docEle.style.fontSize = 20 * (width / 320) + "px");
        };

    win.addEventListener(evt, fn, false);
    doc.addEventListener("DOMContentLoaded", fn, false);

}(document, window));

将上面的文件引入到当前项目中,

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
        <title>移动端布局</title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            ul{
                list-style: none;
            }
            .clearfix:after{
                content: ‘‘;
                display: block;
                clear: both;
            }
            html{
                width: 100%;
                height: 100%;
                /*font-size: 30px;*/
                overflow: hidden;
            }
            body{
                width: 100%;
                height: 100%;
                overflow: auto;
            }
            .head-box{
                width: 100%;
                height: 4rem;
                background-color: red;
                position: absolute;
                top: 0;
                left: 0;
            }
            .list{
                margin-top: 4rem;
                font-size: 1.5rem;
            }

            .list .item{
                float: left;
                width: 7rem;
                height: 7rem;
                border: 1px solid black;
                margin: 0.25rem;

            }

        </style>
    </head>
    <body>

        <header class="head-box">
            <div class="head-top"></div>
            <div class="head-bottom"></div>
        </header>

        <ul class="list clearfix">
            <li class="item">1111111</li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
        </ul>

    </body>
    <script src="./js/resize.js"></script>
</html>

运行代码看效果吧!!

原文地址:https://www.cnblogs.com/liuafan/p/9525926.html

时间: 2024-12-24 08:34:08

移动端单位介绍的相关文章

02-移动端单位介绍

前言 在页面整体布局中,页面元素的尺寸大小(长度.宽度.内外边距等)和页面字体的大小也是重要的工作之一.一个合理设置,则会让页面看起来层次分明,重点鲜明,赏心悦目.反之,一个不友好的页面尺寸和字体大小设置,则会增加页面的复杂性,增加用户对页面理解的复杂性:甚至在当下访问终端(iPhone.iPad.PC.Android-)层出不穷的今天,适应各式各样的访问终端,将成为手中的一块"烫手的山芋".所以在近几年,"九宫格"式的"流式布局"再度回归.为了

em px pt单位介绍及换算

PX\EM\PT单位介绍 px Pixel单位名称为像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐:em单位名称为相对长度单位.相对于当前对象内文本的字体尺寸,国外使用比较多,这里em与html <em>标签的"EM"拼写完全相同,而这里em作为单独文本单位.pt单位名称为点(Point),绝对长度单位一般老版本的table使用长度大小单位但是现在基本上没有使用. 1. 以前IE无法调整那些使用px作为单位的字体大小,但现在几乎IE都支持 在这里也推

游戏服务端架构 介绍

游戏服务端架构 介绍 端游.手游服务端常用的架构是什么样的? http://www.zhihu.com/question/29779732 根据知乎问答文章整理而成. 作者:韦易笑 谢邀,手游页游和端游的服务端本质上没区别,区别的是游戏类型. 类型1:卡牌.跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器: 登录时可以使用非对称加密(RSA, DH),服务器根据客户端uid,当

深度讲解VIEWPORT和PX是什么?移动端单位px,em,rem

刚开始接触移动页面重构,是不是很迷惑应该按照多大的尺寸制作?320.640还是720?按照640的设计稿重构完页面,是不是还需要写其他尺寸来适配不同的屏幕大小?—— 这源于对viewport和px的不了解. 已经重构了好多移动页面,但是对为什么要按照640的大小来设计页面,不清楚答案.给元素赋予固定的像素值,但是奇怪的是在不同的手机里看起来都差不多大小,不需要另外去适配,真是太爽了.为什么?不知道耶. ——这源于对viewport和px的不了解. 先来罗列下学习移动页面重构的过程中可能看到过迷糊

MTOM文件的续传功能(三) Client 端程序介绍

使用WSE 3.0 MTOM的技术,让Web Service也可以传文件,而且传输更有效率,这篇将带到Client端的部分说明. 上一篇写了MTOM Server端的部分,这次要写的就是Client端的程序要怎么跟Server交互,也就是最后一篇,废话不多说,马上进入正题,Client端的程序跟Server端一样,要用WSE的Configuration Tool来设定,而Web Service是存在Web.Config,那Client端的WinForm就是存在app.config ?xml ve

移动端单位解析

手机端开发单位到底用什么? 目前有3种,px,em ,rem PC端大部份是用px单位,小部分用em单位,而移动端,请全部用rem单位吧.目前大部份设备,包括但不限于iOS 5+.Android 2.3+.Window Phone 8+都是可以兼容的. rem是什么? 相对长度单位,相对于根元素(即html元素)font-size计算值的倍数. rem用法很简单,就是根标签html设置文字大小后(不设置的话,大部份浏览器默认为16px),其他标签设置rem都是html大小的倍数. html{ f

最全的CSS尺寸单位介绍

前端开发过程中,尺寸单位是我们必须用到的,下面我们对css中常见的几种尺寸单位px,em,rem,rpx进行逐一介绍在这之前,需要先对几个概念进行普及介绍 基本概念 (以下概念读起来可能有些晦涩,如果看不懂也没关系) 像素 它不是自然界的物理长度,指基本原色素及其灰度的基本编码. css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的.?在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点.?在早先的移动设备中,屏

移动端 单位 rem

rem是指相对于根元素的字体大小的单位(相对单位) rem和em的区别,em相对于父元素的字体大小的单位.rem相对于根元素html字体大小计算, px是一个绝对的单位. 所以rem可以实现强大的屏幕适配布局 例如: html{ font-size:20px; } .btn{ width:6rem; height:3rem; } //<div class='btn'></btn>那么.btn的宽度为120px;高度为60px; 所以在做移动端适配的时候就要根据不同分辨率设置font

移动端事件介绍

阅读目录 一:理解click的300ms的延迟响应 二:手势事件的介绍 三:触摸事件的介绍 四:基本知识点 1.判断是否为iPhone 2.自动大写与自动修正 3.禁止 iOS 弹出各种操作窗口 4. 禁止用户选中文字 5. 关于 iOS 系统中,中文输入法输入英文时,字母之间可能会出现一个六分之一空格 6. Andriod 上去掉语音输入按钮 7. 判断是否为微信浏览器: 五:屏幕旋转事件(onorientationchange) 回到顶部 一:理解click的300ms的延迟响应 Click