为何location-bar 内的行内块元素不用vertical-align会偏移?

来源:2-3 首页-头部样式(2)

lcyjerry

2020-04-20 14:25:12

为何location-bar 内的行内块元素不用vertical-align会偏移?而不是在父元素内

写回答

4回答

好帮手慕粉

2020-04-21

同学你好,因为纵向也有间隙啊:

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

老师只是给同学举了横向的例子,纵向上也是一样的。

祝学习愉快~

0

好帮手慕粉

2020-04-21

同学你好,关于同学的问题回答如下:

1、我们可以举个例子看下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .one,
        .two {
            width: 100px;
            height: 100px;
            display: inline-block;

        }
        .one {
            background-color: pink;
        }
        .two {
            background-color: gray;
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="one"></div>
        <div class="two"></div>
    </div>
</body>

</html>

按正常来说,两个子div应该是在一行显示,但是由于行内块有默认的间隙,实际宽度超过了100px,所以第二个子元素会被撑到下一行:

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

这个间隙是由文本节点造成的:

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

所以我们可以给父元素设置font-size:0,将这些间隙去掉:

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

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

2、在这也是一样的,由于文本节点造成的间隙,子元素超出了父容器。所以即使同学增加了父容器的高度,这个间隙也还是存在的,要把父元素的高度调整的更高一点:

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

祝学习愉快~

0
hcyjerry
h 为啥是加高度而不是宽度呢?
h020-04-21
共1条回复

好帮手慕粉

2020-04-21

同学你好,在把vertical-align去掉的情况下,子元素会超出父元素是因为图片和文字设置的是行内块:

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

而行内块之间有默认的间隙。我们可以给父元素设置font-size:0消除这个间隙:

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

祝学习愉快~

0
hcyjerry
h 为什么通过消除间隙就可以让行内元素在父容器内部了,为什么让父容器的宽度增加不行?
h020-04-21
共1条回复

好帮手慕粉

2020-04-20

同学你好,因为这块的内容继承了body的行高,所以内容被撑了下去,我们可以先把vertical-align属性去掉看下:

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

这是继承的body的行高:

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

因为设置行高时没有加单位,设置的是1,那么就是页面根元素的大小的1倍,也就是页面根元素字体大小的一倍:

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

所以在这个页面,是继承了32px的行高。

视频老师就通过设置vertical-align属性对这两个元素进行了调整。

祝学习愉快~

0
hcyjerry
h 为什么会被撑下去啊?我的子元素高度都小于父容器的高度啊?
h020-04-20
共2条回复

0 学习 · 6815 问题

查看课程