CSS3 media媒體查詢器的使用方法

来源:http://www.cnblogs.com/myhjd/archive/2017/08/30/7452084.html
-Advertisement-
Play Games

最近幾年隨著響應式佈局的發展,一次開發多次使用,自適應屏幕的響應式網站的需求越來越多。但是怎樣使得網站能自適應屏幕呢?這裡就需要提到一個css3裡面新增的技術了-media媒體查詢器。 那麼什麼是media媒體查詢器呢? Media媒體查詢器是CSS3新增的一個可以檢測打開網站的終端的屏幕解析度的技 ...


最近幾年隨著響應式佈局的發展,一次開發多次使用,自適應屏幕的響應式網站的需求越來越多。但是怎樣使得網站能自適應屏幕呢?這裡就需要提到一個css3裡面新增的技術了-media媒體查詢器。

那麼什麼是media媒體查詢器呢?

Media媒體查詢器是CSS3新增的一個可以檢測打開網站的終端的屏幕解析度的技術。

Media媒體查詢器的使用方法大致如下:

1.設置一個meta標簽如:

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

相關參數解釋:

  device-width:定義輸出設備的屏幕可見寬度。  

  device-height:定義輸出設備的屏幕可見高度。

  width = device-width寬度等於當前設備的寬度。

  initial-scale初始的縮放比例(預設設置為1.0)。

  minimum-scale允許用戶縮放到的最小比例(預設設置為1.0)。    

  maximum-scale允許用戶縮放到的最大比例(預設設置為1.0)。   

  user-scalable用戶是否可以手動縮放(預設設置為no,因為我們不希望用戶放大縮小頁面)。

2.載入相容文件js

為什麼載入相容文件js呢?

因為IE8以上的內核是不相容html5以及CSS3 media的。所以需要載入兩個相容文件使得我們的代碼能夠實現出來。

1 <!--[if lt IE 9]>
2 <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
3      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
4 <![endif]-->

 也可以自行下載html5hiv.js和respond,js只需要在使用的時候修改對應的script裡面的src路徑就ok。

3.把IE的渲染方式調節到最高。閑在大多數的IE都是9以上的版本,這個版本的IE文檔模式不是最新的,或者說很多的小伙伴沒有註意這一點,所以可以通過下麵的代碼實現保持IE的文檔模式保持最新的版本:

 1 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 

第二種方法:

 1 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 

安裝一個Google chrome frame這個Google chrome插件。這樣可以使得所有的瀏覽器都能夠使用Webkit引擎及V8引擎進行排版及運算,如果沒有安裝這個插件的話上面的代碼是會使得瀏覽器一最高的文檔模式展現效果。

CSS3 media的標準寫法:

例如:當頁面小於960px的時候執行它下麵的CSS代碼。

1 @media screen and (max-width: 960px){
3     body{
5         background: #000;
7      }
9 }

這段代碼裡面有個screen,他的意思是在告知設備在列印頁面時使用襯線字體。

CSS2 Media用法

其實並不是只有CSS3才支持Media的用法,早在CSS2開始就已經支持Media,具體用法,就是在HTML頁面的head標簽中插入如下的一段代碼:

1 <link rel="stylesheet" type="text/css" media="screen" href="style.css">

想知道現在的移動設備是不是縱向放置的顯示屏,可以這樣寫:

1 <link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" href="style.css">

第一段的代碼也用CSS2來實現,讓它一樣可以讓頁面寬度小於960的執行指定的樣式文件:

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

但是這個方法會增加http的訪問次數。所以用CSS3把所有的CSS寫到一起才是最ok的。

Ok,現在我們回到CSS3的media用法上面,前面講了用CSS3的寫屏幕寬度小於960px的尺寸的寫法,現在我們來寫一下等於960px的方法:

1 @media screen and (max-width-device:960px){
2 
3 Body{
4 
5        Background:blue;
6 
7 }
8 
9 }

 

寬度大於960px的寫法:

