写在前面
在前面,我们练习了很多CSS实现的各种效果,后面也练习了一些结合JavaScript实现的网页效果,从今天开始,我们一起来练习一些静态网页的效果,以及一些简单的单页效果,希望这些练习能够对你有所帮助。
我们今天练习的这个效果,就是一个静态页面的单页应用,虽然看起来好像很复杂,其实,把每个部分的代码拆开来以后,都是我们之前练习的一些效果,具体效果如下:
因为这个页面比较长,录制GIF图片的话,文件比较大,因此,我录制了一个简单的视频,大家可以打开视频进行观看页面效果。
具体的代码我还是一样,直接贴在文章里了,大家可以根据需要自取,关于练习里的产品图片,这个是我之前为大学好友设计的个人相片画册以及一些企业宣传画册样稿。
因此,今天练习里的图片素材就不提供了,因为这个图片里有我大学好友的照片,如果你需要这个产品的素材,请自行到网络上找一些合适的产品素材。
下面,我们一起来看一下这个代码。
HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>【每日一练】52—写一个简单的静态商品服务网站页面</title>
<!----字体图标文件引入---->
<link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css">
</head>
<body>
<!----header 开始--->
<header>
<a href="http:www.webqdkf.com" class="logo">
<img src="images/logo.jpg"></a>
<div class="bx bx-menu" >平面设计</div>
<ul class="navbar">
<li><a href="#graphic">平面设计</a></li>
<li><a href="#ui">UI设计</a></li>
<li><a href="#web">网页设计</a></li>
<li><a href="#video">视频剪辑</a></li>
<li><a href="#code">网站开发</a></li>
<li><a href="http://www.aierweisi.com" target="_blank">建站主机</a></li>
<li><a href="http://www.webqdkf.com"target="_blank">博客</a></li>
</ul>
</header>
<!----平面设计 开始--->
<!----text 开始--->
<section class="text" >
<div class="text-content">
<h2>平面设计</h2>
<p>企业画册、名片、海报、易拉宝、包装;个人相册、作品集等平面设计服务</p>
</div>
</section>
<!----shop 开始--->
<section class="shop">
<div class="container">
<div class="box">
<img src="images/photo01.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo02.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo03.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo04.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo05.jpg">
<h4>企业画册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo06.jpg">
<h4>企业画册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo01.jpg">
<h4>企业画册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo02.jpg">
<h4>企业画册设计</h4>
<h5>$15.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo03.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo04.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo05.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
<div class="box">
<img src="images/photo06.jpg">
<h4>个人相册设计</h4>
<h5>¥300.00</h5>
<div class="cart">
<a href="#"><i class='fa fa-shopping-cart' ></i></a>
</div>
</div>
</div>
</section>
<!----平面设计 结束--->
<!----contact 开始--->
<section class="contact" >
<div class="main-contact">
<div class="contact-content">
<li><a href="#">前端技术</a></li>
<li><a href="#">资源导航</a></li>
<li><a href="#">常见问题</a></li>
<li><a href="#">联系我</a></li>
</div>
<div class="contact-content">
<li><a href="#">关于退货</a></li>
<li><a href="#">关于退款</a></li>
<li><a href="#">关于支付</a></li>
<li><a href="#">加入我们</a></li>
</div>
<div class="contact-content">
<li><a href="#">公号平台:</a></li>
<li><a href="#">web前端开发</a></li>
<li><a href="#">有课网</a></li>
<li><a href="#">爱尔维斯设计</a></li>
</div>
<div class="contact-content">
<li><a href="#">电话: 131-2775-7553</a></li>
<li><a href="#">微信:13127757553</a></li>
<li><a href="#">QQ:3542525867</a></li>
<li><a href="#">邮箱:13127757553@163.com</a></li>
</div>
</div>
<div class="action">
<form>
<input type="email" name="email" placeholder="你的邮箱地址" required>
<input type="submit" name="submit" value="提交" required>
</form>
</div>
</section>
<div class="footer">
<p>Copyright © 2022 web前端开发公众平台创建,官网:<a href="http://www.webqdkf.com" target="_blank">www.webqdkf.com</a></p>
</div>
</body>
</html>
在HTML里,我只放了【平面设计】菜单下的那部分代码,后面几个菜单内容的代码都是一样,我就不再贴上去了。
另外,就是页面里面的【建站主机】与【博客】我是直接链接到其他网站上,所以就不存在内容这个模块。
在这里做一个简单说明,不然大家会觉得怎么代码那么少。
CSS代码:
*{
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: 'Montserrat', sans-serif;
text-decoration: none;
list-style: none;
scroll-behavior: smooth;
}
:root{
--bg-color: #ffffff;
--text-color: #121212;
--main-font: 2.2rem;
--p-font: 1.1rem;
}
body{
background: var(--bg-color);
color: var(--text-color);
}
header{
width: 100%;
top: 0;
right: 0;
z-index: 1000;
position: fixed;
background: var(--bg-color);
box-shadow: 0px 2px 18px 0 rgb(129 162 182 / 20%);
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 8%;
transition: .3s;
}
.logo{
color: var(--text-color);
font-size: var(--main-font);
font-weight: 600;
line-height: 0.8;
}
.logo img {
width: 100px;
}
#menu-icon{
font-size: 38px;
color: var(--text-color);
z-index: 10001;
display: none;
}
.navbar{
display: flex;
}
.navbar a{
font-size: var(--p-font);
color: var(--text-color);
font-weight: 600;
padding: 10px 15px;
margin: 0 10px;
transition: all .40s ease;
}
.navbar a:hover{
background: var(--text-color);
color: #fff;
}
.icons{
display: inline-block;
}
.icons i{
color: var(--text-color);
font-size: 24px;
margin-left: 15px;
}
.icons i:hover{
opacity: 0.7;
}
section{
padding: 100px 8%;
}
.shop{padding-top:40px;
}
.container{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(360px, auto));
align-items: center;
gap: 2rem;
text-align: center;
cursor: pointer;
padding-top: 2rem;
}
.box{
padding:20px;
background: transparent;
box-shadow: 5px 30px 56.1276px rgb(55 55 55 / 12%);
border-radius: 10px;
position: relative;
transition: all .35s ease;
}
.box img{
width: 100%;
height: auto;
}
.box h4{
font-size: 15px;
letter-spacing: 1px;
margin-bottom: 8px;
margin-top: 8px;
}
.box h5{
font-size: 14px;
letter-spacing: 1px;
margin-bottom: 20px;
color: #df0505;
}
.box .cart i{
position: absolute;
top: 0;
left: 0;
width: 35px;
height: 35px;
background: var(--text-color);
color: var(--bg-color);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 18px;
}
.box:hover{
transform: translateY(-5px);
}
.text{
background: #f7f6f6;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.text-content{
text-align: center;
}
.text-content h2{
font-size: var(--main-font);
margin-bottom: 30px;
}
.text-content p{
max-width: 600px;
font-size: var(--p-font);
font-weight: 600;
color: var(--text-color);
line-height: 30px;
}
.contact{
padding: 80px 17%;
background: var(--text-color);
}
.main-contact{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, auto));
gap: 2rem;
margin-bottom: 3rem;
}
.contact-content li{
margin-bottom: 15px;
}
.contact-content li a{
display: block;
color: var(--bg-color);
font-size: var(--p-font);
font-weight: 600;
transition: all .40s ease;
}
.contact-content li a:hover{
transform: translateX(-10px);
}
.action form{
text-align: center;
}
.action form input[type="email"]{
width: 460px;
max-width: 100%;
padding: 12px 15px;
background: #515151;
color: var(--bg-color);
border: none;
outline: none;
margin: 0px 10px 20px 0px;
font-size: 16px;
font-weight: 600;
}
.action form input[type="submit"]{
padding: 10px 35px;
background: var(--bg-color);
color: var(--text-color);
border: none;
outline: none;
margin: 0px 10px 20px 0px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
}
.footer{
text-align: center;
padding: 17px;
background: #757575;
}
.footer p{
color: var(--text-color);
font-size: 15px;
font-weight: 600;
}
.footer p a{ color:#000;}
.footer p a:hover{
color:#fff;
}
@media (max-width: 800px){
#menu-icon{
display: block;
}
header{
padding: 15px 8%;
}
.navbar{
top: -500px;
left: 0;
right: 0;
position: absolute;
flex-direction: column;
background: var(--bg-color);
box-shadow: 0px 2px 18px 0 rgb(129 162 182 / 20%);
transition: all .40s ease;
}
.navbar a{
display: block;
padding: 1rem;
margin: 0.5rem;
}
.navbar.active{
top: 100%;
}
}
JS文件
let menu = document.querySelector('#menu-icon');
let navbar = document.querySelector('.navbar');
menu.onclick = () => {
menu.classList.toggle('bx-x');
navbar.classList.toggle('active');
};
window.onscroll = () => {
menu.classList.remove('bx-x');
navbar.classList.remove('active');
};
写在最后
以上就是【每日一练】的全部内容,希望今天的小练习对你有用,如果你觉得有帮助的话,请点赞我,并将它分享给你身边做开发的朋友,也许能够帮助到他。
我是杨小爱,我们明天见。