首页 > 代码库 > 关于响应式布局的个人见解

关于响应式布局的个人见解

  响应式布局,就是一个网站可以兼容多类型终端,但不是需要为每一个终端做一个特定的网页版本。响应式布局可以为不同终端的用户提供更舒适的界面和用户体验,目前越来越多的大屏幕移动设备的出现,响应式也随之成为开发人员广泛使用的WEB技术。

  优点:

    面对不同分辨率设备灵活性强
 
    能够快捷解决多设备显示适应问题
  缺点:
    兼容各种设备工作量大,效率低下
 
    代码累赘,会出现隐藏且无用的元素,加载时间会加长
 
    其实这是一种折中性质的设计解决方案,受多方面因素影响而达不到最佳效果
 
    在一定程度上改变了网站原有的布局结构,会有用户混淆的情况出现
  说到响应式布局,就不得不想到CSS3的Media Query,叫做媒介查询,Media Query容易使用,便捷而且强大,是制作响应式布局的以后一个利器,使用这个工具可以非常便捷的设计出各种既丰富又使用性很强的界面。
  媒介查询让CSS可以更精确作用于不同的媒介类型和同一媒介的不同条件。媒介查询的大部分媒介特性都接受min和max用于表达”大于或等于”和”小于或等于”。比如:width有min-width和max-width,可以用在CSS中的@media和@import规则上,也可以用在HTML和XML中。通过这个属性,我们可以很方便的在不同的设备,特别是移动设备下实现丰富的界面,将会运用更加的广泛。
 
  用法与结构
    1.在link中使用@media
      <link rel=“stylesheet” type=“text/css” media=“only screen and (max-width: 480px),only screen and (max-device-width: 480px)” href=http://www.mamicode.com/“link.css”/>
      在以上的用法中,only可以省略,限于计算机显示器。第一个条件中的max-width是指所要渲染的界面最大宽度,而max-device-width则是设备的最大宽度。
 
    2.在样式表中内嵌@media
      @media ( min-device-width:1024px ) and ( max-width:989px ),screen and ( max-device-width:480px ),( max-device-width:480px ) and ( orientation:landscape ),( min-device-width:480px ) and ( max-device-width:1024px ) and ( orientation:portrait ) {}
        在本实例中,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。
 
 
   通过media query实现响应式布局
    首先先定义在标准浏览器下的固定宽度(假设浏览器分辨率为1024px,宽为980px),然后用Media Query来监测浏览器的尺寸变化,当浏览器的分辨率小于1024px的时候,则通过Media Query预设的样式表来将页面的宽度设置为百分比显示,这样子页面的结构元素就会根据浏览器的的尺寸来进行相对应的调整。同理,当浏览器的可视部分改变到某个值的时候,页面的结构元素根据Media Query预设的层叠样式表来进行相对应的调整。
    我们也可以在页面的<head></head>中加入<meta name=“viewport” content=“width=device-width; initial-scale=1.0”>这个属性是在移动设备上设置原始大小显示和是否缩放的声明。
    参数:
      width – viewport的宽度
      height – viewport的高度
      initial-scale – 初始的缩放比例
      minimum-scale – 允许用户缩放到的最小比例
      maximum-scale – 允许用户缩放到的最大比例
      user-scalable – 用户是否可以手动缩放
    media query在大部分浏览器中是被支持的,而在少部分浏览器则不受支持,比如IE浏览器,在使用时需要使用Media Query Javascript解决。
      <!–[if lt IE 9]>
      <script src=http://www.mamicode.com/css3-mediaqueries.js”></script>
      <![endif]–>
    

关于响应式布局的个人见解