CSS —— 元素hidden与opacity=0的区别

之前调试页面时偶然发现,hidden与opacity看似都不可见,但实有区别:

visibility:hidden则相当于完全从文档流中删除了该元素,但所占据的尺寸仍然保留。

opacity:0则仅仅不可见,但仍可被浏览器发现,也就能触发各种事件。通过浏览器调试工具即可得出此结论。

简单的验证:

<!DOCTYPE html>
<html>
<head>
	<title>研究透明度与隐藏的区别</title>
	<meta charset="utf-8">
	<style type="text/css">
		body{
			text-align: center;
		}
		.divHolder{
			display: inline-block;
			width: 200px;
			height: 300px;
			background-color: yellow;
			border:1px solid black;
		}
		.divHolder > div{
			display: block;
			width: 100%;
			height: 100px;
		}
		.hiddenDiv{
			visibility: hidden;
		}
		.invisibleDiv{
			opacity: 0.0;
		}
		.visibleDiv{
			background-color: gray;
		}
	</style>
	<script type="text/javascript">
		function mouseevent() {
			alert("触发了事件!");
		}
	</script>
</head>
<body>
	左右两个大div中各有三个小div,小div尺寸相同。
	第一个hidden,第二个opacity=0,第三个正常显示。
	通过调试窗口可发现,浏览器能发现不透明度为0的div,
	但发现不了隐藏的div!
	<div class="divHolder">
		<div class="hiddenDiv" οnclick="mouseevent()">点击触发事件</div>
		<div class="invisibleDiv" οnclick="mouseevent()">点击触发事件</div>
		<div class="visibleDiv" οnclick="mouseevent()">鼠标点击触发事件</div>

	</div>
	<div class="divHolder">
		<div class="hiddenDiv" οnmοuseοver="mouseevent()">覆盖触发</div>
		<div class="invisibleDiv" οnmοuseοver="mouseevent()">覆盖触发</div>
		<div class="visibleDiv" οnmοuseοver="mouseevent()">鼠标覆盖时触发事件</div>

	</div>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值