1 @media screen and(min-width:960px){
2 
3        Body{
4 
5               Background:red;
6 
7 }
8 
9 }

 

前面就是常用的幾種寫法了,接下來對CSS3 media做一個總結:

width:瀏覽器可視寬度。

height:瀏覽器可視高度。

device-width:設備屏幕的寬度。

device-height:設備屏幕的高度。

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:檢測輸出的設備是網格的還是點陣圖設備。

最後,附上一個趣味Demo結尾:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="utf-8" />
 5 <title>CSS3 media Test</title>
 6 <meta name="author" content="LostWeapon" />
 7 <style>
 8 *{
 9     text-align: center;
10     font-size: 20px; 
11 }
12 div{
13     font-size: 14px;
14 }
15 @media screen and (min-resolution: 75.5dpcm) {
16     .normal{display:none;}
17 }
18 @media screen and (min-resolution: 28.3dpcm) and (max-resolution: 75.4dpcm) {
19     .retina{display:none;}
20 }
21 </style>
22 </head>
23 <body>
24 <p class="retina">視網膜屏</br>哎呦 不錯哦,小伙子有前途!</p>
25 <p class="normal">普通屏</br>還不快去努力學習掙錢換電腦!</br><strong>看什麼看,說的就是你!</strong></p>
26 </body>
27 <footer>
28     <div>
29        Copyright &copy;2017 墨雨溪風
30     </div>
31 </footer>
32 </html>

 文章不妥之處請各位前輩指正,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一般存在四種情況,JavaScript會對變數的數據類型進行轉換。 目錄 if中的條件會被自動轉為Boolean類型 會被轉為false的數據 會被轉為true的數據 參與+運算都會被隱式的轉為字元串 會被轉為空字元串的數據 會被轉為字元串的數據 會被轉為數據類型標記的數據 參與 運算都會被隱式的轉 ...
  • ------>axios模擬get json一直拿不到文件,先把data放到根目錄,再去dev-server.js(就是npm執行的那個文件)裡面設置靜態資源訪問路徑app.use('/data',express.static('./data')) ... app.use(hotMiddleware... ...
  • 如今移動設備的解析度紛繁複雜。以前僅僅是安卓機擁有各種各樣的適配問題,如今 iPhone 也擁有了三種主流的解析度,而未來的 iPhone 7 可能又會玩出什麼新花樣。如何以不變應萬變,用簡簡單單的幾行代碼就能支持種類繁多的屏幕解析度呢?今天就給大家介紹一種懶人必備的移動端定寬網頁適配方法。 首先看 ...
  • <input class="check" type="checkbox" style="vertical-align:-3px;"/> 我已閱讀以上內容 <button disabled="">同意 >>></button> $('.check').click(function(){ // aler ...
  • 今天在使用fetch方法 瀏覽器返回的請求信息中,header變成了 而該次請求的Request Method也變成了OPTION,不論是生成的奇怪請求頭,還是OPTION方法,都是沒有遇見過的。 這次請求與平時開發中發送的請求有以下幾點不同 1.該次請求對象網站是跨域地址 2.本次請求添加的請求頭 ...
  • 1、html標記 JS 1、獲取 li屬性 data-text的值用 ,隔開 輸出結果;111,222,333 2、編輯的時候初始化ul的li項 ...
  • 自動化的開發流程 在HTML5游戲開發或者說在Web客戶端開發中,對項目代碼進行修改之後,一般來說,需要手動刷新瀏覽器來查看代碼修改後運行結果。這種手動的方式費時費力,降低了開發效率。另外,如果我們使用瞭如TypeScript這類需要通過轉換器把代碼轉換成瀏覽器可識別的JavaScript代碼的語言 ...
  • 第三部分:流程式控制制語句 JavaScript代碼是書寫位置: JavaScript代碼應該寫在<script type=”text/javascript”></script>這一對標記中。 或者作為外部引用<script src="JavaScript代碼路徑"></script> JavaScri ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...