div 中元素居中的N種常用方法

????????本文主要記錄幾種常用的div盒子水平垂直都居中的方法。本文主要參考了該篇博文并實踐加以記錄說明以加深理解記憶?css之div盒子居中常用方法大全

? ? ? ? 本文例子使用的 html body結構下的div 盒子模型如下:

<body><div class="container"><div class="box"></div></div>
</body>

? ? ? ? ?例子盒子居中效果都如下圖:

注:當把div 盒子模型中子div換成其他塊級元素,如<p>或<h1>~<h6>時,以下方法仍然奏效。但當把子div換成行內元素,如<span>時,第6,第7種方法將失效。

1、彈性布局 設置容器項目在橫軸和縱軸上都居中對齊

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;display: flex;justify-content: center;align-items: center;}.box{width: 120px;height: 120px;background: #55a9ff;}
</style>

?

2、彈性布局 設置容器項目 margin:auto

? ? ? ? 該方法可以不設置容器項目橫軸和縱軸的對齊方式,直接設置margin:auto即可2、彈性布局 設置容器項目 margin:auto

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;display: flex;}.box{width: 120px;height: 120px;margin: auto;background: #55a9ff;}
</style>

??

3、絕對定位法

? ? ? ? 父div要使用其中一種定位方式:relative /?absolute?/?sticky /?fixed子div使用絕對定位,并使它的 top、left、right、bottom 都為0且margin:auto 即可

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;position: relative;}.box{width: 120px;height: 120px;position: absolute;background: #55a9ff;top: 0;left: 0;right: 0;bottom: 0;margin: auto;}
</style>
  • 絕對定位法還可以只設置top、bottom為0,實現只垂直居中
<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;position: relative;}.box{width: 100px;height: 100px;position: absolute;background: #55a9ff;top: 0;bottom: 0;margin: auto;}
</style>

  • ?同理可以只設置left、right為0,實現只水平居中?

4、transform居中法

? ? ? ? 使用 transform 可以不用管子div自身的寬高,但要設置父子div的position屬性,可都設置成?relative /?absolute,此方法IE9 以下不支持

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;position: relative;}.box{width: 120px;height: 120px;position: absolute;background: #55a9ff;top: 50%;left: 50%;transform: translate(-50%,-50%);}	
</style>

5、負margin居中

? ? ? ? 利用子div 負的margin來進行居中,此方法要知道子div固定的寬高,且margin-top、margin-left 要是子div 自身寬高負的一半值

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;position: relative;}.box{width: 120px;height: 120px;position: absolute;background: #55a9ff;top: 50%;left: 50%;margin-top: -60px;margin-left: -60px;}	/* 如果box的寬高都是100px,那margin-top和margin-left要是-50px */
</style>

6、margin固定寬高居中

? ? ? ? 此方法要知道父子div的寬高,且要算出子div的margin 的高度和寬度 恰好在父div居中

該方法把子div換成行內元素,如<span>時將會失效

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;}.box{width: 120px;height: 120px;background: #55a9ff;margin: 90px 90px;}/* 如果 box 的寬高都是 100px,那么 margin: 100px 100px; */
</style>

7、table-cell居中

? ? ? ? 此方法是將父div轉換成表格單元格顯示,然后使用垂直居中并且子div左右margin auto實現,該方法把子div換成行內元素,如<span>時將會失效

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;display: table-cell;vertical-align: middle;}.box{width: 120px;height: 120px;background: #55a9ff;margin: 0 auto;				/* 不能省 */}
</style>

8、不確定寬高居中(絕對定位百分數)

? ? ? ? 此方法不設置子div的寬高,其寬高根據設置占用父div的比例來算,left和right的百分數一樣就可以實現水平居中,top和bottom的百分數一樣就可以實現垂直居中。其中子div要設置成絕對定位,父div 要設置成?relative / absolute /?fixed /?sticky

<style>.container{height: 300px;width: 300px;border: 1px solid black;background-color: aliceblue;position: relative;}.box{position: absolute;background: #55a9ff;top: 25%;left: 25%;right: 25%;bottom: 25%;margin: auto;}/* top / left / right / bottom 設置的比例不一樣,box 的寬高將會隨之變大或變小*/
</style>

以上方法如有錯誤請各位不吝指教,如以后有別的方法將會往下繼續添加,各位有其他方法可留言告知。

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

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

相關文章

休息是不可能休息的

654.最大二叉樹 分析&#xff1a;相比較遍歷順序構建二叉樹&#xff0c;這個相對簡單。 思路&#xff1a;每次找到數組最大值&#xff0c;然后分割數組 class Solution { public:TreeNode*judge(vector<int>&nums){if(nums.size()0) return nullptr;int maxNum0,in…

Springboot 實踐(1)MyEclipse2019創建maven工程

項目講解步驟&#xff0c;基于本機已經正確安裝Java 1.8.0及MyEclipse2019的基礎之上&#xff0c;Java及MyEclipse的安裝&#xff0c;請參考其他相關文檔&#xff0c;Springboot 實踐文稿不再贅述。項目創建講解馬上開始。 一、首先打開MyEclipse2019&#xff0c;進入工作空間選…

Linux系統下安裝Git軟件

環境說明 Linux系統&#xff1a;CentOS 7.9 安裝GCC等 JDK版本&#xff1a;jdk-8u202-linux-x64.tar.gz Maven版本&#xff1a;apache-maven-3.8.8-bin.tar.gz 在以上環境下安裝Git&#xff08;git-2.41.0.tar.gz&#xff09;軟件。 查看是否安裝Git軟件 查看Git版本&#…

如何建設指標管理平臺,實現企業運營效率提升

隨著企業數字化轉型的深入推進&#xff0c;建設指標管理平臺已經成為企業數字化轉型的重要組成部分。 建設指標管理平臺可以幫助企業更好地了解業務數據和業務指標&#xff0c;實現數據可視化和智能化分析&#xff0c;提高企業的決策效率和管理水平。 在過去&#xff0c;企業通…

【深入了解PyTorch】PyTorch分布式訓練:多GPU、數據并行與模型并行

【深入了解PyTorch】PyTorch分布式訓練:多GPU、數據并行與模型并行 PyTorch分布式訓練:多GPU、數據并行與模型并行1. 分布式訓練簡介2. 多GPU訓練3. 數據并行4. 模型并行5. 總結PyTorch分布式訓練:多GPU、數據并行與模型并行 在深度學習領域,模型的復雜性和數據集的巨大規…

最小路徑和——力扣64

文章目錄 題目描述動態規劃題目描述 動態規劃 class Solution {public:int minPathSum(vector<vector<int>>

Python爬蟲(十一)_案例:使用正則表達式的爬蟲

本章將結合先前所學的爬蟲和正則表達式知識&#xff0c;做一個簡單的爬蟲案例&#xff0c;更多內容請參考:Python學習指南 現在擁有了正則表達式這把神兵利器&#xff0c;我們就可以進行對爬取到的全部網頁源代碼進行篩選了。 下面我們一起嘗試一下爬取內涵段子網站&#xff1…

stm32 cubemx can通訊(3)bsp_can

文章目錄 前言一、bspbsp_can.hbsp_can.c 二、如何使用總結 前言 stm32 cubemx can通訊&#xff08;1&#xff09;回環模式 stm32 cubemx can通訊&#xff08;2&#xff09;過濾器設置說明代碼分析 根據前兩篇文章已經能夠實現can標準幀的收發&#xff0c;但是調用的函數沒有標…

2023年國賽數學建模思路 - 案例:異常檢測

文章目錄 賽題思路一、簡介 -- 關于異常檢測異常檢測監督學習 二、異常檢測算法2. 箱線圖分析3. 基于距離/密度4. 基于劃分思想 建模資料 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、簡介 – 關于異常…

軟考高級之系統架構師之數據通信與計算機網絡

概念 OSPF 在劃分區域之后&#xff0c;OSPF網絡中的非主干區域中的路由器對于到外部網絡的路由&#xff0c;一定要通過ABR(區域邊界路由器)來轉發&#xff0c;既然如此&#xff0c;對于區域內的路由器來說&#xff0c;就沒有必要知道通往外部網絡的詳細路由&#xff0c;只要由…

保持城市天際線(力扣)貪心 JAVA

給你一座由 n x n 個街區組成的城市&#xff0c;每個街區都包含一座立方體建筑。給你一個下標從 0 開始的 n x n 整數矩陣 grid &#xff0c;其中 grid[r][c] 表示坐落于 r 行 c 列的建筑物的 高度 。 城市的 天際線 是從遠處觀察城市時&#xff0c;所有建筑物形成的外部輪廓。…

html2canvas生成圖片地址Base64格式轉成blob在轉成file(二進制)可正常發送(保姆教程,復制粘貼可用)

開始: 最終結果: 1. html2canvas方法生成的圖片地址已Base64編碼形式放在img標簽src中可直接展示生成的圖片(注意頁面標簽獲取位置,還有個setTimeout頁面渲染需要時間) setTimeout(function () {var result {};v…

Python 使用Hadoop 3 之HDFS 總結

Hadoop 概述 Hadoop 是一個由Apache 軟件基金會開發的分布式基礎架構。用戶可以在不了解分布式底層細節的情況下&#xff0c;開發分布式程序&#xff0c;充分利用集群的威力進行高速運算和存儲。 Hadoop 實現一個分布式文件系統&#xff08;Hadoop Distributed File Sy…

Python爬蟲——selenium_交互

交互&#xff1a; 點擊&#xff1a;button.click() 輸入&#xff1a;inputs.send_keys() 后退操作&#xff1a;browser.back() 前進操作&#xff1a;browser.forword() 模擬js滾動&#xff1a;browser. js_bottom document.documentElement.scrollTop100000 browser.execute_…

將本地項目上傳至gitee的詳細步驟

將本地項目上傳至gitee的詳細步驟 1.在gitee上創建以自己項目名稱命名的空項目2.進入想上傳的項目的文件夾&#xff0c;然后右鍵點擊3. 初始化本地環境&#xff0c;把該項目變成可被git管理的倉庫4.添加該項目下的所有文件5.使用如下命令將文件添加到倉庫中去6.將本地代碼庫與遠…

Stable Diffusion 插件開發基礎講解

近來Stable diffusion擴散網絡大熱,跟上時代,簡單的文生圖,圖生圖,其實可以滿足絕大多數設計師的應用,但是有什么是賽博畫手無法做到的呢? 那就是他們使用到的stable diffusion的插件開發,他們并不清楚stable diffusino的代碼結構,如果遇到一些代碼層面的報錯問題,他們…

生信豆芽菜-單基因KM曲線

網址&#xff1a;http://www.sxdyc.com/panCancerKMCurve 該工具主要用于查看單基因在泛癌組織中&#xff0c;高低表達的預后情況&#xff0c;這里可以選擇合適的截斷值&#xff0c;比如最佳截斷&#xff0c;中位值&#xff0c;平均值&#xff0c;當然也可以自己輸入&#xff0…

基于長短期神經網絡的客流量預測,基于長短期神經網絡的超短期客流量預測,lstm詳細原理

目錄 背影 摘要 LSTM的基本定義 LSTM實現的步驟 基于長短期神經網絡LSTM的客流量預測 完整代碼: 基于長短期神經網絡LSTM的公交站客流量預測資源-CSDN文庫 https://download.csdn.net/download/abc991835105/88184734 效果圖 結果分析 展望 參考論文 背影 碳排放越來越受到重…

java將字符串中文轉為拼音

可以使用第三方庫來實現中文轉拼音的功能&#xff0c;比如使用pinyin4j這個庫。 首先&#xff0c;需要將pinyin4j庫添加到項目的依賴中。可以通過Maven或者Gradle來添加依賴。 對于Maven&#xff0c;可以在pom.xml文件中添加以下代碼&#xff1a; <dependency><group…

原生信息流廣告特點,如何幫APP開發者增加變現收益?

簡單來說&#xff1a;原生廣告&#xff0c;就是把廣告片和賬號&#xff0c;一起用消耗推流的買量模式&#xff0c;一同投放出去。 用戶看到的廣告/內容&#xff0c;與原生視頻沒有差別——用戶可以點頭像關注、也可以查看賬號歷史信息。原生廣告本質&#xff0c;是顯得真實、原…