首頁 web前端 css教學 CSS3中的media媒體查詢

CSS3中的media媒體查詢

Feb 17, 2017 pm 01:11 PM
css3 media

媒體查詢多用於響應式網頁。

1.初始化設定:

在HTML檔案中,網頁頂部

標籤中插入一句話:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
登入後複製

這句話在於對響應式網頁做一個初始化設置,主要包括:

name="viewport":標記顯示裝置為視窗;

width = device-width:寬度等於目前裝置的寬度;

initial-scale:初始的縮放比例(預設為1.0);
minimum-scale :允許使用者縮放到的最小比例(預設為1.0);
maximum-scale:允許使用者縮放到的最大比例(預設為1.0);  
user-scalable:使用者是否可以手動縮放(預設為no,因為我們不希望用戶放大縮小頁面)。


2.解決IE瀏覽器的相容性問題:

因為IE瀏覽器(IE8)不支援HTML5和CSS3中的media,所以要載入用於解決IE瀏覽器相容性問題的JS檔案:

<!--[if lt IE 9]>
登入後複製
	<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
登入後複製
	<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
登入後複製
<![endif]-->
登入後複製

兩個<script></script>標籤中的src屬性所指向的文件連結地址為固定地址中的文件,直接異地引用就好,不用下載到本地引用。

3.設定IE的渲染方式為最高:

現在有很多人的IE瀏覽器都升級到IE9以上,這個時候會有很多詭異的事情發生,例如現在是IE9的瀏覽器,但是瀏覽器的文件模式卻是IE8,為了防止這種情況,我們需要下面這段程式碼來讓IE的文檔模式永遠都是最新:

<meta http-equiv="X-UA-Compatible" content="IE=edge">
登入後複製


當然還有一個更給力的寫法:

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
登入後複製


這段程式碼後面加了一個chrome=1,這是由於Google Chrome Frame(Google內嵌瀏覽器框架GCF),如果使用者電腦安裝這個chrome插件,就可讓電腦內的IE瀏覽器規避版本因素,使用Webkit引擎及V8引擎進行排版及運算。當然如果使用者沒裝這個插件,這段程式碼就會讓IE瀏覽器以最高的文件模式展現效果。

4.CSS3 media 媒體查詢的寫法:

@media screen and (max-width: 960px){
	body{
		background: #000;
	}
}
登入後複製
登入後複製


這是media的標準寫法,在CSS檔案中,意思是:當頁小於960px時執行下列CSS程式碼,內容暫不用管程式碼,內容暫不用管程式碼。

對於上述程式碼中的screen,意為在告知裝置在列印頁面時使用襯線字體,在螢幕上顯示時用無襯線字體。目前很多網站都會直接省略screen,從而不需要考慮用戶打印網頁的需求,所以又有這種寫法:

@media (max-width: 960px){
	body{
		background: #000;
	}
}
登入後複製

本著思維嚴謹的原則,個人不會採用這種寫法。
5.CSS3媒體查詢主體代碼組合:


在響應式網頁佈局中需要持續運用媒體查詢代碼組合,主要作用在於判斷所適配屏幕的寬度,並根據各種寬度條件應用不同的CSS樣式。

如當螢幕寬度等於960px時,將網頁背景色變為紅色:

@media screen and (max-device-width:960px){
	body{
		background:red;
	}
}
登入後複製


如當螢幕寬度最大為960px(小於960px)時,將網頁背景色變為黑色:

螢幕寬度最小為960px(大於960px)時,將網頁背景色變為桔色:


@media screen and (max-width: 960px){
	body{
		background: #000;
	}
}
登入後複製
登入後複製
更為常見的是混合使用,如當螢幕寬度介於960px和1200px之間時,將網頁背景色變為黃色:

@media screen and (min-width:960px){
	body{
		background:orange;
	}
}
登入後複製
6.整體開發思路:

使用CSS3中媒體查詢的大致思路就是判斷網頁在不同設備中所處的寬度範圍,這樣的範圍可能有三種(PC、平板、手機),也可能有四種(PC、平板、中大螢幕手機、小螢幕手機),當然也可能只需要兩種(平板、手機,PC端單獨開發一版時可不作為CSS3媒體查詢的使用對象),並為各種寬度範圍情況下的所需頁面元素套用不同的CSS樣式,從而適配各種裝置。

7.響應式網頁開發中的寬度問題:

在實際開發中,通常需要設定響應式網頁寬度的最大值,一旦忽略最大寬度,臃腫或零散的網頁佈局都會造成視覺洪災,也就是我們常說的看起來很low。

另外談談目前顯示設備中的網頁寬度問題(由於篇幅問題,就不從工業革命開始扯了),目前最為常見的寬度基本上都是:大於或等於960px的PC端(1920px、1600px、1440px 、1280px、1140px、960px)、960px至640px之間的平板端(768px、640px)以及640px以下的手機端(480px、320px),以上寬度存在已久,且顯示設備中的網頁寬度會長期如此如此的狀態下,在響應式網頁寬度設計上,基本上從這幾個尺寸考慮就已經足夠。
8.media媒體查詢所有參數摘要:

