自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用媒體查詢進(jìn)行響應(yīng)式設(shè)計(jì)

開發(fā) 前端
web設(shè)計(jì)需要有自適應(yīng)能力。 頁面布局要可以自動(dòng)的去適應(yīng)所有的分辨率和設(shè)備。這個(gè)教程將會(huì)告訴你如何利用HTML5和CSS3媒體查詢來創(chuàng)建一個(gè)跨瀏覽器的響應(yīng)式設(shè)計(jì)。

如今屏幕分辨率的范圍已經(jīng)從320px(iPhone)涵蓋到2560px(大顯示器)或者更高了。用戶不單單在桌面電腦上瀏覽網(wǎng)站。用戶如今會(huì)使 用移動(dòng)電話,小的筆記本,平板設(shè)備(比如iPad或者Playbook)來訪問互聯(lián)網(wǎng)。所以傳統(tǒng)的固定寬度設(shè)計(jì)不再適用了。web設(shè)計(jì)需要有自適應(yīng)能力。 頁面布局要可以自動(dòng)的去適應(yīng)所有的分辨率和設(shè)備。這個(gè)教程將會(huì)告訴你如何利用HTML5和CSS3媒體查詢來創(chuàng)建一個(gè)跨瀏覽器的響應(yīng)式設(shè)計(jì)。

首先看個(gè)實(shí)例

在你開始之前,看下最終demo是什么樣子。改變你瀏覽器的大小,然后看看頁面布局在基于viewport(瀏覽器可視區(qū)域)寬度的情況下是如何自動(dòng)的進(jìn)行浮動(dòng)的。

更多例子

如果你想看更多的例子,看一下下面我用媒體查詢?cè)O(shè)計(jì)的WordPress模板Tisa,EleminSuco,iTheme2,Funki,MinblrWumblr

概覽

對(duì)于任何寬度大于1024px的分辨率,頁面容器的寬度會(huì)為980px。媒體查詢被用來檢查如果viewport窄于980px,那么頁面布局會(huì)變 成流動(dòng)寬度而不是固定寬度。如果viewport窄于650px,那么頁面布局將會(huì)把內(nèi)容容器和側(cè)邊欄展開為整體寬度,從而形成一個(gè)單欄的布局。

HTML代碼

我不會(huì)去講HTML代碼的細(xì)節(jié)。下面是頁面布局的整體結(jié)構(gòu)。我擁有一個(gè)pagewrap容器,它把header,content,sidebar,footer包裹在了一起。

  1. <div id="pagewrap"> 
  2.     <header id="header"> 
  3.         <hgroup> 
  4.             <h1 id="site-logo">Demo</h1> 
  5.             <h2 id="site-description">Site Description</h2> 
  6.         </hgroup> 
  7.         <nav> 
  8.             <ul id="main-nav"> 
  9.                 <li><a href="#">Home</a></li> 
  10.             </ul> 
  11.         </nav> 
  12.         <form id="searchform"> 
  13.             <input type="search"> 
  14.         </form> 
  15.     </header> 
  16.  
  17.     <div id="content"> 
  18.         <article class="post"> 
  19.             blog post 
  20.         </article> 
  21.     </div> 
  22.  
  23.     <aside id="sidebar"> 
  24.         <section class="widget"> 
  25.              widget 
  26.         </section> 
  27.     </aside> 
  28.  
  29.     <footer id="footer"> 
  30.         footer 
  31.     </footer> 
  32. </div> 

HTML5.js

注意一下我在demo中使用了HTML5標(biāo)簽。低于9的IE瀏覽器不支持HTML5中引入的新元素,比如 <header>,<article>,<footer>,<figure>等等。在HTML文檔中包含html5.js這個(gè)Javscript文件可以使IE識(shí)別這些新元素。

  1. <!--[if lt IE 9]> 
  2.     <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
  3. <![endif]--> 

CSS

重置HTML5元素為塊元素

下面的CSS將會(huì)把HTML元素(article,aside,figure,header,footer等等)重置為塊元素。

  1. article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {  
  2.     display: block; 

主結(jié)構(gòu)CSS

這次我還是不會(huì)去講細(xì)節(jié)。主容器pagewrap是980px寬。Header擁有一個(gè)固定的160px高度。容器content是600px寬并且向左浮動(dòng)。sidebar是280px寬并向右浮動(dòng)。

  1. #pagewrap { 
  2.     width980px
  3.     margin0 auto
  4.  
  5. #header { 
  6.     height160px
  7.  
  8. #content { 
  9.     width600px
  10.     floatleft
  11.  
  12. #sidebar { 
  13.     width280px
  14.     floatright
  15.  
  16. #footer { 
  17.     clearboth

#p#

***步的Demo

這里是這個(gè)設(shè)計(jì)demo。注意媒體查詢還沒有實(shí)現(xiàn)。改變?yōu)g覽器窗口的尺寸,你應(yīng)該看到頁面布局并不具有擴(kuò)展能力。

