请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

vertical-align的使用问题

这个到底在什么情况下才能起作用,我自己的理解是,给一个父元素设置高度,然后给inline-block或者inline的子元素设置vertical-align:middle就会实现子元素相对父元素居中,而且很多时候还可以,但是今天遇到的情况让我不是很理解这个属性

https://img1.sycdn.imooc.com/szimg//5996a55c0001d62f13660736.jpg

https://img1.sycdn.imooc.com/szimg//5996a55c000143f813660736.jpg

https://img1.sycdn.imooc.com/szimg//5996a55c0001fa4113660736.jpg

可以看到购物车那个实现了居中但是我自己用来做实验的却没有实现居中,感觉很奇怪,明明他们的结构是一样的啊,还请老师解答这个疑惑

正在回答

1回答

Rosen 2017-08-19 19:27:25

verticle-align一般用于行内元素,或者表格单元,可以看看这个http://www.w3school.com.cn/cssref/pr_pos_vertical-align.asp。 

如果是想让文字在块级元素中垂直居中的话,可以同时设置height和line-height

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    可是我这个就是行内元素啊,不是想让文字居中,而是想让元素居中,而且为什么一个实现了一个没有实现
    回复 有任何疑惑可以回复我~ 2017-08-19 21:08:18
  • Rosen 回复 提问者 李行知 #2
    用下面这段代码试试应该能明白了, vertical-align的位置参考的是行高,并不是外容器的高度,别弄混。第二个图里行高被image撑开了所以会居中。最后你自己写的行高就是sss那行,没设置过行高的话就是字体高度。
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
        .con{
            width: 100px;
            height: 100px;
            background: red;
        }
        .con .low{
            display: inline-block;
            background: yellow;
            height: 20px;
            vertical-align: middle;
            /*vertical-align: top;*/
            /*vertical-align: bottom;*/
        }
        .con .high{
            display: inline-block;
            line-height: 50px;
            background: blue;
        }
        </style>
    </head>
    <body>
    <div class="con">
        <span class="low">sss</span>
        <span class="high">high</span>
    </div>
    </body>
    </html>
    回复 有任何疑惑可以回复我~ 2017-08-19 23:41:17
  • 提问者 李行知 回复 Rosen #3
    也就是说需要多个行内元素形成对比才有用,以最高的元素来作为参考
    回复 有任何疑惑可以回复我~ 2017-08-20 00:25:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信