2.居中方式總結

居中方式總結

經典真題

  • 怎么讓一個 div 水平垂直居中

盒子居中

首先題目問到了如何進行居中,那么居中肯定分 2 個方向,一個是水平方向,一個是垂直方向。

水平方向居中

水平方向居中很簡單,有 2 種常見的方式:

  1. 設置盒子 margin : 0 auto:這種居中方式的原理在于設置 margin-leftauto 時,margin-left 就會被設置為能有多大就設置多大,所以盒子會跑到最右邊,而設置 margin-rightauto 時,同理盒子就會跑到最左邊。所以,當我們設置左右的 margin 都是 auto 的時候,盒子就跑到了中間,從而形成了水平居中。

  2. 第二種常見的方式就是通過 display : flex 設置盒子的外層盒子是一個彈性盒,然后通過 justify-content : center 使得內部的盒子居中。

垂直方向居中

關于盒子的垂直方向居中,方法就比較多了,這里介紹幾種:

  1. 通過 verticle-align:middle 實現垂直居中

通過 vertical-align:middle 實現垂直居中是最常使用的方法,但是有一點需要格外注意,vertical 生效的前提是元素的 display:inline-block。并且在使用 vertical-align:middle 的時候需要一個兄弟元素做參照物,讓它垂直于兄弟元素的中心點。vertical-align 對齊的方法是尋找兄弟元素中最高的元素作為參考。

代碼示例如下:

<div class="container"><div class="item"></div><div class="brotherBox"></div>
</div>
.container{width: 500px;height: 300px;background-color: pink;text-align: center;
}
.item{width: 100px;height: 100px;background-color: skyblue;vertical-align: middle;margin: 0 auto;display: inline-block;
}
.brotherBox{height: 100%;/* width: 2px; */background: red;display: inline-block;vertical-align: middle;
}
  1. 通過偽元素 :before 實現垂直居中

平白無故添加一個無意義的參考元素不怎么好,我們可以去除作為參考的兄弟元素,轉為給父元素添加一個偽元素,如下:

<div class="container"><div class="item"></div>
</div>
.container{width: 500px;height: 300px;background-color: pink;text-align: center;
}
.container::before{content : '';display: inline-block;vertical-align: middle;height: 100%;
}
.item{width: 100px;height: 100px;background-color: skyblue;vertical-align: middle;margin: 0 auto;display: inline-block;
}
  1. 通過絕對定位實現垂直居中

這種方式需要設置父元素為相對定位,子元素為絕對定位,然后配合 margin-left 為負的盒子高度一半來實現垂直居中

<div class="container"><div class="item"></div>
</div>
.container{width: 500px;height: 300px;background-color: pink;position: relative;
}
.item{width: 100px;height: 100px;background-color: skyblue;position: absolute;left: 50%;top: 50%;margin-left: -50px;margin-top: -50px;
}
  1. 通過 transform 實現垂直居中

可以通過定位配合 transform 也可以實現垂直居中

<div class="container"><div class="item"></div>
</div>
.container{width: 500px;height: 300px;background-color: pink;position: relative;
}
.item{width: 100px;height: 100px;background-color: skyblue;position: absolute;left: 50%;top: 50%;transform: translateX(-50px) translateY(-50px);
}
  1. 使用彈性盒子居中

通過設置父元素為彈性盒子,然后使用 justify-content: centeralign-items: center 來設置內部盒子水平垂直居中

<div class="container"><div class="item"></div>
</div>
.container{width: 500px;height: 300px;background-color: pink;display: flex;justify-content: center;align-items: center;
}
.item{width: 100px;height: 100px;background-color: skyblue;
}

以上就是比較常見的盒子居中的解決方案,當然目前來講最推薦的就是使用彈性盒子,這是目前最常用的一種方式,也是最推薦的一種方式。

真題解答

  • 怎么讓一個 div 水平垂直居中

