栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将元素水平和垂直居中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将元素水平和垂直居中

  • 方法1-
    transform
    translateX
    /
    translateY

在受支持的浏览器(大多数)中,可以将

top: 50%
/
left:50%
与组合使用,
translateX(-50%) translateY(-50%)
以动态垂直/水平居中元素。

.container {    position: absolute;    top: 50%;    left: 50%;    -moz-transform: translateX(-50%) translateY(-50%);    -webkit-transform: translateX(-50%) translateY(-50%);    transform: translateX(-50%) translateY(-50%);}<div >    <span>I'm vertically/horizontally centered!</span></div>

  • 方法2-Flexbox方法:

在支持的浏览器中,将

display
目标元素的设置为
flex
align-items: center
用于垂直居中和
justify-content:center
水平居中。只是不要忘记为其他浏览器支持添加供应商前缀。

html, body, .container {    height: 100%;}.container {    display: -webkit-flexbox;    display: -ms-flexbox;    display: -webkit-flex;    display: flex;    -webkit-flex-align: center;    -ms-flex-align: center;    -webkit-align-items: center;    align-items: center;    justify-content: center;}<div >  <span>I'm vertically/horizontally centered!</span></div>

  • 方法3-
    table-cell
    /
    vertical-align: middle

在某些情况下,您需要确保

html
/
body
元素的高度设置为
100%

对于垂直对齐,将父元素的

width
/设置
height
100%
并添加
display:table
。然后对于子元素,将更
display
改为
table-cell
并添加
vertical-align: middle

对于水平居中,您可以添加

text-align: center
以使文本和任何其他
inline
子元素居中。另外,您可以使用
margin: 0auto
,假设元素是
block
水平的。

html, body {    height: 100%;}.parent {    width: 100%;    height: 100%;    display: table;    text-align: center;}.parent > .child {    display: table-cell;    vertical-align: middle;}<section >    <div >I'm vertically/horizontally centered!</div></section>

  • 方法4-绝对
    50%
    从顶部移置:

此方法假定文本的高度已知-在这种情况下为

18px
50%
相对于父元素,仅从顶部绝对定位该元素。使用负值
margin-top
,该负值是元素已知高度的一半,在这种情况下为-
-9px

html, body, .container {    height: 100%;}.container {    position: relative;    text-align: center;}.container > p {    position: absolute;    top: 50%;    left: 0;    right: 0;    margin-top: -9px;}<div >    <p>I'm vertically/horizontally centered!</p></div>

  • 方法5-
    line-height
    方法(最不灵活-不建议):

在某些情况下,父元素将具有固定的高度。对于垂直居中,您要做的就是

line-height
在子元素上设置一个值,该值等于父元素的固定高度。

尽管此解决方案在某些情况下可以使用,但值得注意的是,当有多行文本(例如this)时,该解决方案将无法使用。

.parent {    height: 200px;    width: 400px;    background: lightgray;    text-align: center;}.parent > .child {    line-height: 200px;}<div >    <span >I'm vertically/horizontally centered!</span></div>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/408023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号