响应式布局(一)

1、设置meta标签

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

user-scalable = no 属性能够解决 iPad 切换横屏之后触摸才能回到具体尺寸的问题

 

2、通过媒介查询来设置样式(Media Queries)

假如一个终端的分辨率小于 980px,可以这样写:

@media screen and (max-width: 980px) { 
#head { … } 
#content {} 
#footer {} 
}

这里的样式就会覆盖上面已经定义好的样式。

 

3、设置多种试图宽度

假如要设定兼容 iPad 和iPhone的视图,可以这样设置:

/** iPad **/ 
@media only screen and (min-width: 768px) and (max-width: 1024px) {} 
/** iPhone **/ 
@media only screen and (min-width: 320px) and (max-width: 767px) {}

 

4、需要注意的点

(1)宽度需要使用百分比

(2)处理图片缩放的方法

可以使用百分比,但这样不友好,会放大或者缩小图片。

可以尝试给图片指定的最大宽度为百分比,假如图片超过了,就缩小;假如图片小了,就原尺寸输出。

img { width: auto; max-width: 100%; }

 

用 ::before 和 ::after 伪元素 +content 属性来动态显示一些内容或者做其它很酷的事情,在css3中,任何元素都可以使用 content 属性了,这个方法就是结合 css3 的 attr 属性和 HTML 自定义属性的功能: HTML 结构:

<img src="image.jpg" alt="响应式布局" 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);
    }
}   

(3)其他属性

例如 pre ,iframe,video 等,都需要和img一样控制好宽度。对于table,建议不要增加 padding 属性,低分辨率下使用内容居中:

table th, table td { padding: 0 ; text-align: center; }

 

posted @ 2016-08-25 11:22  柒叶  阅读(205)  评论(0编辑  收藏  举报