【Web前端HTML5&CSS3】15、小米官网-练习

175 阅读6分钟

十五、小米官网-练习

1、首先css样式重置

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}
body {
    line-height: 1;
}
ol,
ul {
    list-style: none;
}
blockquote,
q {
    quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

2、公共样式的抽取

/* 公共样式 */
.clearfix::before,
.clearfix::after {
    content: '';
    display: table;
    clear: both;
}

/* 去除a的下划线 */
a {
    text-decoration: none;
    color: #333;
}

body {
    font: 14px/1.5 Helvetica Neue, Helvetica, Arial, Microsoft Yahei, Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei, sans-serif;
    color: #333;
    min-height: 1226px;
}

/* 设置一个类,用来表示中间容器的宽度! */
.w {
    width: 1226px;
    /* 容器居中 */
    margin: 0 auto;
}

3、 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>小米商城 - Xiaomi 12、Redmi K50、MIX FOLD,小米电视官方网站</title>
        <!-- 引入css重置样式 -->
        <link rel="stylesheet" href="./css/reset.css" />
        <!-- 引入公共样式表 -->
        <link rel="stylesheet" href="./css/base.css" />
        <!-- 引入图标字体库 -->
        <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.2.0/css/all.css" rel="stylesheet" />
        <!-- 引入当前页面的样式表 -->
        <link rel="stylesheet" href="./css/index.css" />
        <!-- 设置网站的图标:
            网站的图标:favicon.ico可以直接打开!   
        -->
        <link rel="icon" href="./img/favicon.ico">
    </head>
    <body>
        <!-- 顶部导航条 -->
        <!-- 顶部导航条外部容器 -->
        <div class="topbar-wrapper">
            <!-- 创建内部容器 -->
            <div class="topbar w clearfix">
                <!-- 左侧的导航 -->
                <ul class="service">
                    <li><a href="javascript:;">小米商城</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">loT</a></a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">MIUI</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">云服务</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">金融</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">有品</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">小爱开放平台</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">企业团购</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">资质证照</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">协议规则</a></li>
                    <li class="line">|</li>
                    <li class="app-wrapper">
                        <a class="app" href="javascript:;">
                            下载app
                            <!-- 添加一个弹出层 -->
                            <div class="qrcode">
                                <img src="./img/miapp.png" alt="">
                                <span>小米商城app</span>
                            </div>
                        </a>
                    </li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">Select Location</a></li>
                </ul>

                <!-- 购物车 -->
                <ul class="shop-cart">
                    <li>
                        <a href="#">
                        <i class="fas fa-cart-arrow-down"></i>
                        购物车(0)
                    </a>
                    </li>
                </ul>

                <!-- 用户登录注册 -->
                <ul class="user-info">
                    <li><a href="javascript:;">登录</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">注册</a></li>
                    <li class="line">|</li>
                    <li><a href="javascript:;">消息通知</a></li>
                </ul>

            </div>
        </div>

        <!-- 创建一个头部的外部容器 -->
        <div class="header-wrapper">
            <div class="header w clearfix">
                <h1 class="logo" title="小米">
                    小米官网
                    <a class="home" href="/"></a>
                    <a class="mi" href="/"></a>
                </h1>

                <!-- 创建一个中间导航条的容器 -->
                <div class="nav-wrapper">
                    <!-- 创建导航条 -->
                    <ul class="nav clearfix">
                        <li class="all-goods-wrapper">
                            <a class="all-goods" href="#">全部商品分类</a>

                            <!-- 创建一个左侧导航菜单 -->
                            <ul class="left-menu">
                                <li>
                                    <a href="#">
                                        手机 电话卡
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        电视 盒子
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        笔记本 平板
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        家电 插线板
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        出行 穿戴
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        智能 路由器
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        电源 配件
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        健康 儿童
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        耳机 音箱
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        生活 箱包
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                            </ul>
                        </li>
                        <li><a href="#">小米手机</a></li>
                        <li><a href="#">Redmi红米</a></li>
                        <li><a href="#">电视</a></li>
                        <li><a href="#">笔记本</a></li>
                        <li><a href="#">家电</a></li>
                        <li><a href="#">路由器</a></li>
                        <li><a href="#">只能硬件</a></li>
                        <li><a href="#">服务</a></li>
                        <li><a href="#">社区</a></li>

                        <!-- 创建一个弹出层 -->
                        <div class="goods-info">

                        </div>

                        <!-- 创建搜索框的容器 -->
                        <div class="search-wrapper">
                            <form class="search" action="#">
                                <input class="search-inp" type="text">
                                <button class="search-btn">
                                    <i class="fas fa-search"></i>
                                </button>
                            </form>
                        </div>
                    </ul>
                </div>
            </div>
        </div>

        <!-- 创建banner的容器 -->
        <div class="banner-wrapper">
            <div class="banner w">
                <ul class="img-list">
                    <li>
                        <a href="#">
                            <img src="./img/banner1.jpg" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/banner2.webp" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/banner3.webpg" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/banner4.webp" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/banner5.webp" alt="">
                        </a>
                    </li>
                </ul>

                <div class="pointer">
                    <a class="active" href="javascript:;"></a>
                    <a href="javascript:;"></a>
                    <a href="javascript:;"></a>
                    <a href="javascript:;"></a>
                    <a href="javascript:;"></a>
                </div>

                <div class="prev-next">
                    <a class="prev" href="javascript:;"></a>
                    <a class="next" href="javascript:;"></a>
                </div>
            </div>

            <!-- 固定定位的工具条 -->
            <div class="back-top"></div>

            <!-- 创建广告容器 -->
            <div class="ad w">
                <ul class="shortcut">
                    <li>
                        <a href="#">
                            <i class="fas fa-clock"></i>
                            小米秒杀
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <i class="fas fa-building"></i>
                            企业团购
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <i class="fas fa-frog"></i>
                            F码通道
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <i class="fas fa-address-card"></i>
                            米粉卡
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <i class="fas fa-gift"></i>
                            以旧换新
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <i class="fas fa-mobile-alt"></i>
                            话费充值
                        </a>
                    </li>
                </ul>

                <ul class="ad-img">
                    <li>
                        <a href="#">
                            <img src="./img/01.jpg" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/02.jpg" alt="">
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="./img/03.jpg" alt="">
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </body>
</html>

4、CSS 代码

/* 主页index.html的样式表 */

/* 设置顶部导航条的容器 */
.topbar-wrapper {
    width: 100%;
    height: 40px;
    line-height: 40px;
    background-color: #333;
}

/* 设置超链接的颜色 */
.topbar a {
    font-size: 12px;
    color: #b0b0b0;
    display: block;
}

/* 设置超链接移入的效果 */
.topbar a:hover {
    color: #fff;
}

/* 设置中间的分割线效果 */
.topbar .line {
    color: #424242;
    font-size: 12px;
    margin: 0 8px;
    margin-top: -1px;
}

/* 设置左侧导航条 */
.service,
.topbar li {
    float: left;
}

.app {
    position: relative;
}

/* 设置app下的小三角 */
.app-wrapper:hover .app::after {
    display: none;
    content: '';
    /* 设置绝对定位 */
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    /* 设置四个方向的边框 */
    border: 6px solid transparent;
    /* 去除上边框 */
    border-top: none;
    /* 单独设置下边框的颜色 */
    border-bottom-color: #fff;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

/* 设置下载app的下拉 */
.app .qrcode {
    /* 如果设置过渡先关闭display */
    /* display: none; */
    position: absolute;
    /* left: -38px; */
    left: 22px;
    width: 124px;
    /* height: 135px; */ /* 这个是通过display设置的方式,不好加动画效果! */
    /* 通过height、overflow方便设置动画 */
    height: 0;
    overflow: hidden;
    margin-left: -62px;
    line-height: 1;
    text-align: center;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    z-index: 9999;

    /* transition设置过度效果 */
    transition: height 0.3s;
}

/* 与下方的效果是一样的,另一种写法! */
/* .app:hover .qrcode,
.app:hover::after {
    display: block;
} */

.app-wrapper:hover > .app .qrcode {
    display: block;
    height: 148px;
}

.app .qrcode img {
    width: 90px;
    margin: 17px;
    margin-bottom: 12px;
}

.app .qrcode span {
    color: #000;
    font-size: 13px;
}

/* 设置右侧导航条 */
.shop-cart,
.user-info {
    float: right;
}

.shop-cart {
    margin-left: 26px;
}

/* 设置购物车的样式 */
.shop-cart a {
    width: 120px;
    background-color: #424242;
    text-align: center;
}

.shop-cart:hover a {
    background-color: #fff;
    color: #ff6700;
}

.shop-cart i {
    margin-right: 2px;
}

/* 设置中间的header */
.header {
    height: 100px;
    /* background-color: pink; */
}

.header-wrapper {
    /* background-color: red; */
    position: relative;
}

/* 设置logo的h1 */
.header .logo {
    /* 隐藏logo中的文字 */
    text-indent: -999px;
    float: left;
    margin-top: 22px;
    width: 55px;
    height: 55px;
    position: relative;
    overflow: hidden;
}

/* 统一设置logo的超链接 */
.header .logo a {
    /* display: block; */
    position: absolute;
    width: 55px;
    height: 55px;
    left: 0;
    background-color: #ff6700;
    background-image: url('../img/mi-logo.png');
    background-size: cover;
    background-position: center;
    transition: left 0.3s;
}

/* 设置home的图标 */
.header .logo .home {
    left: -55px;
    background-image: url('../img/mi-home.jpeg');
}

/* 设置鼠标移入以后两个图标的位置 */
.header .logo:hover .mi {
    left: 55px;
}

.header .logo:hover .home {
    left: 0px;
}

.header .nav-wrapper {
    float: left;
    margin-left: 7px;
}

/* 设置导航条 */
.header .nav {
    /* width: 792px; */
    height: 100px;
    line-height: 100px;
    padding-left: 58px;
}

/* 设置导航条的li */
.nav > li {
    float: left;
}

.all-goods-wrapper {
    position: relative;
}

/* 设置左侧导航条的样式 */
.left-menu {
    width: 234px;
    height: 420px;
    background-color: rgba(0, 0, 0, 0.6);
    position: absolute;
    z-index: 998;
    left: -120px;
    line-height: 1;
    padding: 20px 0;
}

ul .left-menu li a {
    display: block;
    height: 42px;
    line-height: 42px;
    color: white;
    margin-right: 0;
    padding: 0 30px;
    font-size: 14px;
}

ul .left-menu li a:hover {
    color: white;
    background-color: #ff6700;
}

.left-menu a i {
    float: right;
    line-height: 42px;
}

.nav-wrapper li a {
    font-size: 16px;
    display: block;
    margin-right: 20px;
}

.nav-wrapper li a:hover {
    color: #ff6700;
}

/* 隐藏全部商品 */
.all-goods {
    visibility: hidden;
}

.nav .goods-info {
    /* height: 228px; */
    height: 0;
    overflow: hidden;
    width: 100%;
    position: absolute;
    background-color: white;
    top: 100px;
    left: 0;
    transition: height 0.3s;
    /* background-color: #bfa; */
    z-index: 999;
}

.nav li:not(:first-of-type):not(:nth-child(10)):not(:nth-child(9)):hover ~ .goods-info,
.goods-info:hover {
    border-top: 1px solid rgb(224, 224, 224);
    box-shadow: 0 5px 3px rgba(0, 0, 0, 0.2);
    height: 228px;
}

/* 设置搜索框的容器 */
.search-wrapper {
    width: 296px;
    height: 50px;
    float: right;
    margin-top: 25px;
}

.search-wrapper .search-inp {
    box-sizing: border-box;
    float: left;
    padding: 0;
    height: 50px;
    border: none;
    padding: 0 10px;
    width: 244px;
    font-size: 16px;
    border: 1px solid rgb(224, 224, 224);
    outline: none;
}

/* 设置input获取焦点后的样式 */
.search-wrapper .search-inp:focus,
.search-wrapper .search-inp:focus + button {
    /* outline: 1px solid #ff6700; */
    border-color: #ff6700;
}

.search-wrapper .search-btn {
    float: left;
    height: 50px;
    width: 52px;
    padding: 0;
    border: none;
    background-color: #fff;
    color: #616161;
    font-size: 16px;
    border: 1px solid rgb(224, 224, 224);
    border-left: none;
}

.search-wrapper .search-btn:hover {
    background-color: #ff6700;
    color: white;
    border: none;
}

/* 设置banner */
.banner {
    position: relative;
    height: 460px;
}

.banner .img-list li {
    position: absolute;
}

.banner img {
    width: 100%;
}

/* 设置5个导航点 */
.pointer {
    position: absolute;
    bottom: 22px;
    right: 35px;
}

.pointer a {
    float: left;
    width: 6px;
    height: 6px;
    border: 2px rgba(0, 0, 0, 0.4) solid;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.4);
    margin-left: 6px;
}

.pointer a:hover,
.pointer a.active {
    border-color: rgba(0, 0, 0, 0.4);
    background-color: rgba(225, 225, 225, 0.4);
}

/* 设置两个箭头 */
.prev-next a {
    width: 41px;
    height: 69px;
    position: absolute;
    background-image: url('../img/icon-slides.png');
    top: 0;
    bottom: 0;
    margin: auto 0;
}

.prev-next .prev {
    left: 234px;
    background-position: -84px 0;
}

.prev-next .prev:hover {
    background-position: 0 0;
}

.prev-next .next {
    right: 0;
    background-position: -125px 0;
}

.prev-next .next:hover {
    background-position: -42px 0;
}

/* 设置回到顶部的元素 */
.back-top {
    width: 26px;
    height: 206px;
    background-color: #ff6700;
    position: fixed;
    bottom: 60px;
    right: 50%;
    margin-right: -639px;
}

/* 设置下部的广告区域 */
.ad {
    /* background-color: orange; */
    height: 170px;
    margin-top: 14px;
}

.ad .shortcut,
.ad .ad-img,
.ad li {
    float: left;
}

/* 设置左侧快捷方式 */
.ad .shortcut {
    width: 228px;
    height: 168px;
    background-color: #5f5750;
    margin-right: 14px;
    padding-left: 6px;
    padding-top: 2px;
}

.ad .shortcut li {
    position: relative;
}

/* 设置上边框 */
.ad .shortcut li::before {
    content: '';
    position: absolute;
    width: 64px;
    height: 1px;
    background-color: #665e57;
    left: 0;
    right: 0;
    top: 0;
    margin: 0 auto;
}

/* 设置左边框 */
.ad .shortcut li::after {
    content: '';
    position: absolute;
    height: 70px;
    width: 1px;
    background-color: #665e57;
    top: 0;
    left: 0;
    margin: auto 0;
}

/* 设置快捷方式的超链接 */
.ad .shortcut a {
    color: #cfccca;
    display: block;
    height: 84px;
    width: 76px;
    text-align: center;
    font-size: 12px;
    overflow: hidden;
}

.ad .shortcut a:hover {
    color: #fff;
}

/* 设置图标字体 */
.ad .shortcut i {
    display: block;
    margin-top: 20px;
    font-size: 20px;
    margin-bottom: 6px;
}

/* 设置自左侧的图片 */
.ad .ad-img li {
    width: 316px;
    margin-right: 15px;
}

.ad .ad-img li:last-child {
    margin: 0;
}

.ad .ad-img img {
    width: 100%;
    vertical-align: top;
}

5、效果展示

image20220911140001703png

对于小米官网的一些静态资源可以在mi.com的开发者工具进行获取,这里省略!