首页 > css布局的一个问题,a标签不等高

css布局的一个问题,a标签不等高

代码如下:

<style>
    *{
      margin: 0;
      padding: 0;
    }
    .container{
        height: 100px;
        background-color: red;
    }
    .container a{

        width: 30%;
        height: 100px;
        display: inline-block;

        background-color: #ccc;

    }

</style>

<div class="container">
    <a>这是第一个个a</a>
    <a></a>
    <a>这是第三个a</a>
</div>

在这里,container里面有三个a标签,并设置为display:inline-block;然后设置宽高。

如代码所示,如果三个a标签中,只要有一个,内容为空,则三个就不等高,另外两个会低一截。

效果是这样:

但是如果三个标签都有内容,则不会出现这样的问题。

还请指教,这是怎么回事呢?


这个涉及到display inline-block 元素的vertical-align的对齐方式的问题

我们知道默认的vertical-align值为

vertical-align: baseline;

这是一种与父级元素基线对齐的方式,因此,当a标签内的行数不同时,都无法对齐,为了能够在兄弟元素之间对齐,这里提供了三种方式都可以实现,他们分别是

vertical-align: top;
vertical-align: middle;
vertical-align: bottom;

默认属性是baseline,空容器的基线在底部。
可以理解成是一段文字和一张图片的混排状态。【有宽高的文字】【图片】【有宽高的文字】


.container a 里加一句 vertical-align: middle;


对于一个display:inline-block行内元素来说,如果没有内容,那么这个元素默认以其下外边距和处在同一行的其它行内元素垂直对齐

<div class="container">
    <a>这是第一个个a</a>
    <a style="background-color:green;margin-bottom:10px;"></a>
    <a>这是第三个a</a>
</div>

【热门文章】
【热门文章】