響應式佈局總結

来源:http://www.cnblogs.com/dreamsboy/archive/2016/07/09/5656009.html
-Advertisement-
Play Games

響應式佈局的開發基礎知識 本章主要分為以下幾個部分 正確理解響應式設計 響應式設計的步驟 響應式設計需要註意的問題 響應式網頁佈局實現原理 第一:正確理解響應式佈局 響應式網頁設計就是一個網站能夠相容多個終端 而不是為每個終端做一個特定的版本。打個比方來說:現在社會有很多響應產品,例如摺疊沙發,摺疊 ...


響應式佈局的開發基礎知識

本章主要分為以下幾個部分

  • 正確理解響應式設計
  • 響應式設計的步驟
  • 響應式設計需要註意的問題
  • 響應式網頁佈局實現原理

    第一:正確理解響應式佈局

    響應式網頁設計就是一個網站能夠相容多個終端-而不是為每個終端做一個特定的版本。打個比方來說:現在社會有很多響應產品,例如摺疊沙發,摺疊床等等,當我們需要把沙發放到一個角落的時候,此刻沙發就好比div吧,而角落裡的某個地方就好比父元素,由於父元素空間的改變,我們不得不調整div,讓它能夠依然放在角落裡。在項目中你會遇到不同的終端,由於終端解析度不同,所以你要想讓用戶體驗更好,就必要讓你的頁面能夠相容多個終端。

    第二:響應式設計的步驟

    瞭解了什麼是響應式,那麼接下來我們就要說說響應式設計的步驟,有人這時候會說“博主,你傻啊,響應式設計的步驟不就是1.編寫非響應式代碼、2.加工成響應式代碼、3.響應式細節處理、4.完成響應式開發嗎?”博主菊花一震 原來高手在民間啊,微微一硬表示敬重,我去 ,說錯了 是微微一笑,大家不要誤會啊。

言歸正傳,博主因為是刨根問底攔不組的,所以在此就往響應式設計的祖墳上刨,深入瞭解下這四個步驟。

1.佈局及設置meta標簽

當創建一個響應式網站,或者非響應式網站變成響應式的時候,首先要關註元素的佈局。我在創建響應式佈局的時候習慣先寫非響應式佈局,頁面固定寬度大小,我覺得這個對在座的各位沒有任何難度。如果完成了非響應式那麼我在去添加媒體查詢(Media Query)和響應式代碼。這種操作更容易實現響應式特性。

當你完成當你已經完成了無響應的網站,做的第一件事是在你的 HTML 頁面,粘貼下麵的代碼到和標簽之間。這將設置屏幕按1:1的尺寸顯示,在 iPhone 和其他智能手機的瀏覽器提供網站全視圖瀏覽,並禁止用戶縮放頁面。

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="HandheldFriendly" content="true">
user-scalable屬性能夠解決ipad切換橫屏之後觸摸才能回到具體尺寸的問題。

2.通過媒體查詢來設置樣式media query

media query 是響應式設計的核心,它能夠和瀏覽器進行溝通,告訴瀏覽器頁面如何呈現,假如一個終端的解析度小於980px,那麼可以這樣寫

 @media screen and (max-width:980px){
     #head { … }
     #content { … }
     #footer { … }
}這裡面的樣式會覆蓋掉之前所定義的樣式。

3.設置多種視圖寬度

假如我們要相容ipad和iphone視圖,我們可以這樣設置:

/**ipad**/
@media only screen and (min-width:768px)and(max-width:1024px){}
/**iphone**/
 @media only screen and (width:320px)and (width:768px){}

3.字體設置

到目前為止,開發人員用到的字體單位大部分都是像素,雖然像素在普通網站上是Ok的,但是我們仍然需要響應式字體。一個響應式的字體應關聯它的父容器的寬度,這樣才能適應客戶端屏幕。

css3引入了新的單位叫做rem,和em類似但對於Html元素,rem更方便使用。

rem是相對於根元素的,不要忘記重置根元素字體大小:

html{font-size:100%;}
完成後,你可以定義響應式字體:
@media (min-width:640px){body{font-size:1rem;}}
@media (min-width:960px){body{font-size:1.2rem;}}
@media (min-width:1200px){body{font-size:1.5rem;}}
不理解rem的童鞋,在這裡給大家推薦一篇寫的不錯的博客(http://www.cnblogs.com/YYvam1288/p/5123272.html)

4.響應式設計需要註意的問題

1.寬度不固定,可以使用百分比

#head{width:100%;}
#content{width:50%;}

2.圖片處理

在這裡我給大家一把鑰匙,有人會說,博主,能不能別裝逼?圖片處理還有啥鑰匙,你以為是開門啊,博主,醒醒吧

哎喲 ,我這暴脾氣,我說的鑰匙不是真的鑰匙,而是指圖片處理的萬能方法,是什麼呢?就是圖片液態化。接著 會有人問:“什麼是圖片液態化”呢?這個問題問的很好,給你打99分,多給你一分怕你驕傲,大家都知道水無形 能適合很多容器,那麼假如我們把圖片當做水 是不是就可以實現圖片自適應問題了呢?

在html頁面中的圖片,比如文章里插入的圖片我們都可以通過css樣式max-width來進行控製圖片的最大寬度,如:

    #wrap img{
        max-width:100%;
        height:auto;
    }
    如此設置後ID為wrap內的圖片會根據wrap的寬度改變已達到等寬擴充,height為auto的設置是為了保證圖片原始的高寬比例,以至於圖片不會失真。

