【发布时间】:2018-06-09 07:34:39
【问题描述】:
谁能解释为什么我的背景渐变属性不起作用。
如何在不改变位置属性的情况下实现背景渐变?
注意:当我使用 class="parent" 从 div 中删除 position 属性时,它可以工作。
任何改进代码的建议也值得赞赏。
var drop = document.querySelector(".drop");
var button = document.querySelector(".button");
button.addEventListener("click", function(){
drop.classList.toggle("animation");
});
body, html{
margin: 0;
padding: 0;
}
body{
background: linear-gradient(to right, #f98866, #ffffff);
}
.parent{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
perspective: 1000px;
}
ul{
padding: 0;
margin: 0;
margin-top: 10px;
}
li{
list-style: none;
padding: 15px 70px;
background: #80bd9e;
color: #fff;
font-family: monospace;
text-align: center;
transition: 0.3s;
}
li:hover{
background: #89da59;
transform: skewX(-10deg);
}
a{
text-decoration: none;
color: #000;
}
.button{
padding: 20px 70px;
background: #ff420e;
color: #fff;
font-family: monospace;
font-size: 1.5em;
transition: 0.4s;
}
.button:hover{
cursor: pointer;
}
.animation{
transform: rotateX(-88deg);
opacity: 0;
}
.button:hover{
transform: rotateY(10deg);
}
.drop{
transition: 1s;
}
<!DOCTYPE html>
<html>
<head>
<title>3D dropdown</title>
</head>
<body>
<div class="parent">
<div class="button">Click Me!</div>
<div class="drop animation">
<ul>
<a href="#"><li>Option</li></a>
<a href="#"><li>Option</li></a>
<a href="#"><li>Option</li></a>
<a href="#"><li>Option</li></a>
</ul>
</div>
</div>
</body>
</html>
【问题讨论】:
-
min-height:100vhto body --> body 有 0 高度和渐变,没有大小,所以你也没有到 html 和 canvas 的背景传播 -
谢谢它的工作,但是当我从 .parent div 中删除位置属性时,你能帮我解释一下为什么后台工作吗?
-
如果你删除位置,内容是流入的,你的身体有一个高度,所以你会看到渐变,这个也会传播到 html 和画布,所以你会在全屏上看到渐变也
-
你能提供一些链接来阅读这个吗?我找不到一个
-
好吧,我会用所需的资源添加一个详细的答案;)