日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

用 CSS 实现元素垂直居中,有哪些好的方案?

發布時間:2023/12/2 CSS 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用 CSS 实现元素垂直居中,有哪些好的方案? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DIV居中的經典方法

1. 實現DIV水平居中

設置DIV的寬高,使用margin設置邊距0 auto,CSS自動算出左右邊距,使得DIV居中。

1 div{ 2 width: 100px; 3 height: 100px; 4 margin: 0 auto; 5 }

?? ?缺點:需要設置div的寬度

2. 實現DIV水平、垂直居中

要讓DIV水平和垂直居中,必需知道該DIV得寬度和高度,然后設置位置為絕對位置,距離頁面窗口左邊框和上邊框的距離設置為50%,這個50%就是指頁面窗口的寬度和高度的50%,最后將該DIV分別左移和上移,左移和上移的大小就是該DIV寬度和高度的一半。

1 div{ 2 width: 100px; 3 height: 100px; 4 position: absolute; 5 left: 50%; 6 top: 50%; 7 margin: -50px 0 0 -50px; 8 }

? 缺點:需要設置position屬性,網頁復雜時容易擾亂頁面布局,而且只是元素的起始位置居中

?

3. 文本在DIV中水平、垂直居中(text-align? ?line-height)

1)text-align 屬性規定(塊級)元素內文本的水平對齊方式。

2)line-height = height,行高等于元素高度,用來實現垂直居中。

1 div{ 2 width:200px;height:200px; /*設置div的大小*/ 3 border:1px solid green; /*邊框*/ 4 text-align: center; /*文字水平居中對齊*/ 5 line-height: 200px; /*設置文字行距等于div的高度*/ 6 overflow:hidden; 7 }

?


用 CSS 實現元素垂直居中,有哪些好的方案?

作者:徐尤熙
鏈接:https://www.zhihu.com/question/20543196/answer/89218605
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

水平居中方案:
水平居中設置
1、行內元素
設置 text-align:center
2、定寬塊狀元素
設置 左右 margin 值為 auto
3、不定寬塊狀元素
a:在元素外加入 table 標簽(完整的,包括 table、tbody、tr、td),該元素寫在 td 內,然后設置 margin 的值為 auto
b:給該元素設置 displa:inine 方法
c:父元素設置 position:relative 和 left:50%,子元素設置 position:relative 和 left:50%
垂直居中設置
1、父元素高度確定的單行文本
設置 height = line-height
2、父元素高度確定的多行文本
a:插入 table (插入方法和水平居中一樣),然后設置 vertical-align:middle
b:先設置 display:table-cell 再設置 vertical-align:middle

在前端面試中,大都會問你div居中的方法:

今天我們就細數一下幾種方法:
1,使用position:absolute,設置left、top、margin-left、margin-top的屬性

.one{
position:absolute;
width:200px;
height:200px;
top:50%;
left:50%;
margin-top:-100px;
margin-left:-100px;
background:red;
}

這種方法基本瀏覽器都能夠兼容,不足之處就是需要固定寬高。
2,使用position:fixed,同樣設置left、top、margin-left、margin-top的屬性

.two{
position:fixed;
width:180px;
height:180px;
top:50%;
left:50%;
margin-top:-90px;
margin-left:-90px;
background:orange;
}

大家都知道的position:fixed,IE是不支持這個屬性的
3,利用position:fixed屬性,margin:auto這個必須不要忘記了。

.three{
position:fixed;
width:160px;
height:160px;
top:0;
right:0;
bottom:0;
left:0;
margin:auto;
background:pink;
}

4,利用position:absolute屬性,設置top/bottom/right/left

.four{
position:absolute;
width:140px;
height:140px;
top:0;
right:0;
bottom:0;
left:0;
margin:auto;
background:black;
}

5,利用display:table-cell屬性使內容垂直居中

.five{
display:table-cell;
vertical-align:middle;
text-align:center;
width:120px;
height:120px;
background:purple;
}

6,最簡單的一種使行內元素居中的方法,使用line-height屬性

.six{
width:100px;
height:100px;
line-height:100px;
text-align:center;
background:gray;
}

這種方法也很實用,比如使文字垂直居中對齊

7,使用css3的display:-webkit-box屬性,再設置-webkit-box-pack:center/-webkit-box-align:center

.seven{
width:90px;
height:90px;
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
background:yellow;
color:black;
}

8,使用css3的新屬性transform:translate(x,y)屬性

.eight{
position:absolute;
width:80px;
height:80px;
top:50%;
left:50%;
transform:translate(-50%,-50%);
-webkit-transform:translate(-50%,-50%);
-moz-transform:translate(-50%,-50%);
-ms-transform:translate(-50%,-50%);
background:green;
}

這個方法可以不需要設定固定的寬高,在移動端用的會比較多,在移動端css3兼容的比較好

9、最高大上的一種,使用:before元素

.nine{
position:fixed;
display:block;
top:0;
right:0;
bottom:0;
left:0;
text-align:center;
background:rgba(0,0,0,.5);
}
.nine:before{
content:'';
display:inline-block;
vertical-align:middle;
height:100%;
}
.nine .content{
display:inline-block;
vertical-align:middle;
width:60px;
height:60px;
line-height:60px;
color:red;
background:yellow;
}

更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的用 CSS 实现元素垂直居中,有哪些好的方案?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。