參考答案:

  1. 通過 verticle-align:middle 實現垂直居中
  2. 通過父元素設置偽元素 :before ,然后設置子元素 verticle-align:middle 實現垂直居中
  3. 通過絕對定位實現垂直居中
  4. 通過 transform 實現垂直居中
  5. 使用彈性盒子居中

-EOF-

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697495.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697495.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697495.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java面試題之mybatis篇

什么是ORM&#xff1f; ORM&#xff08;Object/Relational Mapping&#xff09;即對象關系映射&#xff0c;是一種數據持久化技術。它在對象模型和關系型數據庫直接建立起對應關系&#xff0c;并且提供一種機制&#xff0c;通過JavaBean對象去操作數據庫表的數據。 MyBatis通過…

MATLAB練習題:randperm函數的練習題

?講解視頻&#xff1a;可以在bilibili搜索《MATLAB教程新手入門篇——數學建模清風主講》。? MATLAB教程新手入門篇&#xff08;數學建模清風主講&#xff0c;適合零基礎同學觀看&#xff09;_嗶哩嗶哩_bilibili MATLAB中有一個非常有用的函數&#xff1a;randperm函數&…

華為算法題 go語言或者ptython

1 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元素在答案里不能重復出現。 你可以按任意順序返…

如何進行高性能架構的設計

一、前端優化 減少請求次數頁面靜態化邊緣計算 增加緩存控制&#xff1a;請求頭 減少圖像請求次數&#xff1a;多張圖片變成 一張。 減少腳本的請求次數&#xff1a;css和js壓縮&#xff0c;將多個文件壓縮成一個文件。 二、頁面靜態化 三、邊緣計算 后端優化 從三個方面進…

adb-monkey命令

目錄 adb shell monkey -p/-v 包名 次數 1、指定一個包 2、指定多個包 3、不指定包 Event percentages&#xff08;事件百分比&#xff09; 常見參數 --throttle 延遲時間 單位毫秒 --pct-touch 設定觸屏事件生成的百分比 --pct-motion 設定滑動事件生成…

面試前端性能優化八股文十問十答第二期

面試前端性能優化八股文十問十答第二期 作者&#xff1a;程序員小白條&#xff0c;個人博客 相信看了本文后&#xff0c;對你的面試是有一定幫助的&#xff01;關注專欄后就能收到持續更新&#xff01; ?點贊?收藏?不迷路&#xff01;? 1&#xff09;如何優化動畫&#x…

c語言中的大小寫字母轉換怎么轉?

在C語言中&#xff0c;大小寫字母轉換是基于ASCII碼表的特性實現的。ASCII碼中&#xff0c;小寫字母從’a’到’z’的ASCII碼值是連續的&#xff08;97到122&#xff09;&#xff0c;而大寫字母從’A’到’Z’的ASCII碼值也是連續的&#xff08;65到90&#xff09;。它們之間有…

Redis高性能原理

redis大家都知道擁有很高的性能&#xff0c;每秒可以支持上萬個請求&#xff0c;這里探討下它高性能的原理。單線程架構和io多路復用技術。 一&#xff0c;單線程架構 單線程架構指的是命令執行核心線程是單線程的&#xff0c;數據持久化、同步、異步刪除是其他線程在跑的。re…

獲取視頻第一幀,以及后續上傳

// 獲取視頻基本信息 const getVideoBasicInfo (videoSrc) > {return new Promise((resolve, reject) > {const video document.createElement("video");video.src videoSrc;// 視頻一定要添加預加載video.preload "auto";// 視頻一定要同源或者…

什么是系統工程(字幕)35

0 00:00:01,190 --> 00:00:02,840 下面的內容 1 00:00:04,850 --> 00:00:06,520 接下來呢就是 2 00:00:08,180 --> 00:00:09,830 16.6.1 3 00:00:11,070 --> 00:00:13,440 項流熱平衡分析 4 00:00:15,350 --> 00:00:16,730 這一節 5 00:00:18,860 --> 0…

