CSS中的幽灵空白节点

幽灵空白节点是指在使用行内块元素进行布局时, 页面上会出现一个不可见的隐藏元素, 对我们的布局会产生一些影响。

我们新建一个html文件, 在div盒子中放置一个span行内元素, 此时页面上的div元素是不可见的, 因为没有任何元素能够将div元素撑开

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
	}
</style>
<body>	
	<div>
		<span> </span>	
	</div>
</body>

在这里插入图片描述

接着我们将span元素的display设置为inline-block, div盒子竟然被撑开了; 这就是因为有幽灵空白节点的存在, 在使用行内块元素进行布局时, 浏览器会默认在这个行内块元素的后面添加一个不可见的文字元素, 这个元素收到父级盒子的font-size 大小的影响.

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
	}
	div span {
		display: inline-block;
	}
</style>
<body>	
	<div>
		<span> </span>	
	</div>
</body>

在这里插入图片描述
那么这个空白元素盒子会怎么影响我们的布局, 当我们需要在页面上插入一张图片, 此时会发现在图片的下方会出现一个空白空隙, 这是因为图片的vertical-align属性默认值是base-inline; 那么我们要怎么解决这个问题呢?

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
	}
	div img {
		width: 300px;
        height: 300px;
	}
</style>
<body>	
	<div>
		<img src="https://img1.baidu.com/it/u=413643897,2296924942&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500" alt="">
	</div>
</body>

在这里插入图片描述

解决方法

一、将img标签的vertical-align属性设置为 bottom

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
	}
	div img {
		width: 300px;
        height: 300px;
        vertical-align: bottom;
	}
</style>
<body>	
	<div>
		<img src="https://img1.baidu.com/it/u=413643897,2296924942&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500" alt="">
	</div>
</body>

在这里插入图片描述
图片与父级盒子之间的空白间隙消失了

二、修改父级盒子的属性 line-height: 0

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
		line-height: 0;
	}
	div img {
		width: 300px;
        height: 300px;
	}
</style>
<body>	
	<div>
		<img src="https://img1.baidu.com/it/u=413643897,2296924942&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500" alt="">
	</div>
</body>

在这里插入图片描述
图片与父级盒子之间的空白间隙消失了

三、修改父级盒子的属性 font-sieze:0

<style> 
	body {
        padding: 0;
        margin: 0;
    }
	div {
		background: red;
		font-size: 0;
	}
	div img {
		width: 300px;
        height: 300px;
	}
</style>
<body>	
	<div>
		<img src="https://img1.baidu.com/it/u=413643897,2296924942&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500" alt="">
	</div>
</body>

在这里插入图片描述
图片与父级盒子之间的空白间隙消失了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值