除了img標簽的圖片外我們經常會遇到背景圖片,比如logo為背景圖片:

    #log a{display:block;
            width:100%;
            height:40px;
            text-indent:55rem;
            background-img:url(logo.png);
            background-repeat:no-repeat;
            background-size:100% 100%;
            }
    background-size是css3的新屬性,用於設置背景圖片的大小,有兩個可選值,第一個值用於指定背景圖的width,第2個值用於指定背景圖的height,如果只指定一個值,那麼另一個值預設為auto。
    background-size:cover; 等比擴展圖片來填滿元素
    background-size:contain; 等比縮小圖片來適應元素的尺寸

最後我們來總結下響應式佈局的實現原理

首先我們應該遵循移動端優先,交互和設計以移動端為主,pc則作為移動端的擴展,一個頁面需要相容不同終端,那麼有兩個關鍵點是我們需要去做到響應式的:響應式佈局和響應式內容(圖片、多媒體)

        1.響應式佈局
           1.Meta標簽定義
           2.使用Media Queries適配對應樣式
        2.響應式內容
            1.響應式圖片  

我知道各位還在期待什麼,無圖無真相,無dome不是瞎說嗎,紙上談兵,放心各位,博主不會這麼討打的下麵就貢獻出個人製作的響應式佈局dome.

git html 代碼https://github.com/lifenglei/mygit/blob/master/xiang.html
css代碼 https://github.com/lifenglei/mygit/blob/master/xiang.css

好了 博主絞盡乳汁的成果就在這裡了,下次我會總結下移動端的佈局。
有興趣的童鞋可以加前端群 474471759來和博主交流,群里很多大神,歡迎你!!!


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

-Advertisement-
Play Games
更多相關文章
  • 一、表單 <form id="" name="" method="post/get" action="負責處理的服務端"> id不可重覆;name可重覆;get提交有長度限制,並且編碼後的內容在地址欄可見,post提交無長度限制,且編碼後內容不可見。 </form> 1、文本輸入 文本框<input ...
  • JavaScript對象與繼承 JavaScript是我在C語言之後接觸的第二門編程語言,大一暑假的時候在圖書館找了一本中國人寫的 "JavaScript" 程式設計來看。那個時候在編程方面幾乎還是小白,再加上那本書根本沒有提JavaScript的編程機制,又有一些誤導性的話,一直以來對JavaSc ...
  • 所有的函數都具有call(),apply()和bind()方法。它們可以在執行方法的時候用一個值指向this,並改變面向對象的作用域。 apply方法: 以下的兩種表達式是等價的: func(arg1,arg2,arg3) func.apply(null,[arg1,arg2,arg3]) appl ...
  • 我們可以用Math.random()的方法輕鬆的生成一個隨機的數字,但是這個數字可能是重覆的。有時候,我們需要一個不重覆的隨機數,以下提供了一種高效率的方法。 ...
  • 1.margin的百分比值 普通元素的百分比maigin相對於容器元素的寬度(width) 進行計算的。 這裡我們在圖片外面設置一個寬高分別為800 * 600的容器。設置img{ margin: 10%; } 結果如下 結果margin值都是 800 * 10% = 80px; 所以這裡都是相對於 ...
  • 很多剛剛接觸nodejs的初學者,都會經歷一個很繁冗的環境安裝過程。 一般主要要安裝nodejs,npm和express三樣東西。那麼這三樣東西分別是乾什麼的呢? 本篇文章就大致介紹一下這三樣東西分別是乾什麼的: nodejs 首先要說的是nodejs,既然我們要裝nodejs,那這個其實就沒什麼好 ...
  • 在頂求網的首頁中我使用了BootStrap的輪播(carousel)插件來展示文章中的圖片。我在程式中自動抓取文章的第一張圖片作為該輪播控制項中要顯示的圖片,由於文章的圖片大小不一,而輪播插件的大小基本是固定的,所以展示的時候圖片出現了變形。在網上找了很多中方式也沒有解決(過程曲折,不再贅述),直到找... ...
  • 今天看圖解CSS的章節,雖然主要講的是nth-of-type選擇器的使用,但是本人卻關註到了頁面的排版方式,如下: HTML CSS 效果: 然後百思不得其解,因為img本身為行內元素,加了float之後變成了inline-block元素,兼有塊狀元素與行內元素的“氣質”,但緊跟在其後面的p元素是真 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...