成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

針對尺寸單位,為什么不應該使用 px 作為尺寸單位?以及最佳實踐!

開發 前端
響應式適配是日常開發中非常常見的問題,所以在面試中可能會被經常問到。但是很多同學卻沒有專門了解過這方面的知識,導致被問到這方面問題的時候,回答并不盡如人意。

Hello,大家好,我是 Sunday。

響應式適配是日常開發中非常常見的問題,所以在面試中可能會被經常問到。但是很多同學卻沒有專門了解過這方面的知識,導致被問到這方面問題的時候,回答并不盡如人意。

所以,今天咱們就把整個響應式適配的問題、方案 好好梳理一遍,徹底幫助大家解決這個問題。

01、為什么不要使用 px?

屏幕上顯示的所有內容都由像素組成。但是,不同的手機屏幕在 大小、方向、縮放級別和像素上都不相同。比如:Iphone15 和 Iphone15Plus。

圖片圖片

所以,這就會導致在一個屏幕上看起來完美的布局在另一個屏幕上可能會 “破板”。

假設:一個寬度為 600px 的 div,在設計中它應該占據屏幕的一半。但是當你遇到不同的 屏幕 時(4K、1080P、或者 手機)那么這固定的 600px 是無法占據整個屏幕一半的寬度的。

那么這就會導致咱們剛才所說的 “破板” 問題,因此我們不應該使用 px 作為尺寸單位。

02、應該使用什么?

為此 css 提供了很多的尺寸單位來代替 px,如:rem、em、vh、vw...

所以接下來咱們就分別來看看這些尺寸單位代表的都是什么意思,以及應用場景

2.1 rem 與 em

  • rem:“root em”,即:html 根標簽的 fontsize 大小。
  • em:相對于父元素的 fontsize 大小

在響應式的開發中,更加推薦使用 rem 而 非em,原因如下:

  • 根相對: rem單位相對于根 (<html>) 元素的字體大小
  • 可擴展性: 更改根元素的字體大小可以縮放整個網站中指定的大小rem,從而可以更輕松地調整不同屏幕尺寸的布局并提高可訪問性。
  • 默認大?。?nbsp;默認大小 1rem 通常等于 16 像素,除非根元素的字體大小明確設置為不同的值。
  • 一致性: 使用rem單位有助于在整個網站上保持一致的大小調整,因為它避免了使用em單位出現的 "復合效應(即由于嵌套關系,大小會被動的根據祖先元素增大或減小)"。

在日常開發中,我們可以直接通過如下代碼來控制 html 根標簽 fontsize 動態變化:

/**
 * 初始化 rem 基準值,最大為 40px
 */
export const useREM = () => {
  // 定義最大的 fontSize
  const MAX_FONT_SIZE = 40

  // 監聽 html 文檔被解析完成的事件
  document.addEventListener('DOMContentLoaded', () => {
    // 獲取 html 標簽
    const html = document.querySelector('html')
    // 獲取根元素 fontSize 標準,屏幕寬度 / 10。(以 Iphone 為例 Iphone 6 屏幕寬度為 375,則標準 fontSize 為 37.5)
    let fontSize = window.innerWidth / 10
    // 獲取到的 fontSize 不允許超過我們定義的最大值
    fontSize = fontSize > MAX_FONT_SIZE ? MAX_FONT_SIZE : fontSize
    // 定義根元素(html)fontSize 的大小 (rem)
    html.style.fontSize = fontSize + 'px'
  })
}

2.2 ViewProt

視口單位(ViewProt)表示用戶瀏覽器窗口的大小。它有兩個常用的尺寸單位:

  1. vw:表示視口寬度的百分比,即:1vw 代表視口寬度的 1%
  2. vh:表示視口高度的百分比,即:1vh 代表視口高度的 1%

除此之外,還有兩個標記單位:vmin 和 vmax 。表示基于視口的最小和最大尺寸。

  1. vmin(視口最小值):表示視口較小尺寸(寬度或高度)的百分比。 1 vmin 等于視口較小尺寸的 1%。如果視口寬度為 1000px,高度為 800px,則 1vmin 為 8px。
  2. vmax(視口最大值):表示視口較大尺寸(寬度或高度)的百分比。 1 vmax 等于視口較大尺寸的 1%。如果視口寬度為 1000 像素,高度為 800 像素,則 1vmax 為 10 像素。

2.3 百分比(%)

百分比 永遠相對于父元素 的大小的。它允許相對于父元素的大小定義大小、邊距、填充和其他屬性,而不是固定的。因此,所有的 百分比(%) 都會帶來 復合效應(即由于嵌套關系,大小會被動的根據祖先元素增大或減?。?問題

.container {
  width: 50%; /* 容器將占據其父容器寬度的50% */
}

.background-element {
  background-position: 50% 50%; /* 將背景圖像置于中心 */
}

3、最佳實踐

關于尺寸單位的處理有很多的方式,以下是很多公司最常見的一種處理方式:

  • 針對字體大小: 盡量使用 rem 單位,配合 動態 rem 計算進行處理。
  • 針對寬、高:盡量使用 vw + vh 單位,避免 復合效應。
責任編輯:武曉燕 來源: 程序員Sunday
相關推薦

2020-06-05 14:09:42

Kubernetes容器應用程序

2023-08-01 08:18:09

CSSUnset

2020-06-21 21:25:14

物聯網WiFiIOT

2020-06-09 09:19:14

數據庫

2019-04-04 14:33:19

云計算云端企業

2023-04-04 08:10:40

CSS字體元素

2020-09-18 07:01:38

分頁offsetlimit

2019-09-02 09:30:40

2016-11-03 19:52:45

2020-06-17 10:35:16

機器學習AI人工智能

2012-02-01 13:06:07

WebApp最佳實踐用戶體驗

2023-11-27 11:51:13

CSS前端

2023-03-24 12:52:22

2015-10-21 16:11:49

理念實踐運維

2009-01-03 15:07:38

ibmdwAIX

2013-05-29 10:10:05

醫療搜索互聯網大數據

2023-09-20 14:01:14

2020-01-10 11:08:46

云計算公共云IT

2018-11-20 14:03:17

數據科學數據分析數據科學家

2021-01-08 10:48:48

碼農編程編碼測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国 | 瑟瑟免费视频 | 亚洲成年在线 | 欧美日韩一区二区三区不卡视频 | 亚洲欧美一区二区三区视频 | 国产精品久久久久久久久久了 | 成人av在线播放 | 黄色毛片免费视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国内自拍偷拍一区 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 欧美日韩电影一区二区 | 欧美一级久久 | 成人精品一区二区 | 国产欧美性成人精品午夜 | 求毛片| 国产精品欧美日韩 | 在线亚洲欧美 | 伊人成人免费视频 | 成人三级av| 国产99精品 | 一区二区中文字幕 | 欧美一级久久 | 日韩国产一区二区三区 | 日日淫 | 狠狠草视频 | 久久久91精品国产一区二区三区 | 色站综合 | 蜜桃视频在线观看免费视频网站www | 日韩一区二区三区视频 | 午夜视频在线播放 | 日韩精品一区二区三区中文字幕 | 精品久久久久久国产 | 国产欧美精品 | 国产成人免费视频 | 免费看黄色片 | 成人三级视频在线观看 | 国产成人精品一区二区在线 | 精品国产欧美一区二区 | 美女视频. | 色婷婷一区二区三区四区 |