寫在前面
在前面,我們練習了很多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" id="menu-icon">平面設計</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" id="graphic">
<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" id="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="#">郵箱:[email protected]</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');
};
寫在最後
以上就是【每日一練】的全部内容,希望今天的小練習對你有用,如果你覺得有幫助的話,請點贊我,并将它分享給你身邊做開發的朋友,也許能夠幫助到他。
我是楊小愛,我們明天見。