关于tranform: translate 后,元素被覆盖的问题
影响了两天的问题,终于解决了,各种js计算高度,平移,结合c3,最后发现js计算后,是c3层级问题,希望能帮到园友,说明如下:
问题:
当一个或多个元素同时使用 如 transform: translateY(-100px);时, transform会默认 修改 元素的层级关系,
即,会出图一这种,下方蓝色元素向上平移时,遮挡上方红色元素的现象。
思路:知道是层级关系的问题,就可以使用 position中的 z-index 来自定义修改原色的层级关系即可;
(注,修改z-index时,注意项目代码中其他使用z-index中是否会受影响!!!)
解决后的,如图二中,下面蓝色元素向上平移时,在 上方红色元素下面。
一、出现问题的效果及代码
1、贴效果图
2、贴代码
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 180px;
height: 180px;
background-color: red;
}
.child1 {
transform: translate3d(0,0,0);
}
.child2 {
background-color: blue;
}
.child2 {
transform: translateY(-100px);
}
style>
head>
<body>
<div>
<div class='child1'>div>
<div class='child2'>div>
div>
body>
html>
二、准确的效果图及代码
1、效果图
2、贴代码
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div {
width: 180px;
height: 180px;
background-color: red;
}
.child1 {
transform: translate3d(0,0,0);
position: relative;
z-index: 10;
}
.child2 {
background-color: blue;
position: relative;
z-index: 2;
}
.child2 {
transform: translateY(-100px);
}
style>
head>
<body>
<div>
<div class='child1'>div>
<div class='child2'>div>
div>
body>
html>