有關(guān)CSS3媒體查詢

現(xiàn)在是有趣的部分--媒體查詢

包含媒體查詢的JavaScript文件

Internet Explorer8或者更老的版本不支持CSS3媒體查詢。你可以通過添加css3-mediaqueries.js這個(gè)Javascript文件來使其支持媒體查詢。

  1. <!--[if lt IE 9]> 
  2.     <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 
  3. <![endif]--> 

包含媒體查詢的CSS文件

為媒體查詢創(chuàng)建一個(gè)新的樣式表??聪挛抑暗慕坛虂砀闱宄?a >媒體查詢是如何工作的。

  1. <link href="media-queries.css" rel="stylesheet" type="text/css"

Viewport小于980px(流動(dòng)布局)

對(duì)于窄于980px的viewport,如下的規(guī)則將會(huì)被應(yīng)用:

  • pagewrap = 重置width為95%
  • content = 重置width為60%
  • sidebar = 重置width為30%

提示: 使用百分比(%)的值來使容器變得流動(dòng)。

  1. @media screen and (max-width980px) { 
  2.     #pagewrap { 
  3.         width95%
  4.     } 
  5.  
  6.     #content { 
  7.         width60%
  8.         padding3% 4%
  9.     } 
  10.  
  11.     #sidebar { 
  12.         width30%
  13.     } 
  14.     #sidebar .widget { 
  15.         padding8% 7%
  16.         margin-bottom10px
  17.     } 

Viewport小于650px(一欄布局)

接下來對(duì)窄于650px的viewport我擁有另一個(gè)CSS集合:

  • header = 重置height為auto
  • searchform = 重新定位searchform為離頂部5px
  • main-nav = 重置positionstatic
  • site-logo = 重置positionstatic
  • site-description = 重置positionstatic
  • content = 重置width為auto(這會(huì)使得容器展開為整體寬度)并且不進(jìn)行浮動(dòng)
  • sidebar = 重置width為100%并且不進(jìn)行浮動(dòng)
  1. @media screen and (max-width650px) { 
  2.     #header { 
  3.         heightauto
  4.     } 
  5.  
  6.     #searchform { 
  7.         positionabsolute
  8.         top: 5px
  9.         right: 0
  10.     } 
  11.  
  12.     #main-nav { 
  13.         positionstatic
  14.     } 
  15.  
  16.     #site-logo { 
  17.         margin15px 100px 5px 0
  18.         positionstatic
  19.     } 
  20.  
  21.     #site-description { 
  22.         margin0 0 15px
  23.         positionstatic
  24.     } 
  25.  
  26.     #content { 
  27.         widthauto
  28.         floatnone
  29.         margin20px 0
  30.     } 
  31.  
  32.     #sidebar { 
  33.         width100%
  34.         floatnone
  35.         margin0
  36.     } 
  37.  

小于480px的Viewport

下面的CSS將會(huì)在viewport寬度小于480px(即橫屏模式下iPhone屏幕的寬度)的時(shí)候生效。

  • html = 禁止文本大小調(diào)整(text size adjustment)。默認(rèn)情況下,iPhone放大了文本大小,這樣讀起來更加舒服。你可以通過添加-webkit-text-size-adjust: none來禁止文本大小調(diào)整。
  • main-nav = 重置字體大小為90%
  1. media screen and (max-width480px) { 
  2.  
  3.     html { 
  4.         -webkit-text-size-adjust: none
  5.     } 
  6.  
  7.     #main-nav a { 
  8.         font-size90%
  9.         padding10px 8px
  10.     } 
  11.  

彈性圖片

