我出于实践目的对this网站进行了编码。我在代码笔中将背景图像更改为黑色,因为图像在代码笔中不起作用。 Here's a link to my code.我也将代码放在这里,以防您无法查看代码笔:
INDEX.HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="stylesheet" type="text/css" href="reset.css">
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
<title>Coming Soon</title>
</head>
<body>
<div class="background">
<h2 class="logo">Logo</h2>
<div class="dropdownwrapper">
<h1 class="bigtext">Coming Soon</h1>
</div>
<hr class="divider">
<h4 class="smalltext">35 days left</h4>
</div>
</body>
</html>
样式
body {
background-color: white;
font-size: 10px;
}
.background {
animation-name: fadeout;
animation-duration: .8s;
background-image: url(Images/forestbridge.jpg);
background-size: cover;
background-position: top;
animation-fill-mode: backwards;
height: 100vh;
font-family: "Raleway", sans-serif;
}
.logo {
color: white;
font-weight: 100;
font-size: 1.5rem;
padding: 1rem 0 0 1rem;
}
.bigtext {
color: white;
text-transform: uppercase;
font-size: 4rem;
text-align: center;
padding-bottom: 1rem;
}
.dropdownwrapper {
animation-name: dropdown;
animation-duration: .8s;
animation-fill-mode: forwards;
}
.divider {
border: none;
width: 20%;
height: 1px;
background-color: lightgrey;
margin-bottom: 1.5rem;
}
.smalltext {
color: white;
font-size: 1.25rem;
text-align: center;
}
@keyframes fadeout {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes dropdown {
0% {
margin-top: 10vh;
}
100% {
margin-top: 40vh;
}
}
我也有一个reset.css,但这只是标准的Eric Meyer 2.0重置(不过我将其放置在了代码笔中)。我的问题是,当您重新加载我尝试重新编码的W3Schools版本时,文本“ COMING SOON”下降,行和“剩余35天”文本保留在原处。但是,在我的代码中,整个文本块都掉了。当我仅选择其他元素所在的父div时,为什么我网站上的“ COMING SOON”文本本身不会下降?我怎样才能做到只有“ COMING SOON”字样下降?
谢谢,
莱夫
最佳答案
发生这种情况是因为您正在为margin-top
文本的COMING SOON
设置动画。由于元素位于normal document flow中,因此对边距进行动画处理会给人以下印象,即即使COMING SOON
之后的元素也没有动画。要解决此问题,您应该使用transform
进行动画处理,该操作可操纵元素的位置in place
。检出forked codepen。
另外,如果您希望将整个文本块放在页面中心,请把所有文本都包裹为div
并将其绝对放置。我已经forked another codepen演示了这一点。
向下滑动效果在第二个密码笔中显得更为深刻。
关于html - @keyframes无法以预期的方式工作CSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52176858/