利用@media screen实现网页布局的自适应

经常为不同分辨率设备或不同窗口大小下布局错位而头疼,可以利用@media screen实现网页布局的自适应,
优点:无需插件和手机主题,对移动设备友好,能够适应各种窗口大小
只需在CSS中添加@media screen属性,根据浏览器宽度判断并输出不同的长宽值
以下是针对自用主题而写的css,对宽度768以下设备只保留主要文章框架,以便在有限的空间里获得最佳阅读体验

@media screen and (min-width:1200px){
	#page{ width: 1100px; }#content,.div1{width: 730px;}#secondary{width:310px}
}

@media screen and (min-width: 960px) and (max-width: 1199px) {
	#page{ width: 960px; }#content,.div1{width: 650px;}#secondary{width:250px}select{max-width:200px}
}
@media screen and (min-width: 768px) and (max-width: 959px) {
	#page{ width: 900px; }#content,.div1{width: 620px;}#secondary{width:220px}select{max-width:180px}
}
@media only screen and (min-width: 480px) and (max-width: 767px){
	#page{ width: 450px; }#content,.div1{width: 420px;position: relative; }#secondary{display:none}#access{width: 450px; }#access a {padding-right:5px}#access a img{display:none}#rss{display:none}#branding #s{display:none}
}
@media only screen and (max-width: 479px) {
	#page{ width: 300px; }#content,.div1{width: 300px;}#secondary{display:none}#access{width: 330px;} #access a {padding-right:10px;padding-left:10px}#access a img{display:none}#rss{display:none}#branding #s{display:none}#access ul ul a{width:100px}
}

效果如下

1280以上分辨率下

1280以上分辨率下

1100分辨率下

1100分辨率下

880分辨率下

880分辨率下

720分辨率下

720分辨率下

440分辨率下

440分辨率下

10 Comments

Name *

E-mail *

Website

  1. 胡倡萌

    这个我也用到过,以后可能继续折腾自适应主题

  2. xsinger

    我现在就是参考你的方法简单删了些东西,自适应搞的我好烦!

  3. Tokin

    不加meta么…

    • 小蝴蝶

      @Tokin : 要加的,不过没写了 :mrgreen:

  4. 刘荣焕

    这个东西是个好东西 但是设计布局比较麻烦

  5. DickWu

    加载的时候应该还是整个网页的代码跑进来的吧~要是能够做到用AJAX判断啥啥啥大小然后输出一个个部分就强大了。。当然等做到了这一点估计已经成为突破天际的前端设计师了。。

    • 小蝴蝶

      @DickWu 虽然输出是完整的js地址 但不会影响下面加载啦 所以不会拖慢的~ 如果ajax判断这样的 有的访客没有加载完整个网页 会导致统计遗漏的