父元素没设置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回答

好帮手慕夭夭

2019-04-18

你好同学, 这里可以不设置是因为two本身也设置了宽高。当two不设置宽高的时候,虽然设置了table-cell成为单元格,但是这个单元格没有任何参考的宽高,只是内容撑开。所以给two设置它里面的内容相对它自身居中对齐就没有任何意义了

http://img.mukewang.com/climg/5cb7e9f30001dad113010462.jpg

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

http://img.mukewang.com/climg/5cb7eb1700016d3114830465.jpg

祝学习愉快 ,望采纳。

0

0 学习 · 40143 问题

查看课程