老师,这个img怎么实现在div里面居中,我设置了行高也没用啊,就动了一点

老师,这个img怎么实现在div里面居中,我设置了行高也没用啊,就动了一点

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        /*此处写代码*/
        body {
            margin: 0;
            padding: 0;
            color: #fff;
            text-align: center;
        }

        /* .one,.two{width: 1000px;padding: 0;} */
        .one {
            height: 500px;
            width: 1000px;
            margin: 0 auto;
            background: #ADD8E6;
        }
        .one .left{
            float: left;
            width: 50%;
            height: 100%;
            line-height: 500px;
            vertical-align: middle;
            margin: auto;
        }
        .one .right{
            float: right;
            width: 50%;
            height: 100%;
            line-height: 500px;
            vertical-align: middle;
            margin: auto;
        }
    </style>
</head>

<body>
    <!-- 此处写代码 -->
    <div class="one">
        <div class="left"><img src="http://img1.sycdn.imooc.com/climg//58c0f808000129a303600215.jpg" alt=""></div>
        <div class="right"><img src="http://img1.sycdn.imooc.com/climg//58c0f819000198a703600214.jpg" alt=""></div>
    </div>
    <div class="two">
        <img src="http://img1.sycdn.imooc.com/climg//58c0f81d0001fe4402000060.jpg" alt="">
        <img src="http://img1.sycdn.imooc.com/climg//58c0f8220001dfce02000060.jpg" alt="">
        <img src="http://img1.sycdn.imooc.com/climg//58c0f8780001c74602000060.jpg" alt="">
    </div>
</body>

</html>

img算是行内元素吗?

和文本是一样的吗?那我设置咋没效果啊

正在回答

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

4回答

同学你好!
这是因为内联标签、内联块标签的特性(也称为文字特性),存在间隙。其中解决方法之一,就是给父级设置: font-size: 0;

可以具体看下图片:

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

这个图片本身的高度是60px:

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

这多出来的4px就是图片存在的间隙了,给父级设置 font-size: 0;

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

就清除了这个间隙:

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

如果帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕糖 2019-10-26 14:21:24

同学你好,因为图片本身是有间距的,给父级设置font-size为0,可以去掉图片的间距哦。

希望能帮助到你,祝学习愉快!

好帮手慕粉 2019-10-23 11:38:50

同学你好,老师先给你举个例子(用vertical-align),你参考一下看可以不可以实现:

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

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

因为图片是内联元素,底部存在默认间隙,如果不清除默认间隙的话,是不能实现完全垂直居中的,所以我们给div设置了font-size:0,这样就解决了。

如果还不能实现的话,建议同学将自己的代码粘出来,这样老师才能帮同学分析问题出在了哪。可以再新建一个问答进行提问,那样效率比较高哦。

希望我的回答能够帮助到你,望采纳,祝学习愉快!

  • 提问者 慕桂英6225613 #1
    谢谢老师,我大概明白了,我原来把vertical-align:middle;用来修饰div了,放在img里就好了,不过还有个问题,font-size为什么要置为0啊
    2019-10-26 13:12:08
好帮手慕粉 2019-10-23 10:26:03

同学你好,首先img是行内元素哦,文本也是行内元素,但是行高等于高度只能实现单行文本的垂直居中,图片是实现不了的哦。同学可以使用margin和padding值,或者vertical-align: middle来实现图片的垂直居中哦。如果有疑问,可以新建一个问答继续提问哦。

希望我的回答能够帮助到你,望采纳,祝学习愉快!

  • 提问者 慕桂英6225613 #1
    我试过vetical-align:middle;不知道根据什么居中的,反正最后没有垂直居中
    2019-10-23 10:28:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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