为什么img标签要转成块级元素margin才会有效?

为什么img标签要转成块级元素margin才会有效?

图片描述
老师,img标签是行内块元素,当不转成块级元素时,为什么margin就没有效果了(即没有居中显示)?它不是既具有块级元素的特征(可以设置宽高,内外边距),又有行内元素的特征(在一行上显示)。为什么一定要转成块级元素后,margin才会生效?

正在回答

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

1回答

同学你好,理解的偏了。img是行内块元素,所以可以设置margin-left、margin-right等,margin有效。只是margin:0 auto这种设置元素水平居中的方式,只适用于块级元素(该样式的特点,知道就行了),所以要把img转成块级元素。

祝学习愉快!

  • 慕勒8540250 提问者 #1

    老师,img行内块元素设置margin-top, margin-bottom也是有效吗?还有四个padding方向也是有效的吗?

    2023-11-30 13:45:16
  • 好帮手慕久久 回复 提问者 慕勒8540250 #2

    都是有效的,可以通过代码,解答自己的疑惑,比如:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        *{
          margin: 0;
          padding: 0;
        }
        div{
          width: 600px;
          height: 600px;
          border:1px solid red;
        }
        img{
          width: 200px;
        }
      </style>
    </head>
    
    <body>
    <div>
      <p>我是文字</p>
      <img src="img/1.jpg" alt="">
      <p>我是文字</p>
    </div>
    </body>
    </html>

    img不设置margin、padding的情况下,垂直方向,是紧挨着两个p标签显示的:

    https://img1.sycdn.imooc.com/climg/6568245309fdbaaf06350287.jpg

    当设置其中一项时,img就会与某一个p有间隔了,比如:

    https://img1.sycdn.imooc.com/climg/6568247a09da58fa04360136.jpg

    https://img1.sycdn.imooc.com/climg/6568248c09aa196f06490276.jpg

    同学自己测试一下。


    2023-11-30 13:59:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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