国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

h5響應(yīng)式布局、PC和移動端適配方案

這篇具有很好參考價值的文章主要介紹了h5響應(yīng)式布局、PC和移動端適配方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言

春招真的是太卷了,讓我懷疑春招到底在招誰(是我太菜惹qaq)??傊€是不能松懈下來,總結(jié)一下在實(shí)習(xí)期間遇到的h5的響應(yīng)式布局、PC和移動端適配方案的選擇以及一些問題。本文部分文案由chat-gpt編寫,例如介紹響應(yīng)式布局的文案(才不是因?yàn)槲覒衺)。

響應(yīng)式布局

響應(yīng)式布局是指在不同的設(shè)備或屏幕大小下,網(wǎng)頁能夠自動適配并呈現(xiàn)出最佳的視覺效果和用戶體驗(yàn)。這是一種以屏幕大小和設(shè)備特性為基礎(chǔ)的設(shè)計方法,旨在確保網(wǎng)站能夠在各種不同設(shè)備上都能夠完美呈現(xiàn)。這樣,無論是在大屏幕電腦、筆記本電腦、平板電腦還是手機(jī)上訪問網(wǎng)站都能夠得到良好的體驗(yàn)。
總結(jié)了一下,網(wǎng)上目前有以下幾種方案:

  1. 媒體查詢
  2. flex布局
  3. rem
  4. 百分比
  5. vw/vh
  6. 移動端 viewport
  7. 開發(fā)PC端和移動端兩套頁面

在實(shí)習(xí)的時候我做過兩個項(xiàng)目,是使用了媒體查詢和rem的,效果還可以,我會著重介紹這兩個方案。

@media媒體查詢

關(guān)于媒體查詢的詳細(xì)介紹和使用方法:https://developer.mozilla.org/zh-CN/docs/Web/CSS/Media_Queries/Using_media_queries
講大白話就是在符合條件的情況下,特定的樣式會生效,下面是一個例子:

.test {
	width: 80px;
	height: 80px;
	background: #ccc;
}
@media screen and (min-width:600px){
	.test {
		width: 100px;
		height: 100px;
	}
}

這個效果就是在屏幕寬度小于600px的時候,test類中的高度和寬度都是80px,而在大于等于600px的時候變成了100px,注意這里背景顏色還是原來的灰色,樣式只是疊加了,并不是直接替換掉。
看到這里你應(yīng)該就懂了,電腦、平板和手機(jī)各寫一套不就行了,確實(shí)如此,這么做可以滿足大部分的用戶。
但也有許多問題,比如寫三套就夠折磨人了,而且由于市面上手機(jī)、電腦和平板屏幕寬度都不太一樣,寫三套只能滿足大部分的用戶,一些用戶屏幕尺寸比較刁鉆的(例如尺寸在手機(jī)和平板分割點(diǎn)邊緣的),顯示的效果就不是很好了。

flex布局

flex布局是一種CSS 3的新的布局方式,可以輕松的實(shí)現(xiàn)彈性布局。它的主要思想是通過容器和子項(xiàng)之間的關(guān)系來實(shí)現(xiàn)網(wǎng)頁布局。和傳統(tǒng)的布局方式相比,flex布局有很多優(yōu)點(diǎn),比如可以快速設(shè)置元素的大小、位置、對齊等屬性,還可以自適應(yīng)不同尺寸的屏幕和設(shè)備,從而實(shí)現(xiàn)更好的響應(yīng)式布局。

使用flex布局,需要對容器設(shè)置display: flex屬性。
然后使用flex-direction屬性來設(shè)置子項(xiàng)的方向(水平或垂直)。flex-wrap屬性則用于控制子項(xiàng)是否可以換行,align-items屬性用于控制子項(xiàng)在交叉軸上的對齊方式,justify-content屬性用于控制子項(xiàng)在主軸上的對齊方式。通過這些屬性的設(shè)置,我們可以輕松的實(shí)現(xiàn)各種布局效果,同時也可以在響應(yīng)式布局中實(shí)現(xiàn)更好的適應(yīng)性。

個人感覺flex布局比較適合一些頁面比較簡單的頁面,在PC和移動端都有不錯的體驗(yàn)。

rem

rem布局是一種響應(yīng)式布局方式,用于將屏幕尺寸和設(shè)備DPI等因素考慮在內(nèi),讓頁面能夠在不同的設(shè)備上自適應(yīng)調(diào)整布局,在各種尺寸和密度的屏幕上呈現(xiàn)出更好的視覺體驗(yàn),主要用在移動端上面。

