1. 程式人生 > >CSS水平垂直居中常見方法總結

CSS水平垂直居中常見方法總結

說明:本篇文章只是總結一些方法,例子用到的各個元素屬性不做解釋,詳情請看MDN文件,非常的詳盡,例子在chrome瀏覽器下完全好使,IE這個渣渣
附上鍊接:https://developer.mozilla.org/zh-CN/
本文出現的錯誤,請大佬們及時指正,人非聖賢孰能無過,如有更好的方法,也請留言,我及時新增,哈哈!

1、元素水平居中

當然最好使的是:

margin: 0 auto;

居中不好使的原因:
1、元素沒有設定寬度,沒有寬度怎麼居中嘛!
2、設定了寬度依然不好使,你設定的是行內元素吧,行內元素和塊元素的區別以及如何將行內元素轉換為塊元素請看我的另一篇文章!
示例 1:

<div class="box">
    <div class="content">
        哇!居中了
    </div>
</div>

<style type="text/css">
.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    margin: 0 auto;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    line-height
: 100px
;//文字在塊內垂直居中 text-align: center;//文字居中 margin: 0 auto; }
</style>

示例1

2、元素水平垂直居中

方案1:position 元素已知寬度
父元素設定為:position: relative;
子元素設定為:position: absolute;
距上50%,據左50%,然後減去元素自身寬度的距離就可以實現
示例 2:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
width: 300px; height: 300px; position: relative; } .content { background-color: #F00; width: 100px; height: 100px; position: absolute; left: 50%; top: 50%; margin: -50px 0 0 -50px; }

示例2

方案2:position transform 元素未知寬度
如果元素未知寬度,只需將上面例子中的margin: -50px 0 0 -50px;替換為:transform: translate(-50%,-50%);
效果如上!
示例 3:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

示例3

方案3:flex佈局
示例 4:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    display: flex;//flex佈局
    justify-content: center;//使子專案水平居中
    align-items: center;//使子專案垂直居中
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
}

示例4
方案4:table-cell佈局
示例 5:
因為table-cell相當與表格的td,td為行內元素,無法設定寬和高,所以巢狀一層,巢狀一層必須設定display: inline-block;td的背景覆蓋了橘黃色,不推薦使用

<div class="box">
    <div class="content">
        <div class="inner">
        </div>
    </div>
</div>

.box {
    background-color: #FF8C00;//橘黃色
    width: 300px;
    height: 300px;
    display: table;
}
.content {
    background-color: #F00;//紅色
    display: table-cell;
    vertical-align: middle;//使子元素垂直居中
    text-align: center;//使子元素水平居中
}
.inner {
    background-color: #000;//黑色
    display: inline-block;
    width: 20%;
    height: 20%;
}

示例5

相關推薦

53.CSS---CSS水平垂直居中常見方法總結

out 嵌套 span 垂直 ems 寬度 分享圖片 .net tag CSS水平垂直居中常見方法總結 1、元素水平居中 當然最好使的是: margin: 0 auto; 居中不好使的原因: 1、元素沒有設置寬度,沒有寬度怎麽居中嘛! 2、設置了寬度依然不好使,

CSS水平垂直居中常見方法總結

說明:本篇文章只是總結一些方法,例子用到的各個元素屬性不做解釋,詳情請看MDN文件,非常的詳盡,例子在chrome瀏覽器下完全好使,IE這個渣渣 附上鍊接:https://developer.mozi

css水平垂直居中解決方法

css居中方案是一個老生常談的問題,主要包括水平居中和垂直居中,水平居中大家用的比較多,最常用的莫過於margin:0 auto方案了,而垂直居中,很多時候會讓很多新手頭疼。 常用居中方案(水平) margin:0 auto解決方案 (水平居中) 適用於已經知道寬度

CSS元素水平垂直居中方法

垂直 .com put ron spa blank span osi 絕對定位 1. 元素水平居中 1.1 設置父元素的屬性 text-align: center; 說明:此屬性只針對父元素的子元素為內聯元素時有效,比如:img,input,select,but

10種CSS水平垂直居中方法

