运用@media实现网页自适应中的几个关键分辨率

经常为不同分辨率设备或不同窗口大小下布局错位而头疼,可以利用@media screen实现网页布局的自适应,但是怎样兼容所有主流设备就成了问题。到底分辨率是多少的时候设置呢?

响应式设计

先看下面的代码,这是从bootstrap中遍历出来的,min-width来确认分别是768、992、1200。

当然了过去也有些设备宽度是600 480的,哪些小分辨率的我们都归类为小于767的。为什么是小于767而不是768呢,那是因为在css中@media (min-width: 768px)表示最小是768也就是>=768,这里有等于,所以我们判断更小的设备用@media (max-width: 767px)这边表示<=767就不会有冲突了。

1、从上面我们可以看出有几个临界点的分辨率,那么我们就可以轻松的来写自己的自适应代码了

@media (min-width: 768px){ //>=768的设备 }
@media (min-width: 992px){ //>=992的设备 }
@media (min-width: 1200){ //>=1200的设备 }

注意下顺序,如果你把@media (min-width: 768px) 写在了下面那么很悲剧,

@media (min-width: 1200){ //>=1200的设备 }
@media (min-width: 992px){ //>=992的设备 }
@media (min-width: 768px){ //>=768的设备 }

因为如果是1440,由于1440>768那么你的1200就会失效。

所以我们用min-width时,小的放上面大的在下面,同理如果是用max-width那么就是大的在上面,小的在下面

@media (max-width: 1199){ //<=1199的设备 }
@media (max-width: 991px){ //<=991的设备 }
@media (max-width: 767px){ //<=768的设备 }

2、经过了上面的入门学习,我们就可以灵活的来点高级的混合应用了

/*大于1200px屏幕尺寸应用以下样式*/
@media screen and (min-width:1200px){ 
    #page{width:1100px;}
    #content,.div1{width:730px;}
    #secondary{width:310px;}
}
/*大于960px小于1199px屏幕尺寸应用以下样式*/
@media screen and (min-width:960px) and (max-width:1199px) { 
    #page{width: 960px;}
    #content,.div1{width:650px;}
    #secondary{width:250px;}
    select{max-width:200px;}
}
/*大于768px小于959px屏幕尺寸应用以下样式*/
@media screen and (min-width: 768px) and (max-width: 959px) { 
    #page{ width:900px;}
    #content,.div1{width:620px;}
    #secondary{width:220px;}
    select{max-width:180px;}
}
/*大于480px小于767px屏幕尺寸应用以下样式*/
@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}
}
/*小于479px屏幕尺寸应用以下样式*/
@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}
}

3、上面的代码中用到了 screen这里指定了显示器为显示设备,也可以是print打印机等其他设备,一般我们用screen。或者干脆省略。

--以下引用互联网--

@media only screen and 

only(限定某种设备)

screen 是媒体类型里的一种

and 被称为关键字,其他关键字还包括 not(排除某种设备)

/* 常用类型 */
类型解释:

  • all 所有设备

  • braille 盲文

  • embossed 盲文打印

  • handheld 手持设备

  • print 文档打印或打印预览模式

  • projection 项目演示,比如幻灯

  • screen 彩色电脑屏幕

  • speech 演讲

  • tty 固定字母间距的网格的媒体,比如电传打字机

  • tv 电视

screen一般用的比较多,下面是我自己的尝试,列出常用的设备的尺寸,然后给页面分了几个尺寸的版本。

/* 常用设备 */

  • 设备屏幕尺寸

  • 显示器 1280 x 800

  • ipad 1024 x 768

  • Android 800 x 480

  • iPhone 640 x 960

两种引用方式

第一种:

<link rel="stylesheet" type="text/css" href="styleB.css"  media="screen and (min-width: 600px) and (max-width: 800px)">

意思是当屏幕的宽度大于600小于800时,应用styleB.css

第二种:

 /*当屏幕尺寸小于600px时,应用下面的CSS样式*/
@media screen and (max-width: 600px) {
    .class { background: #ccc; }
}



原文链接:HelloWeb前端网 » 运用@media实现网页自适应中的几个关键分辨率 » 感谢您的浏览,希望能有所帮助。

欢迎您加入“Helloweb” 学习交流群:HelloWeb-学习交流群 196291215 共同交流并结识同行,在这里说出您的收获与感想或有什么不同的观点,我们期待您的留言,分享,让我们一起进步!

喜欢 ()or分享