父元素没设置display:table,也能实现垂直居中?
来源:2-6 编程练习
背上我的小书包
2019-04-17 21:17:53
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>背景</title>
<style>
/*此处写代码*/
.one{
width:400px;
height:400px;
display:table;
}
.two{display:table-cell;
vertical-align:middle;
text-align:center;
width:400px;
height:400px;
background-image:url(http://climg.mukewang.com/58dc9d360001d65806500650.jpg);}
</style>
</head>
<body>
<div class="one">
<div class="two">
《长歌行》
<br>
<br>青青园中葵,朝露待日晞。
<br>阳春布德泽,万物生光辉。
<br>常恐秋节至,焜黄华叶衰。
<br>百川东到海,何时复西归。
<br>少壮不努力,老大徒伤悲。
<br>
</div>
</div>
</body>
</html>1回答
你好同学, 这里可以不设置是因为two本身也设置了宽高。当two不设置宽高的时候,虽然设置了table-cell成为单元格,但是这个单元格没有任何参考的宽高,只是内容撑开。所以给two设置它里面的内容相对它自身居中对齐就没有任何意义了

所以此时给父元素one设置成table的意义就是让two成为one里面的单元格,因为表格的特点,当table中只有一个td的时候,那么一个td就占满了整个table ,即这里的two的宽高也就和one一样了。所以有了宽高,里面的内容设置居中对齐就有意义了哦

祝学习愉快 ,望采纳。
相似问题