10 種css 水平垂直居中方法 參考地址:https://mp.weixin.qq.com/s/uTnMr4lv_Hrlt2TH9A01gA (直接網上搜索到的地址,人家整理的比較好) 編寫該博文僅僅作為梳理,鞏固學習,加強記憶。 場景一:居中元素寬高已知

css水平垂直居中方法介紹

在專案中經常會碰到對元素進行垂直水平居中的需求,下面就來介紹一下不同場景可用的方法!一,水平居中方法1,text-align: center    對於inline 和 inline-block元素,可以對其父元素新增text-align: center樣式<div s

css設定元素水平垂直居中方法

看到標題,相信大家並不陌生。這個問題,經常會出現在面試題中。通常會要求面試者寫出幾種方法。那麼,究竟有幾種方法,每種方法的相容情況如何,相信大家很少研究過。今天,我們就一起來看看。 通常分為2種情況,已知元素的寬度或未知。 我們先說說在已知的情況下,要如何設定。 舉例說明:

CSS 水平垂直居中的幾種實現方法

ren parent frame right iframe 偏移 orm 結構 img 前言 項目中經常碰到需要實現水平垂直居中的樣式。下面就總結幾種常用的方法 水平對齊+行高 【思路一】text-align + line-height實現單行文本水平垂直居中 <st

CSS水平垂直居中

水平居中 ron lac 表現 -a posit ble ive width 水平居中 HTML代碼: 1 <div class="parent"> 2 <div class="child"></div> 3 </div&

div盒子水平垂直居中方法

瀏覽器 效果 tom title height splay 固定 ima color 一、盒子沒有固定的寬和高 方案1、Transforms 變形 這是最簡單的方法,不僅能實現絕對居中同樣的效果,也支持聯合可變高度方式使用。內容塊定義transform: translate

CSS垂直居中方法

-o 文字 單行 fill tab tom ng- dog val 昨天總結了css中水平居中的方法,今天來總結一下css中實現垂直居中的方法。 line-height line-height用於實現單行文本的垂直居中,如下圖中,我們要求單行文本垂直居中,只

關於垂直居中方法總結

第一條 方法 ofo 最大 在外 AC web 精確 彈性布局 說明 .center表示要被居中的元素,.wrap 表示要居中的元素的父元素(包含.center元素的元素)。 為了便於理解和敘述同一: 對於文本內容居中的情況,.wrap就是指包含文字的元素(例

div自適應水平垂直居中方法

tom ott boot for add 柵格 ftl IV tst 1.Flexbox布局: display:flex; justify-content:center; align-items:center; width:100%; 2.Bootstrap柵格布局 一共1

css實現垂直居中方法

垂直居中是佈局中十分常見的效果之一,為實現良好的相容性,PC端實現垂直居中的方法一般是通過絕對定位,table-cell,負邊距等方法。有了css3,針對移動端的垂直居中就更加多樣化。 方法1:table-cell html結構: <div class="box box1">

新get到的一個水平垂直居中方法

參考地址:http://www.zhangxinxu.com/study/201209/vw-vh-css-custom-dialog.html 平常方法: .demo{ position: absolute; top:50%; lef

元素水平垂直居中方法

1.父級相對定位,子級絕對定位 .parent{ width: 500px; height: 500px; background: #f00; position: relative; } .child{ width: 300px; height:

讓浮層水平垂直居中方法

(一)利用絕對定位與transform          <div class="parent">       <div class="children"></div>     </div>   將父元素定位,子元素

HTML+CSS水平垂直居中

  啦啦啦,好了,今天來分享自己的第一個知識點,難得自己還能想起來過來部落格園,寫寫部落格的。   好了,言歸正傳,今天分享關於html和css的一個簡單的知識點,對於大部分從事前端開發的人員來說可能都是很簡單的,但是,對於我這種患有嚴重健忘症的人還有一些初入前端的小夥伴來說,整理一下可能是有百利而無一害的

DIV文字水平垂直居中方法

但是 true style pan 有關 del ext tab align 水平居中 text-align:center 垂直居中(vertical-align) vertical-align:middle; vertical-align時而沒效果 然而真實使

CSS 水平垂直居中

塊級元素 水平垂直居中 <div class="wrap"> <div class="box">fdsa</div> </div> 1.方法一 .wrap { width: