接上篇博文内容,完成小米商城首页的简单h5实战。
首先总结一下整个首页中htm+css可能涉及的知识点:首先使用最多的就是定位(position),我们要懂得相对定位和绝对定位的区别(近期会针对该元素总结一篇博文),其次另一个需要注意的就是元素的隐藏与悬停显示,需要通过visibility来设置。除此之外,可能还会涉及元素的选择器:nth-child()属性。做出的效果图如下(可能宽高上与原网页有细微差别):
本文先展示相关的css设置,最后展示html代码。
一、导航栏(nav-bar)
nav-bar.css
.nav-bar {
height: 100px;
}
.logo {
width: 100px;
height: 100px;
float: left;
position: relative;
}
.logo img{
border-radius: 30%;
position: absolute;
top: 22px;
}
.nav-content {
position: absolute;
width: 880px;
height: 100px;
}
.nav-content a{
color: #333;
font-size: 16px;
}
.nav-content a {
float: right;
display: block;
padding: 26px 10px 38px;
}
.nav-content a:hover {
color: #ff6700;
}
.nav-content .list {
position: absolute;
z-index: 1988;
top: 80px;
left: -210px;
width: 1406px;
height: 350px;
padding: 12px 0 0 30px;
background-color:#fff;
visibility: hidden;
box-shadow: 0 0 3px #999;
}
.nav-content li:hover .list {
position: absolute;
visibility: visible;
}
.nav-search {
position: relative;
top: 25px;
float: right;
width: 260px;
right: -96px;
}
.nav-search input:nth-child(1) {
width: 245px;
height: 50px;
border: none;
box-shadow: 0 0 3px rgb(107, 106, 106);
font-size: 16px;
}
.nav-search a {
position: relative;
line-height: 50px;
top: -52px;
left: 250px;
display: block;
width: 52px;
height: 52px;
border: none;
text-align: center;
box-shadow: 0 0 3px rgb(107, 106, 106);
font-size: 20px;
color: #333;
}
.nav-search a:hover {
background-color: #ff6700;
color: #fff;
}
二、内容区(content)
content.css
.content {
padding: 0;
margin: 0;
position: relative;
}
.content ul {
padding: 0;
}
.content-left {
position: absolute;
top: 3px;
float: left;
background-color: rgba(105,101,101,.6);
width: 234px;
height: 461px;
color: #fff;
z-index: 999;
}
.content-left a {
padding-left: 20px;
display: block;
position: relative;
color: rgba(255, 255, 255, 0.9);
line-height: 42px;
height: 42px;
width: 234px;
}
.content-left i {
display: inline-block;
position: absolute;
top: 13px;
left: 214px;
}
.content-left li:hover {
width: 234px;
background-color: #ff6700;
}
.content-right {
float: right;
width: 992px;
height: 460px;
background-color: #999;
position: relative;
}
.content-right img{
position: absolute;
top: -1px;
width: 1226px;
height: 460px;
left: -234px;
overflow:hidden;
}
.scroll li{
position: relative;
z-index: 30;
border: 2px solid transparent;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.795);
width: 5px;
height: 5px;
float: right;
bottom: -420px;
right: 20px;
margin-right: 5px;
}
.scroll li:hover {
position: relative;
z-index: 30;
border: 2px solid #999;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.795);
width: 5px;
height: 5px;
float: right;
bottom: -420px;
right: 20px;
margin-right: 5px;
}
三、信息展示区(info)
info.css
.info {
height: 170px;
width: 1226px;
margin-top: 13px;
position: absolute;
top: 600px;
}
.info li {
display: block;
position: relative;
margin-right: 14px;
float: left;
top: -14px;
}
.info li:nth-child(4) {
margin-right: 0px;
}
.info-content {
width: 234px;
height: 153px;
background: #5f5750;
position: relative;
right: 40px;
margin-right: -40px;
padding-left: 0px;
text-align: center;
padding-top: 18px;
font-size: 12px;
}
.info-content span {
display: block;
}
.info img {
width: 316px;
height: 170px;
}
.info-content a{
display: block;
padding-top: 18px;
width: 70px;
height: 64px;
color: #c7c2c2;
}
.info li:nth-child(1) li {
display: block;
float: left;
margin-right:8px;
}
.info-content li a:hover {
color: #fff;
}
.info li:nth-child(1) li img{
opacity: 0.7;
width: 24px;
height: 24px;
}
四、index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title小米商城官网</title>
<link rel="stylesheet" href="./fav/css/all.css">
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/title.css">
<link rel="stylesheet" href="./css/nav-bar.css">
<link rel="stylesheet" href="./css/content.css">
<link rel="stylesheet" href="./css/info.css">
</head>
<body>
<!-- 设置外部容器 -->
<div class="wrapper">
<!-- 2. 设置导航条 -->
<div class="nav-bar">
<div class="logo">
<img src="./img/logo.jpg" alt="小米官网" width="56px" height="56px">
</div>
<div class="nav-content">
<ul>
<li>
<a href="javascript:;">社区</a>
</li>
<li>
<a href="javascript:;">服务</a>
</li>
<li>
<a href="javascript:;">智能硬件</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">路由器</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">家电</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">平板</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">笔记本</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">电视</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">Redmi 红米</a>
<div class="list">
</div>
</li>
<li>
<a href="javascript:;">Xiaomi手机</a>
<div class="list">
</div>
</li>
</ul>
</div>
<div class="nav-search">
<input type="text" name="search" id="search">
<a href="javascript:;" class="a_search">
<i class="fas fa-search"></i>
</a>
</div>
</div>
<!-- 3. 设置内容区 ,其中内容区分为左右两个部分-->
<div class="content">
<div class="content-left">
<ul>
<li>
<a href="javascript:;">手机<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">电视<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">笔记本 平板<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">家电<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">出行 穿戴<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">智能 路由器<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">电源 配件<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">健康 儿童<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">耳机 音箱<i class="fas fa-angle-right"></i></a>
</li>
<li>
<a href="javascript:;">生活 箱包<i class="fas fa-angle-right"></i></a>
</li>
</ul>
</div>
<div class="content-right">
<ul>
<li>
<img src="./img/scroll1.webp" alt="">
</li>
</ul>
<ul>
<li>
<img src="./img/scroll3.webp" alt="">
</li>
</ul>
<ul>
<li>
<img src="./img/scroll2.jpeg" alt="">
</li>
</ul>
<ul>
<li>
<img src="./img/scroll4.webp" alt="">
</li>
</ul>
<ul class="scroll">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
<!-- 4. 设置信息部分 -->
<div class="info">
<ul>
<li>
<ul class="info-content">
<li>
<a href="javascript:;">
<img src="./img/1.png" alt="">
<span>保障服务</span>
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/2.png" alt="">
<span>企业团购</span>
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/3.png" alt="">
<span>F码通道</span>
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/4.png" alt="">
<span>米粉卡</span>
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/5.png" alt="">
<span>以旧换新</span>
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/6.png" alt="">
<span>话费充值</span>
</a>
</li>
</ul>
</li>
<li>
<a href="javascript:;">
<img src="./img/1.jpg" alt="">
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/2.jpg" alt="">
</a>
</li>
<li>
<a href="javascript:;">
<img src="./img/3.jpg" alt="">
</a>
</li>
</ul>
</div>
</div>
</body>
</html>
目前只是静态的网页效果,后期会添加相关的js,并对代码进行优化。