行高设置成了和元素高度一样不能垂直居中?

行高设置成了和元素高度一样不能垂直居中?

问题:行高设置成了和元素高度一样50px,为什么英文部分(Cascading Style Sheets)还不能垂直居中啊?
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>文本样式</title>
        <style type="text/css">
           div{
               /*display:table;*/
               width:100%;
               
           }
           p{
               /*display:table-cell;*/
               text-align:center;
               height:50px;
               
           }
           
           .english{
               line-height:50px;
               /*vertical-align:middle;*/
           }
        </style>
    </head>
    <body>
        <div>
        <p>
          <img src="http://img1.sycdn.imooc.com/climg//59c21bae000157fa01000059.jpg" alt="css3">
          <span class="chinese">CSS层叠样式表</span>
          <span  class="english">(Cascading Style Sheets)</span>
         </p>
        </div>
    </body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,你是想实现图片与文字都垂直居中吧,比如下面这样的效果:

http://img1.sycdn.imooc.com//climg/5ef82d5009b3d8bc05540089.jpg

如果是这样的话,需要如下设置:

http://img1.sycdn.imooc.com//climg/5ef82d59098e435708320776.jpg

之前的答案,只是给你讲了为什么“英文部分”(单独这部分)文字没有垂直居中。

同学可以再试一下。

祝学习愉快!

好帮手慕久久 2020-06-27 11:36:40

同学你好,由于英文所在的标签是span,而span标签是行内元素,所以它的实际高度会由内容撑开,并不会继承父元素p标签的“height:50px;”,如下:

http://img1.sycdn.imooc.com//climg/5ef6bea309b1a52208730344.jpg

因此设置行高后,没有垂直居中。可做如下修改:

http://img1.sycdn.imooc.com//climg/5ef6beb309b51d1805250200.jpghttp://img1.sycdn.imooc.com//climg/5ef6beb8090ade3509360379.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快!


  • 提问者 localhost999 #1
    老师,按照您说的在.english添加display:inline-block后为啥还是不能垂直居中
    2020-06-28 12:29:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师