水平,垂直居中的15種方法

来源:https://www.cnblogs.com/qianduanting/archive/2018/03/28/8663663.html
-Advertisement-
Play Games

一.水平居中 1.文字水平居中 <div class="one"> 測試居中 </div> <style> .one{ width: 200px; height: 100px; border:1px solid red; text-align: center; } </style> 2.盒子居中 < ...


一.水平居中

1.文字水平居中

<div class="one">   測試居中 </div> <style> .one{   width: 200px;   height: 100px;   border:1px solid red;   text-align: center; } </style>

2.盒子居中

<div class="one">是盒子居中</div> <style> .one{   width: 200px;   height: 100px;   border:1px solid red;   margin: 0 auto; } </style> 3.多塊級元素水平居中 <div class="container"> <div class="child"> 簡單不先於複雜 </div> <div class="child"> 而是在複雜之後 </div> <div class="child"> 簡單不先於複雜,而是在複雜之後。 </div> <div class="child"> 簡單不先 </div> </div> <style> .container {   height:100px;   padding: 8px;   text-align: center;   border: 2px dashed #f69c55; } .child {   padding: 8px;   width: 4rem;   margin: 0 8px;   color: #fff;   background: #000;   display: inline-block; } </style> 4.彈性佈局,多塊級水平居中 <div class="flex-center"> <div> 測試1 </div> <div> 測試2測試2測試2測試2測試2測試2測試2 </div> <div> 測試3測試3測試3測試3 </div> </div> <style> .flex-center {   width: 800px;   padding: 8px;   display: flex;   justify-content: center;   border: 2px dashed #f69c55; } .flex-center >div {   padding: 8px;   width: 100px;   margin: 0 8px;   color: #fff;   background: #000; } </style> display: flex;相容性不好可以這樣解決:最少支持ie10以上 .flex-center{ display: -webkit-flex; /* 新版本語法: Chrome 21+ */        display: flex; /* 新版本語法: Opera 12.1, Firefox 22+ */       display: -webkit-box; /* 老版本語法: Safari, iOS, Android browser, older WebKit browsers. */       display: -moz-box; /* 老版本語法: Firefox (buggy) */ display: -ms-flexbox; /* 混合版本語法: IE 10 */      } .flex-center>div { -webkit-flex: 1; /* Chrome */         -ms-flex: 1 /* IE 10 */         flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */          -webkit-box-flex: 1 /* OLD - iOS 6-, Safari 3.1-6 */         -moz-box-flex: 1; /* OLD - Firefox 19- */         }

5.垂直居中

1.元素是display:block和display:inline-block都可以使用height:100px ,line-height:100px;

2.利用display:table-cell

<div class="center-table"> <p class="v-cell">The more technology you learn</p> </div> <style> .center-table {   width: 800px;   display: table;   height: 140px;   border: 2px dashed #f69c55; } .v-cell {   display: table-cell;   vertical-align: middle; } </style>

3.用flex佈局

<div class="center-flex">   <p>Dance like nobody </p> </div> <style> .center-flex {   width: 500px;   height: 140px;   display: flex;   flex-direction: column;   justify-content: center;   border: 2px dashed #f69c55; } </style>

4.塊級元素固定高度(這個應該是大家最熟悉的,例子就不放了)

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  height: 100px;
  margin-top: -50px; 
}

 5.不知高度

<div class="parent"> <div class="child">世界上有 10 種人,懂二進位的和不懂二進位的。</div> </div> <style> .parent { height: 140px; position: relative; border: 2px dashed #f69c55; } .child {   position: absolute;   top: 50%;   transform: translateY(-50%);   background: black;   color: #fff;   padding: 1rem;   width: 12rem; } </style> transform的相容性:
transform: translate(50px,100px);
-ms-transform: translateY(-50%)		/* IE 9 */
-webkit-transform:  translateY(-50%)	/* Safari and Chrome */
-o-transform: translateY(-50%)/* Opera */
-moz-transform:  translateY(-50%);	/* Firefox */

三,水平居中,垂直居中

1.固定寬高的水平垂直居中(大家熟悉的)

parent {

    position: relative;
}
.child {
    width: 300px;
    height: 100px;
    padding: 20px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -70px 0 0 -170px;
}
2.不知寬高-水平垂直居中
.parent {
    position: relative;
}
.child {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
3.flex佈局(上面水居中和垂直居中有例子就不寫了)
.parent {
    display: flex;
    justify-content: center;
    align-items: center;
}
4.利用grid實現水平垂直居中,相容性較差,不推薦。
.parent {
  height: 140px;
  display: grid;
}
.child { 
  margin: auto;
}
5.彈窗的水平居中(截圖不好放,就不放了,大家粘貼就可以運行)
<div class="element"> <div>水平垂直居中了,好開心哦</div> </div> <style> .element{   width: 300px;   height: 300px;   background-color: deeppink;   position: absolute;   left: 0;   right: 0;   top: 0;   bottom: 0;   margin: auto; } </style>
大家有好的方法就留言哈
 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引子: 別的複雜前端開發技術不會,用得多的還是手寫代碼,手動處理。 3年前手寫合併壓縮js和css文件的asp腳本代碼目前還能正常運行,也就沒有多大使用別的技術的動力。 直到近期被一個問題糾結著,今天花了一天時間摸索完成了一個後端構建功能。 目前接觸到的項目前端開發模式基本上是一樣的 1. 項目不會 ...
  • <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <b>加粗</b> <u>下劃線</u> <i>傾斜</i> <p>一個段落</p> <a name="here">回到此處</a> <ol typ ...
  • 大多數情況下容易忘記的快捷鍵,在此整理了一下。 編輯快捷鍵:cmd+L:選擇行(重覆按下將下一行加入選擇);cmd+D:選擇詞(重覆按下時多重選擇相同的詞進行多重編輯);cmd+shift+D 複製游標所在整行,插入到下一行control+shift+M:選擇括弧的內容; cmd+shift+ent ...
  • H5中新增的表單屬性:autofocus(獲得焦點)、placeholder(給出提示信息)、list(類似下拉列表)、autocomplete(有記錄的話會自動出現記錄信息)input元素:color(顏色選擇器) date(日期選擇器) time(時間選擇器) datetime-local(本地 ...
  • background-clip屬性的通俗作用就是指定元素背景所在的區域,有四種取值 1、border-box border-box是預設值,表示元素的背景從border區域(包括border)以內開始保留背景。 簡單代碼如下: 效果如下: 從上圖我們可以看出,元素背景預設是存在於邊框及以內的區域,但 ...
  • 在製作網頁動態效果時,一定會遇到某些需求,要求某段程式等待多時時間後再開始執行,就像在我們的生活中一樣,待會兒再開始做一件事。在JavaScript中主要通過定時器實現此類需求,本文將對定時器做一個概括,正對setTimeout()做一個詳細用法總結。 一.setInterval與setTimeou ...
  • [轉載] meta的標簽的使用是我在前端學習中曾經困惑過一段時間的問題。一方面不是很瞭解meta標簽的用途,另一方面是對於meta標簽里的屬性和值不是懂,也不知道從哪裡冒出來的,所以這篇文章專門整理下meta標簽,一個必用且關鍵的標簽。 什麼是meta標簽?引自下W3school的定義說明一下。元數 ...
  • 1 2 3 4 5 拖放API 6 31 32 33 34 請拖放 35 36 37 94 95 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...