移动端布局基础

257 阅读4分钟

移动端布局

一. 移动端布局基础

为什么要专门学习移动端布局

  • 手机设备分辨率各不相同,不能使用和pc端相同的方法去直接设置页面
  • 移动端使用场景极广,不仅可以用于制作移动端网页,还可以用于制作小程序,app

移动端调试方法

  1. chrome浏览器直接模拟
  2. 使用本地web服务器,通过手机访问服务器直接调试

二. 视口

什么是视口

视口就是浏览器显示内容的屏幕区域

视口分类

  1. 布局视口

    早期使用,直接将PC端缩小放到移动端

  2. 视觉视口

    用户直接看到 的网站区域

  3. 理想视口(重点)

    需要手写meta视口标签通知浏览器操作,设备有多宽,我们布局就有多宽

    这也是我们移动端主要学习的内容

视口的meta标签

<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">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>视口</title>
</head>

标准配置如上

属性作用
width宽度设置的是viewport宽度,可以设置device-width特殊值
initial-scale初始缩放比,大于0
maximum-scale最大缩放比,大于0
minimum-scale最小缩放比,大于0
user-scalable用户是否可以缩放(yes/no,0/1)

三. 二倍图

什么是二倍图,二倍图的用处在哪?

  • 移动端和PC端不同,PC端1px就是一个物理像素,但是移动端1px可能不止一个物理像素
  • 这是因为移动端设备为了更好的显示效果,使用了retina技术,将更多物理像素压缩到一块屏幕内
  • 准备一张100*100的图片,将其强行设置成50*50,以提高清晰程度,这就是二倍图

实例:

        /* 我们需要一个50*50像素(css像素)的图片 直接放到手机里面会放大2倍  100* 100 就会模糊 */
        /* 我们采取的是 放一个 100* 100 图片  然后手动的把这个图片 缩小为 50* 50 (css像素),强行提高像素密度 */
        /* 我们准备的图片 比我们实际需要的大小 大2倍,这就方式就是 2倍图 */
        img:nth-child(2) {
            width: 50px;
            height: 50px;
        }

多倍图

由于并不是所有移动端都是2倍像素密度,所以也有要用到三倍图四倍图的情况

CSS3属性:background-size

用于背景缩放

        div {
            width: 500px;
            height: 500px;
            border: 2px solid red;
            background: url(images/dog.jpg) no-repeat;
            /* background-size: 图片的宽度 图片的高度; */
            background-size: 500px 200px;
            /* 1.只写一个参数 肯定是宽度 高度省略了  会等比例缩放 */
            background-size: 500px;
            /* 2. 里面的单位可以跟%  相对于父盒子来说的 */
            background-size: 50%;
            /* 3. cover 等比例拉伸 要完全覆盖div盒子  可能有部分背景图片显示不全 */
            background-size: cover;
            /* 4. contain 高度和宽度等比例拉伸 当宽度 或者高度 铺满div盒子就不再进行拉伸了 可能有部分空白区域 */
            background-size: contain;
        }

四. 移动端开发方案

  1. 单独制作移动端页面(主流方案)
    • 流式布局
    • flex弹性布局
    • less+rem+媒体查询布局
    • 混合布局
    • VW和VH布局
  2. 响应式页面兼容移动端
    • 媒体查询
    • bootstrap

五. 常见技术解决方案

CSS初始化 normalize.css

优势:

  • 保护了有价值的默认值
  • 修复了浏览器bug
  • 模块化
  • 文档详细

官网地址: necolas.github.io/normalize.c…

CSS3盒子模型

使用box-sizing:border-box可以防止由于内边距和边框的设置撑大盒子影响布局

移动端可以随意使用CSS3新特性,PC端需要考虑兼容性

特殊样式

 /*CSS3盒子模型*/
 box-sizing: border-box;
 -webkit-box-sizing: border-box;
 /*点击高亮我们需要清除 设置为transparent 完成透明*/
 -webkit-tap-highlight-color: transparent;
 /*在移动端浏览器默认的外观在iOS上加上这个属性才能给按钮和输入框自定义样式*/
 -webkit-appearance: none;
 /*禁用长按页面时的弹出菜单*/
 img,a { -webkit-touch-callout: none; }