解决img标签自带边距的问题

当为img标签设置遮罩时,发现遮罩无法完全贴合图片,原因是浏览器将行内元素按基线对齐。解决方法包括:1) 将img设置为块级元素;2) 给img的父级设置高度;3) 父级元素设置font-size为0;4) img垂直对齐方式设为非基线。应用这些方法之一即可使遮罩与图片完全贴合。
摘要由CSDN通过智能技术生成

问题

为img标签设置遮罩时,发现虽然设置bottom:0; 但是遮罩并没有完全贴合图片。
       

     * {
            margin: 0;
            padding: 0;

        }

        html,
        body {
            display: flex;
            width: 100%;
            height: 100%;
        }

        .banner {
            position: relative;
            margin: auto;
        }
      
        img {
            width: 1226px;
            height: 600px;
        }

        .mask {
            position: absolute;
            left: 0;
            bottom: 0;
            height: 150px;
            width: 1226px;
            background-color: rgba(0, 0, 0, 0.5);
            z-index: 1000;
        }

如下图显示,遮罩并没有完全贴合图片。

将遮罩的z-index设置为-1时,此时可以清楚的看到遮罩超出了图片一部分。

原因是因为浏览器会将行内元素与行内块元素当作文字处理,而文字类型元素的垂直对齐方式默认为基线(baseline)。

解决方法

于是找到了4种方法消除这个影响:

         1.img设置为块级元素

 img {
            display: block;
            width: 1226px;
            height: 600px;
        }

        2.给img的父级元素设置高度

  .banner {
            position: relative;
            margin: auto;
            height: 600px;
        }

        3.将img父级元素的font-size设置为0

  .banner {
            position: relative;
            margin: auto;
            font-size: 0;
        }

        4.img垂直对齐方式设置为非基线对齐

   img {
            vertical-align: middle; 
            width: 1226px;
            height: 600px;
        }

使用任意方法后,遮罩与img就完全贴合了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leviash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值