為了使圖片具有彈性,只需要添加max-width:100%height:auto。給圖片加上max-width:100%height:auto在IE7中是工作的,但是在IE8中不工作(是的,另一個(gè)奇怪的IE bug)。為了解決這個(gè)問題,你需要為IE8添加width:auto\9。

  1. img { 
  2.     max-width100%
  3.     heightauto
  4.     widthauto\9/* ie8 */ 

#p#

彈性的嵌入視頻

為了使嵌入視頻具有彈性,可以使用上面所提到的相同技巧。由于未知原因,(嵌入元素的max-width:100%在Safari中不工作。解決方式是使用width:100%做為替代。

  1. .video embed
  2. .video object, 
  3. .video iframe { 
  4.     width100%
  5.     heightauto

進(jìn)行初始縮放的Meta標(biāo)簽(iPhone)

默認(rèn)情況下,iPhone中的Safari會(huì)收縮HTML頁面來適應(yīng)iPhone屏幕。下面的meta標(biāo)簽告訴iPhone中的Safari使用設(shè)備的寬度做為viewport的寬度,并且禁用初始縮放比例。

  1. <meta name="viewport" content="width=device-width; initial-scale=1.0"

最終Demo

查看最終demo并且調(diào)整你瀏覽器窗口的大小來看看真實(shí)工作的媒體查詢。不要忘記用iPhone,iPad,Blackberry(新版本)和Android電話來訪問demo,以便看看移動(dòng)版本的樣子。

總結(jié)

  • 媒體查詢的Javascript備胎:

css3-mediaqueries.js是使那些不支持媒體查詢的瀏覽器可以使用媒體查詢所必需的。

  1. <!--[if lt IE 9]> 
  2.     <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 
  3. <![endif]--> 
  • CSS媒體查詢:

創(chuàng)建自適應(yīng)設(shè)計(jì)的手段是根據(jù)viewport的寬度來用CSS重寫頁面布局結(jié)構(gòu)。

  1. @media screen and (max-width560px) { 
  2.  
  3.     #content { 
  4.         widthauto
  5.         floatnone
  6.     } 
  7.  
  8.     #sidebar { 
  9.         width100%
  10.         floatnone
  11.     } 
  12.  
  13. }
  • 具有彈性的圖片:

使用max-width:100%height:auto來使圖片變得具有彈性。

  1. img { 
  2.     max-width100%
  3.     heightauto
  4.     widthauto\9/* ie8 */ 
  • 具有彈性的嵌入視頻:

使用width:100%height:auto使嵌入視頻具有彈性。

  1. .video embed
  2. .video object, 
  3. .video iframe { 
  4.     width100%
  5.     heightauto
  • Webkit字體大小調(diào)整(Text Size Adjust):

在iPhone上使用-webkit-text-size-adjust:none來禁用文本大小調(diào)整。

  1. html { 
  2.     -webkit-text-size-adjust: none; 
  • 重置iPhone的Viewport和初始縮放比例:

下面的meta標(biāo)簽在iPhone上重置viewport和初始縮放比例:

  1. <meta name="viewport" content="width=device-width; initial-scale=1.0"> 

原文鏈接:http://webdesignerwall.com/tutorials/responsive-design-with-css3-media-queries

譯文鏈接:http://weizhifeng.net/responsive-design-with-css3-media-queries.html

責(zé)任編輯:陳四芳 來源: weizhifeng.net
相關(guān)推薦

2020-10-21 07:48:36

媒體查詢設(shè)計(jì)

2020-09-11 09:26:55

媒體查詢HTMLCSS

2012-12-10 10:58:02

IBMdW

2023-11-09 16:43:38

CSS Grid網(wǎng)頁布局

2024-06-26 09:51:23

2016-11-23 18:39:36

css

2023-03-05 19:28:11

JavaScripCSS

2012-01-09 14:48:15

響應(yīng)式Web

2022-07-27 15:30:24

媒體查詢css

2022-07-27 15:30:05

css容器查詢樣式查詢

2021-06-09 07:15:19

CSS容器查詢

2012-01-16 09:37:04

jQuery

2014-08-05 14:49:39

Web響應(yīng)式設(shè)計(jì)design

2013-03-01 10:42:21

響應(yīng)式Web

2023-09-01 09:19:40

CSS函數(shù)模式

2013-05-29 12:18:42

響應(yīng)式響應(yīng)式設(shè)計(jì)響應(yīng)式設(shè)計(jì)流程

2013-04-19 10:53:55

響應(yīng)式設(shè)計(jì)Web

2013-01-04 14:41:07

Android開發(fā)產(chǎn)品設(shè)計(jì)類響應(yīng)式設(shè)計(jì)

2017-09-08 16:12:34

視口單位適配布局

2020-05-08 10:54:33

大數(shù)據(jù)社交媒體營銷
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)