响应式设计

背景

Responsive Web Design by ETHAN MARCOTTE May 25, 2010中谈到,在Web端,我们的工作通常是“转瞬即逝”的,把东西移来移去,适应不同窗口的宽度,用户偏好设置。面对这么多特殊的问题,我们要思考的是,如何使设计更加地可适配。

方式

  1. 打好地基:flexible foundation 通过fluid grid,利用flexible image,网页可以比较弹性化。 其中,flexible image很有意思,给图片设置max-width:100%,图片在渲染的时候,如果外部容器不够大,它会相应的缩小,beautiful!虽然IE又烦人了,可以参考 兼容性方案。

  2. 筛选:media query 但是,这还远远不够,当屏幕特别小,桌面版的也是不能够完全适配到移动端的。 就像你曾经用过的media=“screen”,media=“print”,CSS3提出media query,可以探测不同屏幕尺寸,并加载相应的css文件,或者应用不同的CSS属性。

     方法一:
     <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 480px) and (resolution: 163dpi)" href="shetland.css" />
    
     方法二:
     @media screen and (max-device-width: 480px) {
     .column { float: none; }
     }
    

3.特殊处理

  • display:none 在移动端,可以考虑不展示一些不必要的内容
  • mete标签 大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率。你可以使用视图的meta标签来进行重置。下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。在标签里加入这个meta标签。

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

  • 宽度使用百分比,字体使用em
  • 据说可以这样,没有试过 用::before和::after伪元素 +content 属性来动态显示一些内容或者做其它很酷的事情,在 CSS3 中,任何元素都可以使用 content 属性了,这个方法就是结合 css3 的 attr 属性和 HTML 自定义属性的功能:

    HTML 结构:

    <img src="image.jpg" data-src-600px="image-600px.jpg" data-src-800px="image-800px.jpg" alt="">

    CSS 控制:

    @media (min-device-width:600px) {   
       img[data-src-600px] {   
           content: attr(data-src-600px, url);   
       }
    }
    @media (min-device-width:800px) {    
       img[data-src-800px] {        
           content: attr(data-src-800px, url);   
       }
    }
    

调试工具,万能的chrome

以上 是在做campus.meituan.com 移动端简单适配了解到的,还很浅,希望以后可以完善。

参考:

Responsive Web Design

FLUID IMAGES

折腾响应式布局设计

results matching ""

    No results matching ""