前端学习之提高层级的小例子(z-index、relative)

正常几个盒子带边框并列显示的时候,相邻的边框会粗一些。如下:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	div{
		width: 200px;
		height: 300px;
		border: 1px solid skyblue;
		float: left;
	}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

而如果想相邻边框显示正常且四个边框都有的话,可以使用margin-left:-1px; 这样相邻边框就不会是1+1=2px的稍粗的效果,还是原来1px的效果。如下图:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>

	div{
		width: 200px;
		height: 300px;
		border: 1px solid skyblue;
		float: left;
		margin-left: -1px;
	}
	div:hover{
		border: 1px solid red;
	}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

如图所示,这样写的话,在给div加个鼠标悬停显示边框的时候,除了最后一个div其他的都不能显示完整。
那么这个时候,就需要给悬停的div提高层级,不让其被后面的元素给压着。
分两种情况:

1.元素没有定位(relative、absolute、fixed)

给元素加上一个相对定位

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>

	div{
		width: 200px;
		height: 300px;
		border: 1px solid skyblue;
		float: left;
		margin-left: -1px;
	}
	div:hover{
		border: 1px solid red;
		position: relative;//给悬停元素加上一个相对定位。
	}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

在这里插入图片描述

2.元素已经定位(relative、absolute、fixed)

这个时候就需要给悬停元素加个一个层级属性z-index

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>

	div{
		width: 200px;
		height: 300px;
		border: 1px solid skyblue;
		float: left;
		margin-left: -1px;
		position: relative;
	}
	div:hover{
		border: 1px solid red;
		z-index: 1;

	}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gua222/article/details/105973517