我爱编程

响应式网页开发

2018-04-11  本文已影响0人  李华炎

响应式布局

响应式设计的原则

响应式网站设计理念

响应式网站是一个设计理念,它是多项技术的综合体

网站能够自动切换以适应不同分辨率,图像大小和脚本。他应该有一个灵活的网格和布局,图像和CSS能够智能的组合 使用

应用技术

1.flexible grid layout 弹性网格布局

2.flexible image 弹性图片

3.media queries 媒体查询

响应式网站的优点

  • 减少工作量
  • 节省时间
  • 适配所有设备
  • 搜索优化
  • 统计用户访问流量

响应式网站的缺点

  • 会加载更多的样式和脚本资源
  • 设计比较难精准定位和控制
  • 老版本浏览器兼容不好

该如何实现?

css.jpg

媒体查询详解

<style>
    body{
        background-color: pink;
    }

    /*内嵌式*/
    @media screen and (min-width: 992px){
        body{
            background-color: purple;
        }
    }
</style>

<!--外联式 : 外联式要在默认样式的后面-->
<link type="text/css" rel="stylesheet" href="media.css" media="screen and (max-width:480px)" />
<!-- 
css3的使用 

all : 可以省略不写,默认就是all
or  : 逻辑的操作符,代表或,只要匹配一个条件就是true
not :逻辑的操作符,代表非,
and : 逻辑的操作符,代表与,全部条件都要匹配才是true
only:逻辑的操作符, 代表仅仅,为了适配老版本的浏览器
-->
<!-- 1. --> 
@media all and (min-width:800px) and (orientation:landscape) {
    ...
}
等价于下面的
@media and (min-width:800px) and (orientation:landscape) {
    ...
}

<!-- 2. --> 
@media not all and (monochrome) {...}
等价于下面的
@media not (all and (monochrome)) {...}


<!-- 3. --> 
@media not screen and (color), print and (color) {...}
等价于下面的
@media not screen and (color) or print and (color) {...}
等价于下面的
@media (not (screen and (color))), print and (color) {...}

css3媒体属性

  • width : 视口宽度
  • height : 视口高度
  • device-width : 设备屏幕宽度
  • device-height : 设备屏幕高度
  • orientation : 检查设备处于横向还是纵向
  • aspect-ratio : 基于视口宽度和高度的宽高比(width/height) 如:16/9 , 4/3
  • device-aspect-ratio : 渲染表面的宽度,就是设备屏幕的宽度
  • color : 每种颜色的位数 bits 如 :min-color : 16位 ,8位
  • resolution : 检查屏幕或打印机的分辨率 如:min-resolution : 300dpi

viewport视口的概念

视口分 3 种

  1. 布局视口 960px ,布局视口不会被改变的
  2. 可视视口 即设备上可见的视口,使用手指缩放时改变的是可视视口的大小
  3. 理想视口 是指布局视口在一个设备上的最佳尺寸,便于使用浏览器浏览,阅读
<!--  指定下面的代码后,布局视口就成为理想视口,阅读体验会更好,网页不会出现被放到的效果 -->
<meta name="viewport" content="width=device-width"/>

<!--  还可以这样 -->
<meta name="viewport" content="width=device-width,
                               minimum-scale=1.0,   //最小的缩放比例
                               maximum-scale=1.0,   //最大的缩放比例
                               user-scalable=no     //禁用用户缩放
                               " />

响应式网站开发过程

1.分析页面结构

ui设计师根据需求文档做好ui设计图,前端拿到效果图后根据效果图进行页面分析,确定哪些部分可以复用,哪些不能复用。哪些内容是固定尺寸,哪些内容可以自适应等

2.依照设计原则

优先考虑优雅降级(渐进增强不太适合)

案例

案例1:改变浏览器的width加载不同的背景色

  1. media.html文件代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title> 媒体查询</title>
    
        <style>
            body{
                background-color: pink;
            }
    
            /*内嵌式*/
            @media screen and (min-width: 992px){
                body{
                    background-color: purple;
                }
            }
        </style>
    
        <!--外联式-->
        <link type="text/css" rel="stylesheet" href="media.css" media="screen and (max-width:480px)" />
    </head>
    <body>
    
    </body>
    </html>
    

  2. 外联文件media.css

    body{
        background-color: chartreuse;
    }
    

学习响应式开发的参考连接

http://gs.statcounter.com/ 可以按照国家来划分,浏览器使用率
http://caniuse.com/usage-table 浏览器使用统计, 面向世界
http://necolas.github.io/normalize.css/ 在保证各浏览器呈现一致的情况下,保留了各标签元素原有的特点
http://autoprefixer.github.io/ 自动补全各游览器前缀css代码
http://editor.method.ac/ 在线绘制SVG
https://icomoon.io/ 在线绘制SVG
http://dillinger.io/ markdown 文件在线编写
https://tinypng.com/ 图片压png
http://caniuse.com/ 查询属性、标签兼容性
http://www.genymotion.net/ 最快的安卓模拟器
http://owlcarousel.owlgraphic.com/ 幻灯片插件
https://modernizr.com/ 会主动检测浏览器对css3、HTML5等等功能性的支持情况。
http://browsehappy.com/ 最新游览器下载
http://www.browsersync.cn/ 各浏览器终端同步测试
http://browserhacks.com/ 各浏览器hack写法查询
https://github.com/aFarkas/html5shiv 让老版本浏览器支持HTML5新标签
https://github.com/scottjehl/Respond IE6-8支持媒体查询min/max-width特性
https://modernizr.com/ 检测浏览器是否支持某特性

链接:http://www.imooc.com/article/12343#parent_6

上一篇 下一篇

猜你喜欢

热点阅读