搜尋
首頁web前端css教學響應式佈局有幾種方法

響應式佈局有幾種方法

Jan 25, 2021 pm 05:48 PM
響應式佈局

響應式佈局有的方法有:1、媒體查詢;2、百分比【%】;3、vw或vh,vw表示相對於視圖視窗的寬度,vh表示相對於視圖視窗高度;4 、rem單位是相對於字體大小的html元素;5、flex彈性佈局。

響應式佈局有幾種方法

本文操作環境:巨集基底S40-51、Windows10家庭中文版

推薦:css影片教學

響應式佈局有的方法有:

#回應式佈局方法一:媒體查詢

使用@media媒體查詢可以針對不同的媒體類型定義不同的樣式,特別是響應式頁面,可以針對不同螢幕的大小,編寫多套樣式,從而達到自適應的效果。舉例來說:

透過媒體查詢,可以透過為不同解析度的裝置編寫不同的樣式來實現響應式的佈局,例如我們為不同解析度的螢幕,設定不同的背景圖片。例如給小螢幕手機設定@2x圖,為大螢幕手機設定@3x圖,透過媒體查詢就能很方便的實現。

但是媒體查詢的缺點也很明顯,如果在瀏覽器大小改變時,需要改變的樣式太多,那麼多套樣式程式碼會很繁瑣。

響應式佈局方法二:百分比%

例如瀏覽器的寬度或高度改變時,透過百分比單位,透過百分比單位可以使得瀏覽器中的元件的寬度和高度隨著瀏覽器的變化而變化,從而實現響應式的效果。

height,width屬性的百分比依託於父標籤的寬高。但是,padding、border、margin等屬性的情況又不一樣

  • 子元素的padding如果設定百分比,不論是垂直方向或水平方向,都相對於直接父親元素的width,而與父元素的height無關。

  • 子元素的margin如果設定成百分比,不論是垂直方向還是水平方向,都相對於直接父元素的width

  • border-radius不一樣,如果設定border-radius為百分比,則是相對於自身的寬度

缺點

計算困難,如果我們要定義一個元素的寬度和高度,依照設計稿,必須換算成百分比單位。

各個屬性如果使用百分比,相對父元素的屬性並不是唯一的。例如width和height相對於父元素的width和height,而margin、padding不管垂直或水平方向都相對比父元素的寬度、border-radius則是相對於元素本身等等,造成我們使用百分比單位容易使佈局問題變得複雜。

所以,不建議用%來做響應式佈局。

響應式佈局方法三:vw/vh

響應式佈局方法三:vw/vh

css3中引入了一個新的單位vw/vh,與視圖視窗有關,vw表示相對於視圖窗口的寬度,vh表示相對於視圖視窗高度。任意層級元素,在使用vw單位的情況下,1vw都等於視圖寬度的百分之一。 與百分比佈局很相似,但更好用。

響應式佈局方法四:rem

rem單位是相對於字體大小的html元素,也稱為根元素。預設情況下,html元素的font-size為16px。所以此時1rem = 16px。

優化版

//动态为根元素设置字体大小
function init () {
 // 获取屏幕宽度
 var width = document.documentElement.clientWidth
 // 设置根元素字体大小。此时为宽的10等分
 document.documentElement.style.fontSize = width / 10 + 'px'
}
//首次加载应用,设置一次
init()
// 监听手机旋转的事件的时机,重新设置
window.addEventListener('orientationchange', init)
// 监听手机窗口变化,重新设置
window.addEventListener('resize', init)

瞭解:上面程式碼實現了,無論裝置視覺視窗如何變化,始終設定rem為width的1/10.即實現了百分比佈局。就沒有第一版的媒體查詢那麼僵硬。 以上程式碼需在dom之前寫入(可放在head裡面第一個script標籤)

#響應式佈局方法五:flex彈性佈局

#彈性佈局是一種十分方便的,只需要依賴CSS樣式的實作響應式佈局的方式,也是最多用到的一種實現響應式的方法。

    尤其是現在類似某寶、某東一類的電商web站或手機app的頁面,利用彈性佈局是都可以很輕鬆的實現的。
  • 彈性佈局在父、子元素上都有相對應的屬性來規範子元素在父元素中的「彈性」。

  • 在父元素上,我們常會用到的有關彈性佈局的屬性主要有flex-direction , flex-wrap , justify-content , align-items , align-content ,這幾個屬性分別從主軸的方向、是否換行、項目在主軸上的對齊方式、項目在交叉軸上的對齊方式、項目在多根軸線上的對齊方式來規範了項目在父元素中的彈性。

    #########在子元素上,我們常會用到的有關彈性佈局的屬性主要有order , flex-grow , flex-shrink ,flex-basis , align-self ,這幾個屬性分別從項目的排序、項目放大比例、項目縮小比例、項目佔據主軸空間、單一項目在交叉軸上的對齊方式來規範了項目本身的彈性。 ###

想了解更多程式設計學習,請關注php培訓欄位!

以上是響應式佈局有幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
滑動頁腳滑動頁腳Apr 09, 2025 am 11:50 AM

剛剛推出了一個引人入勝的新網站。標語:Big Tech正在看著您。我們正在看大型技術。上升的出色工作。這

喜歡的頁面喜歡的頁面Apr 09, 2025 am 11:47 AM

前幾天,我發布了有關在JavaScript中解析RSS提要的內容。我還發布了有關RSS設置的信息,討論了Feedbin的核心。

重新創建Codepen Gutenberg嵌入塊以進行理智。重新創建Codepen Gutenberg嵌入塊以進行理智。Apr 09, 2025 am 11:43 AM

了解如何通過Chris Coyier實施WordPress的Gutenberg編輯器來創建一個自定義Codepen塊,並為Sanity Studio提供預覽。

如何使用CSS製作線路圖如何使用CSS製作線路圖Apr 09, 2025 am 11:36 AM

線,條和餅圖是儀表板的麵包和黃油,是任何數據可視化工具包的基本組成部分。當然,您可以使用SVG

編程SASS創建可訪問的顏色組合編程SASS創建可訪問的顏色組合Apr 09, 2025 am 11:30 AM

我們一直在尋求使網絡更容易訪問。顏色對比只是數學,因此Sass可以幫助涵蓋設計師可能錯過的邊緣案例。

我們如何創建一個在SVG中生成格子呢模式的靜態站點我們如何創建一個在SVG中生成格子呢模式的靜態站點Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

PHP模板的後續行動PHP模板的後續行動Apr 09, 2025 am 11:14 AM

不久前,我僅以PHP(基本上是Heredoc語法)發布了有關PHP模板的信息。我從字面上使用該技術來進行某種超級基礎

使用Bootstrap組件創建模態圖像庫使用Bootstrap組件創建模態圖像庫Apr 09, 2025 am 11:10 AM

您是否曾經在網頁上單擊圖像,該圖像通過導航打開圖像的較大版本以查看其他照片?

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用