老师,请问为什么文字没有竖直居中呢?

老师,请问为什么文字没有竖直居中呢?

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

   <head>
      <title>2-2-编程练习</title>
      <meta charset="UTF-8">
      <meta name="renderer" content="webkit">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      <base target="_blank">
        <style type="text/css">
            *
            {
                margin: 0;
                padding: 0;
            }

            body
            {font-family: "微软雅黑";}

            a
            {text-decoration: none;}

            li
            {list-style-type: none;}

            header
            {
                position: fixed;
                top: 0;
                width: 100%;
                min-width: 1200px;
                height: 60px;
                background-color: #222;
            }

            header > div
            {
                width: 1200px;
                margin: 0 auto;
            }

            header h1
            {
                float: left;
                height: 60px;
                max-height: 100%;
            }

            header h1 > a
            {
                display: inline-block;
                height: 60px;
                line-height: 60px;
                max-height: 100%;
                color: #FFF;
            }

            header h1 > a > img
            {margin: 10px auto;}

            header nav > #navList
            {
                float: right;
                height: 60px;
            }

            header nav > #navList > li
            {
                float: left;
                height: 56px;
                line-height: 60px;
                width: 100px;
                box-sizing: border-box;
                text-align: center;
            }

            header nav > #navList > li:nth-child(1) /*导航列表项的第1项:Home*/
            {background-color: #439;}

            header nav > #navList > li:nth-child(2) /*导航列表项的第2项:Course*/
            {background-color: #0BC;}

            header nav > #navList > li:nth-child(3) /*导航列表项的第3项:Actual*/
            {background-color: #8A0;}

            header nav > #navList > li:nth-child(4) /*导航列表项的第4项:Plan*/
            {background-color: #FA0;}

            header nav > #navList > li:nth-child(5) /*导航列表项的第5项:Notes*/
            {background-color: #F6B;}

            header nav > #navList > li:nth-child(6) /*导航列表项的第6项:FAQ*/
            {background-color: #D01;}

            header nav > #navList > li:hover
            {
                font-weight: bold;
                height: 60px;
            }

            header nav > #navList > li > a
            {
                font-size: 20px;
                color: #FFF;
            }

        </style>
   </head>

   <body>
        <header>
            <div>
                <h1>
                    <a href="http://www.imooc.com">
                        <img src="http://img1.sycdn.imooc.com/climg//582e5f160001b17100400040.png">
                        IMOOC
                    </a>
                </h1>
                <nav>
                    <ul id="navList">
                        <li><a href="https://www.imooc.com/" title="慕课网首页">Home</a></li>
                        <li><a href="https://www.imooc.com/course/list" title="免费课程">Course</a></li>
                        <li><a href="https://coding.imooc.com/" title="实战课程">Actual</a></li>
                        <li><a href="https://class.imooc.com/" title="就业班">Plan</a></li>
                        <li><a href="https://www.imooc.com/article" title="手记">Notes</a></li>
                        <li><a href="https://www.imooc.com/wenda" title="猿问">FAQ</a></li>
                    </ul>
                </nav>
            </div>
        </header>
   </body>

</html>

完整代码如上。

在CSS中已经对<a>标签转为inline-block,并且height等于line-height,为什么文字“IMOOC”没有竖直对齐?如下图所示。

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

当把logo图片注释掉时,文字“IMOOC”就可以竖直对齐了,如下图所示。

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

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

看来<img>标签会对后面的文字产生影响。

正在回答

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

4回答

同学你好,这边测试了一下,和同学效果是一样的:

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

老师把第一次粘贴的代码替换到img标签中的样式也是可以实现的。

可能之前老师误操作了,非常抱歉!这样写是没有问题的。

祝学习愉快!

提问者 我学习太差被关起来了 2019-07-12 15:10:45

完整代码如下所示。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

   <head>
      <title>2-2-编程练习</title>
      <meta charset="UTF-8">
      <meta name="renderer" content="webkit">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      <base target="_blank">
        <style type="text/css">
            *
            {
                margin: 0;
                padding: 0;
            }

            body
            {font-family: "微软雅黑";}

            a
            {text-decoration: none;}

            li
            {list-style-type: none;}

            header
            {
                position: fixed;
                top: 0;
                width: 100%;
                height: 60px;
                background-color: #222;
            }

            header > div
            {
                width: 1200px;
                margin: 0 auto;
            }

            header h1
            {
                float: left;
                height: 60px;
                max-height: 100%;
            }

            header h1 > a
            {
                display: inline-block;
                height: 60px;
                line-height: 60px;
                max-height: 100%;
                color: #FFF;
            }

            header h1 > a > img
            {
                margin-bottom: 9px;
                vertical-align: middle;
            }

            header nav > #navList
            {
                float: right;
                height: 60px;
            }

            header nav > #navList > li
            {
                float: left;
                height: 56px;
                line-height: 60px;
                width: 100px;
                box-sizing: border-box;
                text-align: center;
            }

            header nav > #navList > li:nth-child(1) /*导航列表项的第1项:Home*/
            {background-color: #439;}

            header nav > #navList > li:nth-child(2) /*导航列表项的第2项:Course*/
            {background-color: #0BC;}

            header nav > #navList > li:nth-child(3) /*导航列表项的第3项:Actual*/
            {background-color: #8A0;}

            header nav > #navList > li:nth-child(4) /*导航列表项的第4项:Plan*/
            {background-color: #FA0;}

            header nav > #navList > li:nth-child(5) /*导航列表项的第5项:Notes*/
            {background-color: #F6B;}

            header nav > #navList > li:nth-child(6) /*导航列表项的第6项:FAQ*/
            {background-color: #D01;}

            header nav > #navList > li:hover
            {
                font-weight: bold;
                height: 60px;
            }

            header nav > #navList > li > a
            {
                font-size: 20px;
                color: #FFF;
            }

        </style>
   </head>

   <body>
        <header>
            <div>
                <h1>
                    <a href="http://www.imooc.com">
                        <img src="http://img1.sycdn.imooc.com/climg//582e5f160001b17100400040.png"> IMOOC
                    </a>
                </h1>
                <nav>
                    <ul id="navList">
                        <li><a href="https://www.imooc.com/" title="慕课网首页">Home</a></li>
                        <li><a href="https://www.imooc.com/course/list" title="免费课程">Course</a></li>
                        <li><a href="https://coding.imooc.com/" title="实战课程">Actual</a></li>
                        <li><a href="https://class.imooc.com/" title="就业班">Plan</a></li>
                        <li><a href="https://www.imooc.com/article" title="手记">Notes</a></li>
                        <li><a href="https://www.imooc.com/wenda" title="猿问">FAQ</a></li>
                    </ul>
                </nav>
            </div>
        </header>
   </body>

</html>


浏览器显示效果是logo图和文字基本上竖直居中。


【1】以下是Chrome(version 75.0.3770.100 )中的效果。

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

【2】以下是Firefox(version 68.0)中的效果。

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

【3】以下是Edge(version 44.17763.1.0)中的效果。

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

【4】以下是IE(version 11.615.17763.0)中的效果。

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

好帮手慕星星 2019-07-11 09:49:56

测试了同学的代码,显示效果如下:

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

文字看起来居中显示了,但是图片还是没有的哦,可以再调整下margin值,如下:

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

自己再测试下,祝学习愉快!

  • 设置下外边距8px,在我这里显示图片和文字都竖直居中,没问题啊,Chrome、Firefox、Edge、IE都竖直居中。若设置20px则图片反而跑到上面去了。 header h1 > a > img {margin-bottom: 8px; vertical-align: middle;}
    2019-07-11 17:57:23
  • 这边测试还是之前的效果,和同学不一致,建议将修改之后的全部代码粘贴上来,老师测试下。
    2019-07-11 18:23:43
  • Okay,一会儿发一个新的提问。
    2019-07-12 14:49:38
好帮手慕星星 2019-07-10 11:14:50

你好,图片和文字在同一个容器中,文字的基线会和图片的底线对齐显示,(可以理解为四线三格,第三条线是基线,第四条线是底线)所以图片位置改变的时候,后面的内容位置也会跟着改变。

效果图中文字也不是垂直居中显示的,图片垂直居中显示了就可以,如下修改:

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

只设置上外边距即可。

自己再测试下,祝学习愉快!

  • 使用以下设置,效果就差不多竖直居中了。 header h1 > a > img { margin-bottom: 8px; vertical-align: middle; }
    2019-07-10 22:09:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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