国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

在css里div怎么垂直居中

2020-03-24 17:46:39
字體:
來源:轉載
供稿:網友
如果是在高寬的div在網頁中垂直居中,那一定很簡單,相信大家也很容易的寫出來,但如果是固定高寬的div如何垂直居中呢?那么這些div如何垂直居中呢?這篇文章,我總結一下

固定高寬div垂直居中

enter image description here

如上圖,固定高寬的很簡單,寫法如下:

 position: absolute; left: 50%; top: 50%;width:200px;height:100px;margin-left:-100px;margin-top:-50px;

不固定高寬div垂直居中的方法

方法一:

用一個“ghost”偽元素(看不見的偽元素)和 inline-block / vertical-align 可以搞定居中,非常巧妙。但是這個方法要求待居中的元素是 inline-block,不是一個真正通用的方案。

html如下:

 div >

css如下:

/* This parent can be any width and height */.block { text-align: center;/* The ghost, nudged to maintain perfect centering */.block:before { content:  display: inline-block; height: 100%; vertical-align: middle; margin-right: -0.25em; /* Adjusts for spacing *//* The element to be centered, can also be of any width and height */ .centered { display: inline-block; vertical-align: middle; width: 50%;}

方法二:

可以用table布局方法,但是這種方法也有局限性!

寫法如下:

 table >

由于table寫法比較費時,你也可以用div代替table,寫法如下:

html:

 div  div  Unknown stuff to be centered. /div  /div .something-semantic { display: table; width: 100%;.something-else-semantic { display: table-cell; text-align: center; vertical-align: middle;}

方法三,終極解決方法:

以上2中方法可能都有其局限性,我介紹的第三中方法是比較成熟的不是固定高寬div的垂直居中的方法!但是方法是css3的寫法,想兼容IE8的童鞋們,建議用上面的方法!

方法和我們固定高寬的差不多,但是不用margin我們用的是 translate()

demo如下:

 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd  html xmlns= http://www.w3.org/1999/xhtml xml:lang= en  head  meta http-equiv= Content-Type content= text/html;charset=UTF-8  title haorooms不固定高度div寫法 /title  style .center { position: fixed; top: 50%; left: 50%; background-color: #000; width:50%; height: 50%;-webkit-transform: translateX(-50%) translateY(-50%); /style  /head  body  div /div  /body  /html 

我上面的css只是針對webkit內核的瀏覽器,其他內核瀏覽器寫法如下:

-webkit-transform: translateX(-50%) translateY(-50%);-moz-transform: translateX(-50%) translateY(-50%);-ms-transform: translateX(-50%) translateY(-50%);transform: translateX(-50%) translateY(-50%);

關于每個瀏覽器的寫法,可以看看我之前的一篇文章:http://www.haorooms.com/post/css_common

有些彈出層的樣式,也可以用這個方法居中

position: fixed;top: 50%;left: 50%;width: 50%;max-width: 630px;min-width: 320px;height: auto;z-index: 2000;visibility: hidden;-webkit-backface-visibility: hidden;-moz-backface-visibility: hidden;backface-visibility: hidden;-webkit-transform: translateX(-50%) translateY(-50%);-moz-transform: translateX(-50%) translateY(-50%);-ms-transform: translateX(-50%) translateY(-50%);transform: translateX(-50%) translateY(-50%);

css3不定寬高水平垂直居中

只要三句話就可以實現不定寬高水平垂直居中。

justify-content:center;//子元素水平居中align-items:center;//子元素垂直居中display:-webkit-flex;

在父級元素上面加上上面3句話,就可以實現子元素水平垂直居中。

運用margin:auto進行垂直居中

margin的值設置為auto,可以讓我們對剩余空間進行分配!我們知道,塊級元素設置為margin:0 auto;可以左右居中顯示!那有沒有辦法讓margin設置為margin:auto之后,上下左右都居中呢?上下左右都居中,就可以實現我們的垂直居中了!

答案是有的,只要我們讓上下有足夠的空間,就可以讓margin的auto來分配上下空間。

我們可以利用定位的方式,讓margin上下左右都有足夠的空間!那么就可以用margin:auto來實現垂直居中了!

實現html如下:(做一個簡單的垂直彈框)

 div  div /div  /div 

css代碼如下,很簡單,兼容性也蠻好,支持IE8+

.father{position:fixed;width:100%;height:100%;top;0;left:0;background-color:rgba(0,0,0,.7);}.son{position: absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;margin:auto;background-color:red;}

這樣就可以實現垂直居中了,是不是很簡單?更多精彩請關注php 其它相關文章!


相關閱讀:

CSS3里怎么實現提示文字的彈窗效果

CSS3里怎么實現打字動畫

CSS3里怎么實現loading動畫效果

以上就是在css里div怎么垂直居中的詳細內容,html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛宁县| 兴仁县| 宜都市| 定日县| 长武县| 吉安县| 舒兰市| 凤山县| 农安县| 宿迁市| 望江县| 华坪县| 常山县| 奉节县| 义马市| 黑河市| 论坛| 榆林市| 鸡西市| 疏勒县| 云南省| 岱山县| 碌曲县| 长乐市| 景泰县| 电白县| 镇宁| 射阳县| 富源县| 平昌县| 克东县| 新津县| 万宁市| 清涧县| 汉源县| 凌海市| 改则县| 乌拉特中旗| 富源县| 忻州市| 定边县|