rem是根據(jù)根元素(也就是html標(biāo)簽)上的font-size來決定的,例如默認(rèn)html的font-size為16px,那么1rem就相當(dāng)于16px,也就是倍數(shù)的關(guān)系。那么當(dāng)屏幕寬度不一樣的時候,我們就需要動態(tài)修改html上的font-size來達(dá)到設(shè)配的效果。

動態(tài)修改有幾種方案,第一種是通過媒體查詢來修改:

@media screen and (min-width: 320px) {
  html {
    font-size: 21.33333333px;
  }
}
@media screen and (min-width: 360px) {
  html {
    font-size: 24px;
  }
}
@media screen and (min-width: 375px) {
  html {
    font-size: 25px;
  }
}
@media screen and (min-width: 384px) {
  html {
    font-size: 25.6px;
  }
}
@media screen and (min-width: 400px) {
  html {
    font-size: 26.66666667px;
  }
}
@media screen and (min-width: 414px) {
  html {
    font-size: 27.6px;
  }
}
@media screen and (min-width: 424px) {
  html {
    font-size: 28.26666667px;
  }
}
@media screen and (min-width: 480px) {
  html {
    font-size: 32px;
  }
}
@media screen and (min-width: 540px) {
  html {
    font-size: 36px;
  }
}
@media screen and (min-width: 720px) {
  html {
    font-size: 48px;
  }
}
@media screen and (min-width: 750px) {
  html {
    font-size: 50px;
  }

還有一種方法是通過js來動態(tài)修改:

function remSize(){
  var deviceWidth = document.documentElement.clientWidth || window.innerWidth; //兼容多瀏覽器

  //限制寬度
  if(deviceWidth >= 750){
    deviceWidth = 750
  }
  if(deviceWidth <= 320){
    deviceWidth = 320
  }

  /*
  為什么除以7.5呢?是因?yàn)榻Y(jié)果比較好計算,這也是可以根據(jù)設(shè)計稿的寬度來決定的。
  例如設(shè)計稿寬度是750px,那么將html的font-size設(shè)置成750/7.5=100px,那么1rem就相當(dāng)于100px。當(dāng)屏幕寬度不同的時候,也可以達(dá)到自適應(yīng)的效果。
  */
  document.documentElement.style.fontSize = (deviceWidth / 7.5) + 'px'
  document.querySelector('body').style.fontSize = 0.16 + 'rem' //相當(dāng)于16px
}
remSize()
//調(diào)整窗口大小時調(diào)用函數(shù)
window.onresize = ()=> remSize()

通過以上操作,在css文件中就可以使用rem單位了,在不同的環(huán)境下也都有著不錯的效果和體驗(yàn)。
當(dāng)然自己手寫的還是比較粗糙,現(xiàn)在比較成熟和流行的方案有淘寶的flexible.js,我們可以下載源碼到自己的項(xiàng)目里面使用,原理和上面例子差不多,這里就不過多贅述。

如果你還是想用px,懶得自己計算rem,那也可以通過插件來解決,例如在vue項(xiàng)目中,通過安裝postcss-px2rem這個插件,然后在vue.config.js中設(shè)置參數(shù)就可以了:

module.exports = {
  // 適配
  css: {
    loaderOptions: {
      css: {},
      postcss: {
        plugins: [
          require('postcss-px2rem')({
            remUnit: 75// 1rem為75px,意思是在750的設(shè)計稿下,把屏幕切成10份,那么一份就是75了。那么在其他寬度的設(shè)計稿下也是按照這個比率來計算,達(dá)到適配。
          })
        ]
      }
    }
  },
  ...
 }

然后在css文件中你就可以繼續(xù)愉快的使用px了。
但這個方法也存在著缺陷,例如項(xiàng)目中某些樣式是通過實(shí)時計算的px值得到的,這些值就不能換算成rem了。

百分比

就如同字面一樣,用百分比來設(shè)置高度,寬度,margin和padding等屬性。但缺點(diǎn)在于他們參考的元素并不是統(tǒng)一的。例如width和height會參考父元素的width和height,但margin和padding參考的是父元素的width,而圓角百分比是參考自身的,因?yàn)檫@些原因很可能出現(xiàn)問題,所以不推薦單獨(dú)使用。

移動端 viewport

Viewport(視口)是一個設(shè)備獨(dú)立像素的抽象概念,它是瀏覽器上下文中的一個可視化區(qū)域。Viewport 的大小隨著設(shè)備的屏幕大小而變化,而且無法通過 JavaScript 直接獲取其準(zhǔn)確值。Viewport在響應(yīng)式網(wǎng)頁設(shè)計方案中非常重要,在移動設(shè)備上尤為關(guān)鍵,因?yàn)橐苿釉O(shè)備通常會有不同大小的屏幕。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
width=device-width: 自適應(yīng)手機(jī)屏幕的尺寸寬度
maximum-scale: 縮放比例的最大值
minimum-scale: 縮放比例的最小值
inital-scale: 縮放的初始化
user-scalable: 用戶是否能縮放頁面

vw/vh

使用vw和vh適配是一種比較新的響應(yīng)式布局技術(shù),用于自適應(yīng)不同尺寸屏幕和設(shè)備。vw和vh是視窗寬度和高度的相對單位,使用vw和vh單位可以使元素在不同尺寸的屏幕上自適應(yīng)調(diào)整大小和位置,從而實(shí)現(xiàn)更好的布局效果。

使用viewport meta標(biāo)簽在HTML文件中設(shè)置視口:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

使用vw單位代替固定值的寬度,例如:width: 50vw;
使用vh單位代替固定值的高度,在實(shí)際應(yīng)用中可結(jié)合媒體查詢等技術(shù)進(jìn)行適配,例如:

height: 50vh;
@media (max-width: 768px) {
  height: 100vh;
}

需要注意的是,由于視窗的寬高比例可能與實(shí)際屏幕比例不一致,因此在設(shè)置元素大小和位置時,最好使用相對定位和百分比來實(shí)現(xiàn)。此外,vw和vh單位在一些低版本瀏覽器中可能無法支持,需要進(jìn)行兼容處理。

開發(fā)PC端和移動端兩套頁面

如果PC和移動端的頁面差異太大的話,也是可以選擇開發(fā)兩套頁面的。

總結(jié)

總之,個人感覺沒有完美的適配方案,只能根據(jù)自己的需求來選擇,盡量達(dá)到理想的狀態(tài)。也不一定只選擇一種方案,可以結(jié)合多種方案來實(shí)現(xiàn)效果。

如果上述內(nèi)容有任何問題,歡迎留言討論。
參考鏈接:https://blog.csdn.net/LOxia/article/details/123723334
https://juejin.cn/post/7035540378811891749文章來源地址http://www.zghlxwxcb.cn/news/detail-446322.html

到了這里,關(guān)于h5響應(yīng)式布局、PC和移動端適配方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【H5移動端】常用的移動端方案合集-鍵盤呼起、全面屏適配、圖片大小顯示、300ms點(diǎn)擊延遲、首屏優(yōu)化(不定期補(bǔ)充~)

    【H5移動端】常用的移動端方案合集-鍵盤呼起、全面屏適配、圖片大小顯示、300ms點(diǎn)擊延遲、首屏優(yōu)化(不定期補(bǔ)充~)

    這篇文章總結(jié)了我在工作中做H5遇到的一些問題,包括我是怎么解決的。可能不是當(dāng)下的最優(yōu)解,但是能保證解決問題。 單位適配問題可看:【H5移動端】前端H5移動端的單位適配方案集,包括給你用例子講明白什么是1像素的問題(不定期補(bǔ)充~) 本文章未來也會不定期的補(bǔ)充

    2024年02月14日
    瀏覽(19)
  • vue項(xiàng)目pc端和移動端適配

    一、樣式中根據(jù)設(shè)計稿確定縮放比例(可以設(shè)置全局或者部分頁面) 二、監(jiān)聽窗口大小改變,設(shè)置根字體大小 created() { // 獲取當(dāng)前設(shè)備的寬度,設(shè)置rem的根字體大小 let width = window.innerWidth; width = width = 1200 ? 1200 : width; const htmlObj = document.getElementsByTagName(“html”)[0]; htmlObj.sty

    2023年04月09日
    瀏覽(25)
  • 【前端布局篇】響應(yīng)式布局 Bootstrap 移動端布局

    【前端布局篇】響應(yīng)式布局 Bootstrap 移動端布局

    1. 布局介紹 布局:layout 對事物的全面規(guī)劃和安排 頁面布局:對頁面的文字、圖形或表格進(jìn)行格式設(shè)置。包括字體、字號、顏色紙張大小和方向以及頁邊距等。 網(wǎng)頁布局:利用html搭建結(jié)構(gòu)與內(nèi)容,使用CSS添加裝飾 HTML5+CSS3系列課程 攜程網(wǎng)首頁-移動端 響應(yīng)式布局實(shí)戰(zhàn)之微加建

    2024年02月10日
    瀏覽(26)
  • uniapp制作pc端響應(yīng)式布局——帶開源前端【伸手黨福利】【持續(xù)更新】

    實(shí)現(xiàn)目標(biāo):uniapp一套式制作pc端、pad端、手機(jī)端。符合國家等保二級標(biāo)準(zhǔn)。 截至目前(2023年3月2日),uniapp對于橫屏的支持,仍舊過于保守,uni-admin在移動端bug不斷,顯示錯位和兼容性很難作為主推產(chǎn)品進(jìn)行呈現(xiàn)。側(cè)邊欄沒有原生動畫(web端可以后期使用css動畫強(qiáng)擼,安裝包

    2023年04月16日
    瀏覽(27)
  • 【移動端網(wǎng)頁布局】移動端網(wǎng)頁布局基礎(chǔ)概念 ④ ( 物理像素 | 物理像素比 | 代碼示例 - 100 像素在 PC瀏覽器 / 移動端瀏覽器 顯示效果 )

    【移動端網(wǎng)頁布局】移動端網(wǎng)頁布局基礎(chǔ)概念 ④ ( 物理像素 | 物理像素比 | 代碼示例 - 100 像素在 PC瀏覽器 / 移動端瀏覽器 顯示效果 )

    移動端 網(wǎng)頁開發(fā) 與 PC 端開發(fā)有很多不同之處 , 在圖片處理方向需要采用 二倍圖 / 三倍圖 / 多倍圖 方式進(jìn)行圖片處理 ; 圖片處理的方式與如下的 物理像素 與 物理像素比 概念相關(guān) ; 物理像素 : 物理像素就是 設(shè)備 上的分辨率 , 如 1920 x 1080 像素 , 就是寬度上有 1920 個像素 , 高

    2023年04月23日
    瀏覽(29)
  • 前端移動端布局自適應(yīng) 及移動端和PC端共用一套代碼注意事項(xiàng)

    前端移動端布局自適應(yīng) 及移動端和PC端共用一套代碼注意事項(xiàng)

    前端移動端布局自適應(yīng) 目錄 一、自適應(yīng)布局概念? 二、使用步驟 1. head標(biāo)簽里要寫適用移動端 2. 自適應(yīng)單位問題 3. CSS如何寫? 總結(jié) 前言 移動端布局需要適應(yīng)不同大小手機(jī)平板屏幕,所以字體圖片等尺寸就要做到隨著屏幕大小的變化去自適應(yīng),這樣會給用戶很好的體驗(yàn)感和

    2024年02月08日
    瀏覽(27)
  • H5嵌入小程序適配方案

    H5嵌入小程序適配方案

    時間過去了兩個多月,2024已經(jīng)到來,又老了一歲。頭發(fā)也掉了好多。在這兩個月時間里都忙著寫頁面,感覺時間過去得很快。沒有以前那么輕松了。也不是遇到了什么難點(diǎn)技術(shù),而是接手了一個很爛得項(xiàng)目。能有多爛,一個頁面發(fā)起六次同一個請求得存在,不得已又要重構(gòu)頁

    2024年01月22日
    瀏覽(18)
  • 微信小程序適配問題 移動端適配方案 viewport

    iPhone X 兼容 在小程序頁面開發(fā)中,涉及到需要適配 iPhone X 的地方主要有:導(dǎo)航欄(NavigationBar),標(biāo)簽欄(TabBar)以及頁面底部的吸底按鈕。 對于position: fixed的可交互組件,如果渲染在iPhone X的安全區(qū)域外,容易誤觸 Home Indicator,應(yīng)當(dāng)把可交互的部分都渲染到安全區(qū)域內(nèi)。

    2024年02月12日
    瀏覽(23)
  • vue 移動端開發(fā)vw適配方案&rem適配方案 + vant框架 + unocss|tailwindcss

    vue 移動端開發(fā)vw適配方案&rem適配方案 + vant框架 + unocss|tailwindcss

    寫在前面的話:看了這篇文章,有些東西名詞啥的不懂的,或者有疑問的推薦百度,因?yàn)閷懙奶嗾娴娘@得很啰嗦! 目前移動端適配,在市面上主流適配方案無非就兩種,rem方案和vw方案。這些方案,就可以自動適配不同移動端屏幕尺寸動態(tài)縮放。其實(shí)他的適配,你可以理解

    2024年02月12日
    瀏覽(23)
  • web移動端適配有哪些解決方案?每個方案的優(yōu)缺點(diǎn)評估

    移動端適配的解決方案主要包括以下幾種: rem方案 :這是最早被廣泛采用和討論的移動端適配方案。通過在頁面上使用 rem 單位來控制頁面元素的大小,實(shí)現(xiàn)在不同尺寸的設(shè)備上保持界面展示效果的一致性。這種方案的優(yōu)點(diǎn)在于簡單易用,但缺點(diǎn)是對安卓的適配性可能不夠好

    2024年02月21日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包