CSS图片间隙问题——原因分析及解决方法

垂直方向

现象一:在div中插入图片时,图片和外部div块之间垂直方向出现间隙,如下图所示:

现象二:多张图片垂直排列显示,如下图所示:

原因分析:img是内联元素,其默认垂直对齐方式为基线对齐,即vertical-align:baseline,即图片的下边缘与第一行英文文本的下边缘(基线)对齐,而块状元素div不存在基线,具体如下图所示:

其中有关CSS盒子基线的相关知识,可以参考以下链接:

CSS基线对齐的理解以及处理

解决方法:

  1. 把img转换为块级元素
    img{
    	width: 100px; /* 设置图片大小方便显示 */
    	display: block; /* 设置图片为块级元素 */
    }
  2. 设置父元素文本大小为0(父元素无文本的条件下使用)
    .demo{
        background-color: blue;
    	font-size: 0; /* 设置父元素文本大小为0 */
    }
  3. 父元素向下调整行高,使基线上移,直至与图片之间无空隙(具体范围因父元素文本大小而异,可以直接设置为最小值0)
    .demo{
    	background-color: blue;
    	line-height: 0; /* 设置父元素行高为0 */
    }
  4. 设置img垂直对齐方式
    img{
        width: 100px; /* 设置图片大小方便显示 */
        vertical-align: top;/* 设置图片垂直对齐方式 */
    }

  5. 设置img的浮动方式
    .demo{
    	background-color: blue;
    	overflow: hidden; /* 解决BFC环境高度坍塌问题*/
    	zoom: 1; /* 兼容性优化,解决低版本IE中overflow无效的问题 */
    }
    img{
    	width: 100px; /* 设置图片大小方便显示 */
    	float: left; /* 设置图片浮动属性 */
    }

水平方向

现象一:多张图片水平方向排列显示,如下图所示:

原因分析:空格和换行字符被浏览器解析为空格

解决方法:

  1. 元素之间不添加空格和换行字符,即连写
    <div class="demo">
    	<img src="img/20180824170128_eiuif.jpg" /><img src="img/20180824170128_eiuif.jpg" /><img src="img/20180824170128_eiuif.jpg" />
    </div>
  2. 设置父元素文本大小为0(父元素无文本的条件下使用)
    .demo{
        background-color: blue;
    	font-size: 0; /* 设置父元素文本大小为0 */
    }
  3. 设置img的浮动方式
    .demo{
    	background-color: blue;
    	overflow: hidden; /* 解决BFC环境高度坍塌问题*/
    	zoom: 1; /* 兼容性优化,解决低版本IE中overflow无效的问题 */
    }
    img{
    	width: 100px; /* 设置图片大小方便显示 */
    	float: left; /* 设置图片浮动属性 */
    }

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值