億道丨三防平板丨加固平板丨三防加固平板丨改善資產管理

庫存資產管理中最重要的部分之一是準確性&#xff1b;過時的庫存管理技術會增加運輸過程中人為錯誤、物品丟失或紙張損壞的風險。如今隨著三防平板電腦的廣泛使用&#xff0c;庫存管理也迎來了好幫手&#xff0c;通過使用三防平板電腦能夠確保庫存管理、數據存儲和記錄保存的準…

React18源碼: React調度中的3種優先級類型和Lane的位運算

優先級類型 React內部對于優先級的管理&#xff0c;貫穿運作流程的4個階段&#xff08;從輸入到輸出&#xff09;&#xff0c;根據其功能的不同&#xff0c;可以分為3種類型&#xff1a; 1 &#xff09;fiber優先級(LanePriority) 位于 react-reconciler包&#xff0c;也就是L…

掌握 Android 中的 RecyclerView 優化

掌握 Android 中的 RecyclerView 優化 一、RecyclerView Pool以及何時使用它二、onCreateViewHolder 和 onBindViewHolder三、優化 RecyclerView 的不同方法四、視圖無效與請求布局五、ViewHolder模式六、默認的廢料和臟視圖類型七、結論 RecyclerView 是 Android 中一個功能強…

【操作系統】磁盤存儲空間的管理

實驗5 磁盤存儲空間的管理 一、實驗目的 磁盤是用戶存放程序和數據的存儲設備&#xff0c;磁盤管理的主要目的是充分有效地利用磁盤空間。本實驗模擬實現磁盤空間的分配與回收&#xff0c;使學生對磁盤空間的管理有一個較深入的理解。 二、實驗內容 實驗任務&#xff1a;用位…

FreeSWITCH debian11/12 apt安裝

官方給的easy way安裝方式如下&#xff1a; # 換成自己的token TOKENpat_ZrPXJQ8JNWsVQW2ubhnUwi7gapt-get update && apt-get install -y gnupg2 wget lsb-releasewget --http-usersignalwire --http-password$TOKEN -O /usr/share/keyrings/signalwire-freeswitch-…

#LLM入門|Prompt#1.2_提示原則_Guidelines

提示原則 一、編寫清晰、具體的指令 使用分隔符清晰地表示輸入的不同部分&#xff1a; 在Prompt中使用分隔符&#xff0c;如、“”"、< >、 、:等&#xff0c;將不同的文本部分區分開來&#xff0c;避免混淆和意外的結果。分隔符能夠防止提示詞注入&#xff0c;提…

petalinux_zynq7 驅動DAC以及ADC模塊之四:python實現http_api

前文&#xff1a; petalinux_zynq7 C語言驅動DAC以及ADC模塊之一&#xff1a;建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C語言驅動DAC以及ADC模塊之二&#xff1a;petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…

Java觀察者模式:實現高效的事件驅動編程

Java中的裝飾者模式&#xff1a;靈活地為對象添加功能 一、引言 在軟件設計中&#xff0c;我們經常需要為對象動態地添加功能或行為。裝飾者模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許我們在運行時將功能動態地添加到對象上&…

串的相關題目

于是他錯誤的點名開始了 我發現有關hash得題目有些是可以通過map數組來完成的&#xff1a;何為map數組&#xff0c;我們先思考一下最簡單的桶的排序&#xff0c;桶排序是將我們需要數字最為下標輸進數組中&#xff0c;而數組是存放的數字是這個數字出現的次數&#xff0c;但是由…

Matlab論文插圖繪制模板第137期—極坐標分組氣泡圖

在之前的文章中&#xff0c;分享了Matlab極坐標氣泡圖的繪制模板&#xff1a; 進一步&#xff0c;再來分享一下極坐標分組氣泡圖。 先來看一下成品效果&#xff1a; ? 特別提示&#xff1a;本期內容『數據代碼』已上傳資源群中&#xff0c;加群的朋友請自行下載。有需要的朋…