zoukankan      html  css  js  c++  java
  • 什么是响应式网页设计?

    响应式网页设计是Ethan Marcotte在去年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念可以说是为移动互联网而生的!

    怎么做?

    其实响应式网页的实现很简单,都是大家熟悉的技术。

    media query(媒体查询)

    因为现在主流的智能终端都是基于iOS和Android的,而它们自带的浏览器都是基于webkit内核,所以我们可以完全使用viewport属性和media query技术实现网站的响应性:

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

    后面的initial-scale表示初始缩放,maximum-scale表示最大缩放比例,1意味着不能进行缩放。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    /* for 240 px width screen */
    @media only screen and (max-device-240px){
        selector{
        }
    }
     
    /* for 360px width screen */
    @media only screen and (min-device-241px) and (max-device-360px){
        selector{
        }
    }
     
    /* for 480 px width screen */
    @media only screen (min-device-361px)and (max-device-480px){
        selector{
        }
    }

    当然依靠屏幕宽度来进行适配是最简单的方法,media query有很多参数可以使用比如orientation、aspect-ratio等。

    其实,media query是响应式网页设计中被用到最多的技术。

    不足之处

    如果你关注网站性能之类的话,可能已经发现了一些问题:

    • 加载很多不需要的资源,比如多余的图片和样式内容
    • 带宽限制
    • 移动终端的内存和CPU限制
    • 图片大小和屏幕大小不匹配

    嗯,任何一个方案都不是完美的,但也不会很糟糕。下面我们会提到一些可行的优化方案:

    响应式网页设计工具与资源

    国外在响应式网页设计上已经走的很远了,已经有很多工具和资源供我们参考和使用:

    CSS 框架

    • 320 and Up
    • Mobile Boilerplate
    • Golden Grid System
    • Gridless
    • Less Framework
    • 1140 CSS Grid System
    • Fluid 960 Grid System
    • SimpleGrid
    • Skeleton

    实用工具

    • Respond.js,让IE6-8支持meidia query
    • Responsive Design Testing 简单而方便的测试网站的响应性的工具,输入网址即可看到网站在不同分辨率下的表现
    • Resize My Browser 缩放浏览器工具,不过不支持chrome和opera浏览器
    • Media Query Bookmarklet 顾名思义,这是一个关于media query的书签工具
    • ProtoFluid 在线查看和调试网站对移动终端兼容性的工具,很赞
    • ScreenFly 和ProtoFluid类似
    • responsivepx 更直观的测试网站对不同分辨率的适配性

    争论和总结

    响应式网页设计被提出以来,争论就不断,其实核心问题只有两个个:太多的资源请求和有限的终端支持之间的矛盾、响应式的网页设计和移动终端在用户体验和视觉风格上的差异。前者不能容忍在弱小的手机/平板上通过龟速的3G/2G网络来加载一个笨重的PC端页面,而后者纠结响应式网站不像手机网站。

  • 相关阅读:
    shutil文件去重模块
    Nexus构建npm、yum、maven私有仓库
    centos7添加自定义服务到systemctl
    Sonatype nuxus私有仓库介绍
    rancher单节点备份和恢复
    rancher证书过期X509:certificate has expired or is not ye valid
    清理docker日志
    mysql 9 hash索引和B+tree索引的区别
    mysql 8 索引
    mysql 7 慢查询+慢查询工具
  • 原文地址:https://www.cnblogs.com/semcoding/p/3511588.html
Copyright © 2011-2022 走看看