H5移动前端完美布局之-margin百分比的使用

一 ,背景

在移动端页面开发我们经常会遇到一件尴尬的事 我们所开发出来的页面跟设计师所给的页面差别很大 再加上移动设备屏幕的大小不一出来的效果更是参差不齐

然后....

当然 现实情况没有这么糟糕...但因为前端页面是是最直接的展示给用户的 如果跟差异太大 这个页面其实是失败的 而设计师也会不断的找你调视觉,所以我们就要最大限度的实现设计 作为设计师和用户的桥梁完美的展现页面...

二,使用百分比

在移动页面的布局上,我们必须要考虑的是移动设备分辨率多样性,使用传统的px来定义一个块儿级元素是不理想的,因为你要为所有分辨率的手机都做适配是一件极其繁琐的事,虽然css3的媒体查询可以实现 ,但我个人认为媒体查询只适合跨平台的兼容 ,比如手机 ,ipad,pc 这三种设备同时实现一个页面并达到响应效果的时候,百分比的使用可以解决这个问题,因为他是相对的 相对于设备的宽度来使页面在不同分辨率的手机上达到完美的响应,接下来我们慢慢聊如何使用百分比

三,百分比+margin 实现百分百响应

在移动端开发的时候 我们的页面初始化的时候都会写上这样一行代码

html,body{width:100%; position:relative;}

将html,body元素的宽度设置为100%,目的是将页面100%撑开达到与设备宽度一致,因为百分比都是相对于父级而言的,将根节点的元素设置为100%,其子元素的宽度都会相对于父级来设置。

接下来我们研究一下margin和百分比的配合使用

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; 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" />
    <meta name="apple-touch-fullscreen" content="YES" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../css/reset.css">
     <style type="text/css">
       html,body{ width: 100%; position:relative;}
      .all{ width: 100%;}
      .header{ width: 100%; background: #ff6666; height: 40px; margin-top: 20%;}
    </style>
  </head>
  <body>

      <div class="all">
        <header class="header"></header>
      </div>

  </body>
</html>

我们使用chrome的模拟器观察页面效果

模拟iphone6效果,设备的宽度是375px,通过侧面的尺度可以看到 我们使用margin-top:20%,header元素距离顶部的高度是75px,我们再改变下页面的宽度看看

当我们把模拟器的宽度拉到500px时候 ,可以发现header距离顶部的高度变为100px;

所以不难发现 当使用百分比来给margin-top赋值的时候 距离顶部的高度其实 是设备宽度的百分比 (375*20%==75, 500*20%==100);同理 margin-left,margin-right,margin-bottom都一样可以这样使用;

四,实战应用

当我们拿到设计师的页面的时候首先要算一把

下面区域距离上面区域的高度是20px 页面总宽度是750px 所以转换成页面的时候 下面的margin-top应该是 (20/750)%; 这样才会在所有设备上达到完全响应的效果。下面是页面最终效果 扫码查看哟.

时间: 2024-10-11 13:51:51

H5移动前端完美布局之-margin百分比的使用的相关文章

H5移动前端完美布局之padding

序上次的提到了H5移动前端完美布局之-margin百分比的使用margin-top(left,right,bottom)的百分比在移动页面布局中对上下左右距离的处理,攻下城外再攘城内今天看看padding在页面布局中所发挥的的作用. 背景 在 平时的开发中我们可能会遇到说一个150*150正方形的块,或者一个button,这样我们就会发现两个问题,如果用px写死的话,那如何响应所有设 备,2如果用百分比的话,宽度可控,那高度呢,今天我们来探讨下经常使用的padding在布局中的强大作用 这个方法

H5横向三栏布局

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>H5横向三栏布局</title>    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"

移动平台3G手机网站前端开发布局技巧

本文转载至:移动平台3G手机网站前端开发布局技巧汇总 - 前端开发-武方博 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相 关的文章,您或许是一名专业的WEB前端工程师,您或许想学习Mobile前端开发方面的技术,如果您被我说中了,呵呵那么这篇文章将为您带来意想不到的 惊喜!当您看到这篇文章时,哥已经默认认为您是一名资深的WEB前端工程师,如果您不是,可能您会遇见许多不理解或听不懂的专业术语或前端技术(包括 WEB.Mobile).但是

谈谈前端怎样布局切图,程序可以方便快捷添加程序

一个合格的前端,布局好的前端页面,应该是可用的,避免需要程序大量二次加工的.工作到现在合作过的前端大概也有上百个了,有合作起来感觉很顺手的,也有很多感觉只能顺手修改调整不能再经前端的手了,差别很大.一个程序员到底想要前端怎么去做,作为一个程序员,实在不想重复去做调整各种各样css,js,有时候总是想象前端稍微懂点程序,有点程序基础就好了,那样他们可能就不会那样布局了,现实很骨感啊,现在对前端要求已经降低了很多,最起码能用. 一.文件夹,文件名 清晰的目录,合理的文件名能减少不少胡思乱想.如:目录

移动平台3G手机网站前端开发布局技巧汇总

移动平台3G手机网站前端开发布局技巧汇总 作者:前端开发-武方博   发布:2011-05-10 09:11   分类:移动开发   阅读:120,618 views   7条评论 您或许正在或准备参与一个WepApp项目,您或许正在Google搜索mobile development相关的文章,您或许是一名专业的WEB前端工程师,您或许想学习Mobile前端开发方面的技术,如果您被我说中了,呵呵那么这篇文章将为您带来意想不到的惊喜!当您看到这篇文章时,哥已经默认认为您是一名资深的WEB前端工程

margin 百分比是按参照物来计算滴 不知道吧?

<style> #demo{ margin: 0 auto; width: 1000px; height: 500px; background: #eee; overflow: hidden; /*垂直显示,改变参照物*/ /*-webkit-writing-mode: vertical-rl;*/ /*writing-mode: tb-rl;*/ } #demo p{ margin:10% 1%; background: #ccc; } </style> <div id=&

前端经典布局(两边固定中间自适应)

一.介绍 下边将介绍前端很流行的布局方式,要求两边固定,中间自适应.比较流行的布局方式有圣杯布局,双翼布局,flex布局.绝对定位布局. 二.圣杯布局 圣杯布局,顾名思义,他具有以下特点: 1.三列布局,中间自适应,两边定宽: 2.中间栏要求在浏览器中优先展示: 接下来我们看实现方式: div我们这样写: <div class="container"> <div class="main">main</div> <div cl

H5(2) 前端基础知识点补充

标签可以拥有属性,属性以键值对的方式出现. 通用属性: class:规定元素的类名   id:规定元素的唯一ID  style:规定元素的样式   title:规定元素的额外信息 HTML格式化: <b>定义粗体文字 <big>定义大号文字,h5中没有了 <em>定义第一着重文字 <i>定义斜体文字 <small>定义小号文字 <strong>定义加重字 <sub>定义下标字 <sup>定义上标字 <in

ASP.NET MVC 搭建简单网站 --1.前端页面布局和基本样式实现

学技术这件事儿本来就是学习现有的东西,然后变成自己的,本文当然也是借鉴的别人的东西,写出来作为一个对知识的巩固.  1.网站用的是MVC模式,新建一个MVC项目,建立一个APP1Controller,作为页面的控制器,首页采用的是传统的frameset布局,没有用到前段的UI框架,项目架构示意图: 后台控制器中目前是这样的一个结构: using System; using System.Collections.Generic; using System.Linq; using System.We