媒體查詢器中也包含不常用的相關功能,悉如示下:

  • width:瀏覽器可視寬度,

  • height可視高度,

  • device-width:裝置螢幕的寬度,

  • device-height:裝置螢幕的高度,

  • orientation:偵測裝置目前處於橫向還是縱向狀態,

    orientation

  • aspect-ratio:检测浏览器可视宽度和高度的比例(例如:aspect-ratio:16/9),

  • device-aspect-ratio:检测设备的宽度和高度的比例,

  • color:检测颜色的位数(例如:min-color:32就会检测设备是否拥有32位颜色),

  • color-index:检查设备颜色索引表中的颜色(他的值不能是负数),

  • monochrome:检测单色楨缓冲区域中的每个像素的位数(这个太高级,估计咱很少会用的到),

  • resolution:检测屏幕或打印机的分辨率(例如:min-resolution:300dpi或min-resolution:118dpcm),

  • grid:检测输出的设备是网格的还是位图设备。

9.扩展——在CSS2中同样有媒体查询:

media媒体查询并不是CSS3诞生之后的专用功能,早在CSS2开始就已经支持media,比如:

在HTML文件中的标签中写入这句:

<link rel="stylesheet" type="text/css" media="screen" href="style.css">
登入後複製

以上是CSS2实现的衬线用法,href属性中写入在某单一显示设备中链接的CSS文件,但仅供入门,

如要判断移动设备是否为纵向放置的显示屏,可以这样写:

<link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" href="style.css">
登入後複製

如要让小于960px的页面执行指定的CSS样式文件,可以这样写:

<link rel="stylesheet" type="text/css" media="screen and (max-width:960px)" href="style.css">
登入後複製

当然,CSS2中的媒体查询方法放到现在并不推荐使用,最大的弊端在于这样会增加页面http的请求次数,增加页面负担,使用CSS3中的媒体查询才是目前的最佳方法。

更多CSS3中的media媒体查询相关文章请关注PHP中文网!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

純CSS3怎麼實現波浪效果? (程式碼範例) 純CSS3怎麼實現波浪效果? (程式碼範例) Jun 28, 2022 pm 01:39 PM

純CSS3怎麼實現波浪效果?這篇文章就來跟大家介紹一下使用 SVG 和 CSS 動畫來製作波浪效果的方法,希望對大家有幫助!

聯想電腦checking media開不了機如何解決? 聯想電腦checking media開不了機如何解決? Feb 12, 2024 am 08:36 AM

有用戶在啟動聯想筆記本時,出現checkingmedia無法啟動的問題,讓人不知所措,那麼聯想電腦checkingmedia開不了機如何解決?本期教學為大家帶來聯想筆記本出現checkingmedia無法啟動原因及解決方法。原因:1.硬碟損壞:若聯想筆記本有硬碟損壞、故障的問題,會導致筆記本顯示checkingmedia且開不了機。作業系統損壞:若聯想筆記本的作業系統損壞,會導致筆記本顯示checkingmedia且開不了機。 2.重新開機,按F12進入BIOS,在「啟動」項

巧用CSS實現各種奇形怪狀按鈕(附代碼) 巧用CSS實現各種奇形怪狀按鈕(附代碼) Jul 19, 2022 am 11:28 AM

這篇文章帶大家看看怎麼使用 CSS 輕鬆實現高頻出現的各類奇形怪狀按鈕,希望對大家有幫助!

css怎麼隱藏元素但不佔空間 css怎麼隱藏元素但不佔空間 Jun 01, 2022 pm 07:15 PM

兩種方法:1、利用display屬性,只要為元素加上「display:none;」樣式即可。 2.利用position和top屬性設定元素絕對定位來隱藏元素,只需為元素加上「position:absolute;top:-9999px;」樣式。

css3怎麼實現花邊邊框 css3怎麼實現花邊邊框 Sep 16, 2022 pm 07:11 PM

在css中,可以利用border-image屬性來實作花邊邊框。 border-image屬性可以使用圖片來建立邊框,即給邊框加上背景圖片,只需要將背景圖片指定為花邊樣式即可;語法「border-image: url(圖片路徑) 向內偏移值圖像邊界寬度outset 是否重複;」。

原來利用純CSS也能實現文字輪播與圖片輪播! 原來利用純CSS也能實現文字輪播與圖片輪播! Jun 10, 2022 pm 01:00 PM

怎麼製作文字輪播與圖片輪播?大家第一想到的是利用js,其實利用純CSS也能實現文字輪播與圖片輪播,下面來看看實作方法,希望對大家有幫助!

css3如何實現滑鼠點擊圖片放大 css3如何實現滑鼠點擊圖片放大 Apr 25, 2022 pm 04:52 PM

實作方法:1、使用「:active」選擇器選取滑鼠點擊圖片的狀態;2、使用transform屬性和scale()函數實現圖片放大效果,語法「img:active {transform: scale(x軸放大倍率,y軸放大倍率);}」。

css3怎麼設定動畫旋轉速度 css3怎麼設定動畫旋轉速度 Apr 28, 2022 pm 04:32 PM

在css3中,可以利用「animation-timing-function」屬性來設定動畫旋轉速度,該屬性用於指定動畫將如何完成一個週期,設定動畫的速度曲線,語法為「元素{animation-timing-function:速度屬性值;}」。

See all articles