DAY7-分割展示页面
前言
这个项目来源于GitHub上的一个开源项目https://github.com/bradtraversy/50projects50days,总共有50个用来练手的前端项目,我学习然后复现效果,并记录学习笔记和心得。
效果展示
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>split-landing-page</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
<style>
* {
padding: 0;
margin: 0;
}
html, body {
height: 100%;
}
main {
height: 100%;
display: flex;
}
section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 2;
position: relative;
transition: all 1s ease-in-out;
overflow: hidden;
}
.left {
flex: 1;
background: url("../../images/ps.jpg") no-repeat;
background-size: cover;
}
.left:hover{
flex: 3;
}
.left:after {
content: ' ';
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background-color: rgba(87, 84, 236, 0.7);
z-index: 1;
}
.right {
flex: 1;
background: url("../../images/xbox.jpg") no-repeat;
background-size: cover;
}
.right:hover{
flex: 3;
}
.right:after {
content: ' ';
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background-color: rgba(38, 37, 42, 0.8);
z-index: 1;
}
.buy {
color: #fff;
width: 240px;
height: 75px;
border: 4px solid #fff;
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
z-index: 3;
position: absolute;
left: 50%;
top: 40%;
transform: translateX(-50%);
}
.left .buy:hover {
background-color: #5754ec;
border-color: #5754ec;
}
.right .buy:hover {
background-color: #1c7a1c;
border-color: #1c7a1c;
}
h1 {
font-weight: bold;
font-size: 3rem;
color: #fff;
z-index: 3;
position: absolute;
left: 50%;
top: 20%;
transform: translateX(-50%);
white-space: nowrap;
}
</style>
</head>
<body>
<main>
<section class="left">
<h1>Playstation 5</h1>
<div class="buy">BUY NOW</div>
</section>
<section class="right">
<h1>XBox Series X</h1>
<div class="buy">BUY NOW</div>
</section>
</main>
</body>
</html>
总结
- 这个这个效果并不难,其中宽度变化我用的是之前第一天的例子中,利用flex来做的。我实现该效果没有用到JS,作者是利用的宽度变化。
- 让元素居中,我们可以使用绝对定位,top,left都是50%,然后利用
transform: translate(-50%,-50%);
来实现居中,这也是一个技巧。 - 作者的响应式做的更好一些,大家可以看看原作者的代码学习一下。
DAY7-分割展示页面
https://www.zhaojun.inkhttps://www.zhaojun.ink/archives/day7-split-landing-page