品优购项目-【下】

目标

  • 能够写出列表页
  • 能够写出注册页
  • 能够把品优购网站部署到本地服务器
  • 能够把品优购网站上传到远程服务器

品优购项目

首页制作

main 主体模块制作

以前书写的就是模块化中的公共部分。

main 主体模块是 index 里面专有的,注意需要新的样式文件 index.css

在这里插入图片描述

  • main 盒子宽度为 980 像素,高度是455像素,位置距离左边 220px (margin-left ) ,给高度就不用清除浮动

  • main 里面包含左侧盒子,宽度为 721像素,左浮动,focus 焦点图模块

  • main 里面包含右侧盒子,宽度为 250像素,右浮动,newsflash 新闻快报模块

    结构代码

    <div class="w">
        <div class="main">
            <div class="focus">
                ...
            </div>
            <div class="newsflash">
                ...
            </div>
        </div>
    </div>
    

    样式代码

    .main {
        width: 980px;
        height: 455px;
        margin-left: 220px;
        margin-top: 10px;
    }
    .focus {
        float: left;
        width: 721px;
        height: 455px;
        background-color: purple;
    }
    .newsflash {
        float: right;
        width: 250px;
        height: 455px;
    }
    
左侧 focus 模块制作

在这里插入图片描述

  • 大的 focus 盒子 包裹 1 号展示图片的盒子,2号 3号 左右箭头的盒子,4号 小圆点的盒子

    <div class="focus fl">
    	<a href="#" class="arrow-l"> < </a>
    	<a href="#" class="arrow-r"> > </a>
    	<ul>
    		<li>
    		  <a href="#"><img src="upload/focus.jpg" alt=""></a>
    		</li>
    	</ul>
    	<ol class="circle">
    		<li></li>
    		<li class="current"></li>
    		<li></li>
    		<li></li>
    		<li></li>
    		<li></li>
    		<li></li>
    		<li></li>
    	</ol>
    </div>
    
  • 包裹 1 号盒子(ul > li > a > img),轮播图这样的布局是为了后面方便配置js逻辑代码

  • 2 号盒子 跟 3 号盒子 左右箭头,利用定位的方式来实现

    样式代码

    .arrow-l,
    .arrow-r {
    	position: absolute;
    	top: 50%;
    	margin-top: -20px;
    	width: 24px;
    	height: 40px;
    	background: rgba(0, 0, 0, .3);
    	text-align: center;
    	line-height: 40px;
    	color: #fff;
    	font-family: 'icomoon';
    	font-size: 18px;
    }
    .arrow-r {
    	right: 0;
    }
    
  • 4 号盒子 里面放 小圆点 (ol > li

    • 小圆圈利用边框实现
    • 小圆点里面背景颜色来实现

    样式代码

    .circle {
    	position: absolute;
    	bottom: 10px;
    	left: 50px;
    }
    .circle li {
    	float: left;
    	width: 8px;
    	height: 8px;
    	/*background-color: #fff;*/
    	border: 2px solid rgba(255, 255, 255, 0.5);
    	margin: 0 3px;
    	border-radius: 50%;
    	/*鼠标经过显示小手*/
    	cursor: pointer;
    
    }
    .current {
    	background-color: #fff;
    	box-shadow: 
    }
    
右侧 newsflash 模块制作

在这里插入图片描述

  • 右侧的模块 分为上中下三个盒子

    结构代码

    <div class="newsflash">
        <div class="news">
            ...
        </div>
        <div class="lifeservice">
            ...
        </div>
        <div class="bargain">
            ...
        </div>
    </div>
    
  • 1 号盒子为 news 新闻模块 高度为 165px

在这里插入图片描述

  • 分为上下两个结构,但是两个模块都用 div,上面是 news-hd,下面是 news-bd

    结构代码

    <div class="news">
        <div class="news-hd">
            ...
        </div>
        <div class="news-bd">
            ...
        </div>
    </div>
    

    样式代码

    .news {
       height: 165px;
       border: 1px solid #e4e4e4;
    }
    
  • 上面是news-hd,设置高度是 33px,设置下边框

    • 里面放一个h5 标题
    • 放一个a标签,内容是 更多,然后让 a 进行右浮动,三角用伪元素设置字体图标就好

    结构代码

    <div class="news-hd">
        <h5>品优购快报</h5>
        <a href="#" class="more">更多</a>
    </div>
    

    样式代码

    .news-hd {
        height: 33px;
        line-height: 33px;
        border-bottom: 1px dotted #e4e4e4;
        padding: 0 15px;
    }
    .news-hd h5 {
        float: left;
        font-size: 14px;
    }
    .news-hd .more {
        float: right;
    }
    .news-hd .more::after {
        font-family: 'icomoon';
        content: '\e920';
    }
    
  • 下面是news-bd

    • 里面包含 ulli 还有链接
    • li设置高度,24px,设置单行文字溢出省略: 1. 设置 overflow: hidden; 2.设置 white-space: nowrap; 3. 设置 text-overflow: ellipsis;

    结构代码

    <div class="news-bd">
        <ul>
            <li><a href="#"><strong>[重磅]</strong> 它来了它来了,pink老师走来了, 它是谁?</a></li>
            <li><a href="#"><strong>[重磅]</strong> 它来了它来了,pink老师走来了</a></li>
            <li><a href="#"><strong>[重磅]</strong> 它来了它来了,pink老师走来了</a></li>
            <li><a href="#"><strong>[重磅]</strong> 它来了它来了,pink老师走来了</a></li>
            <li><a href="#"><strong>[重磅]</strong> 它来了它来了,pink老师走来了, 它是谁?</a></li>
        </ul>
    </div>
    

    样式代码

    .news-bd {
        padding: 5px 15px 0;
    }
    .news-bd ul li {
        height: 24px;
        line-height: 24px;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
    
  • 2 号盒子为 lifeservice 生活服务模块 高度为 209px

在这里插入图片描述

  • 设置边框(左右下 边框)
  • 里面的内容 是 ul > 12*li,给li设置宽 63px,高71px,设置 右边和下边的边框,设置浮动
  • 这样设置后,第四个li会装不开,掉下来,解决办法如下
    • lifeservice 盒子宽度为 250 ,但是装不开里面的 4 个小 li
    • 可以让 lifeservice 里面的 ul 宽度为 252,就可以装的下 4 个 小 li
    • lifeservice 盒子 overflow 隐藏多余的部分就可以了
  • li 里面放一个 i(里面放图标),下面的文本用 p 标签包裹
  • i 设置 24px宽和28px的高(注意 i 是行内元素, 转成行内块),给 li 设置 text-align:center 让里面内容居中显示

结构代码

<div class="lifeservice">
    <ul>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
        <li>
            <i></i>
            <p>话费</p>
        </li>
    </ul>
</div>

样式代码

.lifeservice {
    overflow: hidden;
    height: 209px;
    /* background-color: purple; */
    border: 1px solid #e4e4e4;
    border-top: 0;
}
.lifeservice ul {
    width: 252px;
}
.lifeservice ul li {
    float: left;
    width: 63px;
    height: 71px;
    border-right: 1px solid #e4e4e4;
    border-bottom: 1px solid #e4e4e4;
    text-align: center;
}
.lifeservice ul li i {
    display: inline-block;
    width: 24px;
    height: 28px;
    background-color: pink;
    margin-top: 12px;
    background: url(../images/icons.png) no-repeat -19px -15px;
}
  • 3 号盒子为 bargain 特价商品

    • 这个比较简单,直接插入一张图片即可

    结构代码

    <div class="bargain">
        <img src="upload/bargain.png" alt="">
    </div>
    

    样式代码

    .bargain {
        margin-top: 5px;
    }
    

推荐模块制作 – recom

在这里插入图片描述

  • 大盒子 recom 推荐模块 recommend

    • 给这个 recom 大盒子 设置版心,设置 163px的高,背景颜色(#ebebeb),设置距离上边 12px

    结构代码

    <div class="w recom">
        ...
    </div>
    

    样式代码

    .recom {
        height: 163px;
        background-color: #ebebeb;
        margin-top: 12px;
    }
    
  • 里面包含 2 个盒子, 浮动即可

    结构代码

     <div class="w recom">
        <div class="recom_hd">
            ...
        </div>
        <div class="recom_bd">
            ...
        </div>
    </div>
    
  • 1 号盒子 recom_hd

    • 设置宽度205px,高度163px
    • 里面放一个img标签,插入图片即可

    结构代码

    <div class="recom_hd">
        <img src="images/recom.png" alt="">
    </div>
    

    样式代码

    .recom_hd {
        float: left;
        height: 163px;
        width: 205px;
        background-color: #5c5251;
        text-align: center;
        padding-top: 30px;
    }
    
  • 2 号盒子 recom_bd ,注意里面的小竖线

    • 右侧结构里面放 ul 包含 4个 li,每个li里面包含一个img
    • 直接利用切片工具把里面的内容当成一张图片
    • li 设置浮动
    • img 设置宽高,宽度 248px,高度 163px
    • 小竖线利用伪元素来实现,给每一个li设置一个 after 伪元素,然后给这个伪元素设置绝对定位,设置top 10px,给li设置相对定位(注意,最后一个li不用设置伪元素),可以利用 nth-child(-n+3){...}

    结构代码

    <div class="recom_bd">
        <ul>
            <li><img src="upload/recom_03.jpg" alt=""></li>
            <li><img src="upload/recom_03.jpg" alt=""></li>
            <li><img src="upload/recom_03.jpg" alt=""></li>
            <li><img src="upload/recom_03.jpg" alt=""></li>
        </ul>
    </div>
    

    样式代码

    .recom_bd {
        float: left;
    }
    .recom_bd ul li {
        position: relative;
        float: left;
    }
    .recom_bd ul li img {
        width: 248px;
        height: 163px;
    }
    .recom_bd ul li:nth-child(-n+3)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 10px;
        width: 1px;
        height: 145px;
        background-color: #ddd;
    }
    

家用电器模块

在这里插入图片描述

注意这个 floor ,不要给高度,内容有多少,算多少

第一楼是家用电器模块: 里面包含两个盒子

box_hd 制作
  • 1 号盒子 box_hd,给一个高度,有个下边框,里面分为左右 2 个盒子

在这里插入图片描述

  • box_hd 给 30px 的高度,2个像素的下边框
  • 里面放一个左侧 h3 的盒子,右侧一个div盒子,div盒子里面放 ul > li > a
  • 左侧盒左浮动,右侧盒子右浮动
  • a标签之间的距离用左右的padding撑开即可

结构代码

<div class="box_hd">
    <h3>家用电器</h3>
    <div class="tab_list">
        <ul>
            <li> <a href="#" class="style_red">热门</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>
            <li><a href="#">新奇特</a>|</li>
            <li><a href="#"> 高端电器</a></li>
        </ul>
    </div>
</div>

样式代码

.box_hd {
    height: 30px;
    border-bottom: 2px solid #c81623;
}
.box_hd  h3 {
    float: left;
    font-size: 18px;
    color: #c81623;
    font-weight: 400;
}
.tab_list {
    float: right;
    line-height: 30px;
}
.tab_list ul li {
    float: left;
}
.tab_list ul li a {
    margin: 0 15px;
}
box_bd 制作
  • 2 号盒子 box_bd,不要给高度

在这里插入图片描述

  • box_bd 属于是tab栏的内容区域,所以在这个里面先嵌套一个盒子 tab_content,在tab_content 里面包裹tab选项卡对应的内容
  • 内容被一个大盒子包裹(tab_list_item),里面是 ul 包裹 5个 li,每个li设置对应的宽度,然后设置浮动
  • 而这5个li的宽度是不一致的,在这里我们的做法是 先把宽度的样式列出来,然后给对应的li设置
    • 第一个小 li 分为上下结构,上面是 ul 包裹 lili里面包裹 a,下面插入一张图片
    • 上面的li设置宽高,设置浮动,这样就排列下来了
    • 后面的小 li 里面先放一个a标签,然后在a标签里面插入图片即可

结构代码

<div class="box_bd">
    <div class="tab_content">
        <div class="tab_list_item">
            <div class="col_210">
                <ul>
                    <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>
                </ul>
                <a href="#">
                    <img src="upload/floor-1-1.png" alt="">
                </a>
            </div>
            <div class="col_329">
                <a href="#">
                    <img src="upload/floor-1-b01.png" alt="">
                </a>
            </div>
            <div class="col_221">
                <a href="#" class="bb"> <img src="upload/floor-1-2.png" alt=""></a>
                <a href="#"> <img src="upload/floor-1-3.png" alt=""></a>
            </div>
            <div class="col_221">
                    <a href="#"> <img src="upload/floor-1-4.png" alt=""></a>
                  
            </div>
            <div class="col_219">
                    <a href="#" class="bb"> <img src="upload/floor-1-5.png" alt=""></a>
                    <a href="#"> <img src="upload/floor-1-6.png" alt=""></a>
            </div>
        </div>
    </div>
</div>

样式代码

.box_bd {
    height: 361px;
  
}
.tab_list_item>div {
    float: left;
    height: 361px;
}

.col_210 {
    width: 210px;
    background-color: #f9f9f9;
    text-align: center;
}
.col_210  ul li {
    float: left;
    width: 85px;
    height: 34px;
    border-bottom: 1px solid #ccc;
    text-align: center;
    line-height: 33px;
    margin-right: 10px;
}
.col_210  ul {
    padding-left: 12px;
}
.col_329 {
    width: 329px;
}
.col_221 {
    width: 221px;
    border-right: 1px solid #ccc;
}
.col_219 {
    width: 219px;
}
.bb {
    /* 一般情况下,a如果包含有宽度的盒子,a需要转为块级元素 */
    display: block;
    border-bottom: 1px solid #ccc;
}
tab栏切换需求

在这里插入图片描述

  • tab栏的布局是 ul > li > a
  • 有多少个tab选项卡,那么对应就有多少个内容
  • 但是每一次只会显示一个内容块,其他内容进行的隐藏
  • 等后面我们学习了js之后,我们就会配合js来实现,tab栏的切换

列表制作(★★★)

品优购列表页制作准备工作

  • 列表页面是新的页面,我们需要新建页面文件 list.html
  • 因为列表页的头部和底部基本一致,所以我们需要把首页中的头部和底部的结构复制过来
  • 头部和底部的样式也需要,因此 list.html 中还需要引入 common.css
  • 需要新的 list.css 样式文件,这是列表页专门的样式文件

列表页 headernav 修改

在这里插入图片描述

  • 秒杀盒子 sk( second kill ) 定位即可

结构代码

<header class="header w">
     <!-- logo模块 -->
     ...
     <!-- 列表页的秒杀模块 -->
     <div class="sk">
         <img src="images/sk.png" alt="">
     </div>
     <!-- search搜索模块 -->
     ...
     <!-- hotwords模块制作 -->
     ...
     <!-- 购物车模块 -->
     ...
 </header>

样式代码

.sk {
    position: absolute;
    left: 190px;
    top: 40px;
    border-left: 1px solid #c81523;
    padding: 3px 0 0  14px;
}
  • 1 号盒子左侧浮动 sk_list 里面包含 ulli
  • 2 号盒子左侧浮动 sk_con 里面包含 ulli

结构代码

<!-- nav模块制作 start -->
<nav class="nav">
    <div class="w">
        <div class="sk_list">
            <ul>
                <li><a href="#">品优秒杀</a></li>
                <li><a href="#">品优秒杀</a></li>
                <li><a href="#">品优秒杀</a></li>
            </ul>
        </div>
        <div class="sk_con">
            <ul>
                <li><a href="#">女装</a></li>
                <li><a href="#" class="style_red">女鞋</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>
            </ul>
        </div>
    </div>
</nav>

样式代码

.sk_list {
    float: left;
}
.sk_list  ul li {
    float: left;
}
.sk_list  ul li a {
    display: block;
    line-height: 47px;
    padding: 0 30px;
    font-size: 16px;
    font-weight: 700;
    color: #000;
}
.sk_con {
    float: left;
}
.sk_con ul li {
    float: left;
}
.sk_con  ul li a {
    display: block;
    line-height: 49px;
    padding: 0 20px;
    font-size: 14px;
   
}
.sk_con  ul li:last-child a::after {
    content: '\e91e';
    font-family: 'icomoon';
}

列表页主体 sk_container

在这里插入图片描述

  • 1 号盒子 sk_container 给宽度 1200,不要给高度

结构代码

<!-- 列表页主体部分 -->
<div class="w sk_container">
    <div class="sk_hd">
        ...
    </div>
    <div class="sk_bd">
        ...
    </div>
</div>
sk_hd 制作
  • 2 号盒子 sk_hd ,插入图片即可

结构代码

<div class="sk_hd">
    <img src="upload/bg_03.png" alt="">
</div>
sk_bd 制作
  • 3 号盒子 sk_bd ,里面包含很多的 ulli
    • 当鼠标移入到 li 上面的时候显示红色的边框,在这里先给 li 设置透明的边框,当鼠标移入的时候 设置为红色即可
    • 由于给每个 li 都设置了外边距,导致一行的最后一个 li 掉了下来,在这里我们利用 nth-child(4n) 来选择出来每一行最后一个 li,去掉外边距就好了

结构代码

<div class="sk_bd">
     <ul class="clearfix">
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
        <li>
            <img src="upload/list.jpg" alt="">
        </li>
    </ul>
</div>

样式代码

.sk_bd ul li {
    overflow: hidden;
    float: left;
    margin-right: 13px;
    width: 290px;
    height: 460px;
    border: 1px solid transparent;
}
.sk_bd ul li:nth-child(4n) {
    margin-right: 0;
}
.sk_bd ul li:hover {
    border: 1px solid #c81523;
}

注册页面(★★★)

在这里插入图片描述

**注意:**注册页面比较隐私,为了保护用户信息,我们不需要对当前页面做SEO优化

在这里插入图片描述

准备工作

  • 创建register.html,引入 base.css,引入favicon图标
  • 创建register.css ,在html页面进行引入

header 头部实现

  • 整个内容用 版心 进行包裹
  • 第一个头部区域怎么简单怎么来,用一个header盒子包裹链接,链接里面放图片即可

结构代码

<header>
    <div class="logo">
        <a href="index.html"> <img src="images/logo.png" alt=""></a>
    </div>
</header>

样式代码

.w {
    width: 1200px;
    margin: 0 auto;
}
header {
    height: 84px;
    border-bottom: 2px solid #c81523;
}
.logo {
    padding-top: 18px;
}

registerarea 主体模块实现

在这里插入图片描述

  • 整个大盒子 高度为 522px,设置4个边框

    结构代码

    <div class="registerarea">
       ...
    </div>
    

    样式代码

    .registerarea {
        height: 522px;
        border: 1px solid #ccc;
        margin-top: 20px;
    }
    
  • 1号盒子 是一个 h3 标签,放标题

    • 里面放 注册新用户 的文字,然后包一个 div的标签,让div标签右浮动

    结构代码

    <h3>注册新用户
        <div class="login">我有账号,去<a href="#">登陆</a></div>
    </h3>
    

    样式代码

    .registerarea h3 {
        height: 42px;
        border-bottom: 1px solid #ccc;
        background-color: #ececec;
        line-height: 42px;
        padding: 0 10px;
        font-size: 18px;
        font-weight: 400;
    }
    .login {
        float: right;
        font-size: 14px;
    }
    .login a {
        color: #c81523;
    }
    
  • 2号盒子 里面放注册的内容

    • 先用一个盒子,把整个内容包裹起来,设置盒子宽度(600px),让这个盒子距上边50px,水平居中显示

    • 里面的内容利用 ul 包含 li 来实现的(不需要用表格)

    • 每个 li 里面,左侧放 label 标签, 中间放input 标签, 右侧放 span 提示信息

    • 左侧 label里面的文字都是右对齐,我们可以给label设置一个宽度(88px),然后利用text-align 来设置右对齐

    • input 表单设置 宽度 242px,高度 37px,设置边框

    • 右侧 span修饰一下文字颜色

    • 提示信息的样式优化

      • 定义一个 错误的样式,定义一个 正确的样式,然后给对应的盒子设置类名

      • 在span里面放一个小盒子,这个小盒子用来显示 图标的,设置一下宽高 (20x20)

      • 插入图片了之后,默认与文字是基线对齐,通过 vertical-algin 来设置 图片与文字对齐方式

    • 安装程度的布局,在第4个小 li 里面放 三个盒子,分别放 弱、中、强

      • 设置 em 的 左右 12px 的内边距,设置一下文字颜色
      • 分别设置 背景颜色
    • 同意协议 和 完成注册 都是用 li 进行包裹

    结构代码

    <div class="reg_form">
        <form action="">
            <ul>
                <li><label for="">手机号:</label> <input type="text" class="inp">
                    <span class="error"> <i class="error_icon"></i> 手机号码格式不正确,请从新输入 </span></li>
                <li><label for="">短信验证码:</label> <input type="text" class="inp">
                    <span class="success"> <i class="success_icon"></i> 短信验证码输入正确 </span></li>
                <li><label for="">登录密码:</label> <input type="password" class="inp">
                    <span class="error"> <i class="error_icon"></i> 手机号码格式不正确,请从新输入 </span></li>
                <li class="safe">安全程度 <em class="ruo"></em> <em class="zhong"></em> <em class="qiang"></em> </li>
                <li><label for="">确认密码:</label> <input type="password" class="inp">
                    <span class="error"> <i class="error_icon"></i> 手机号码格式不正确,请从新输入 </span></li>
                <li class="agree"><input type="checkbox" name="" id=""> 
                    同意协议并注册 <a href="#">《知晓用户协议》</a>
                </li>
                <li>
                    <input type="submit" value="完成注册" class="btn">
                </li>
            </ul>
        </form>
    </div>
    

    样式代码

    .reg_form {
        width: 600px;
    
        margin: 50px auto 0;
    }
    .reg_form ul li {
        margin-bottom: 20px;
    }
    .reg_form ul li label {
        display: inline-block;
        width: 88px;
        text-align: right;
    }
    .reg_form ul li .inp {
        width: 242px;
        height: 37px;
        border: 1px solid #ccc;
    }
    .error {
        color: #c81523;
    }
    .error_icon,
    .success_icon {
        display: inline-block;
        vertical-align: middle;
        width: 20px;
        height: 20px;
        background: url(../images/error.png) no-repeat;
        margin-top: -2px;
    }
    .success {
        color: green;
    }
    .success_icon {
        background: url(../images/success.png) no-repeat;
    }
    .safe {
        padding-left: 170px;
    }
    .safe em {
        padding: 0 12px;
        color: #fff;
    }
    .ruo {
        background-color: #de1111;
    }
    .zhong {
        background-color: #40b83f;
    }
    
    .qiang {
        background-color: #f79100;
    }
    .agree {
        padding-left: 95px;
    }
    .agree input {
        vertical-align: middle;
    }
    .agree a {
        color: #1ba1e6;
    }
    .btn {
        width: 200px;
        height: 34px;
        background-color: #c81623;
        font-size: 14px;
        color: #fff;
        margin: 30px 0 0 70px;
    }
    

底部实现

结构代码

<footer>
    <div class="mod_copyright">
        <div class="links">
            <a href="#">关于我们</a> | <a href="#">联系我们</a> | 联系客服 | 商家入驻 | 营销中心 | 手机品优购 | 友情链接 | 销售联盟 | 品优购社区 |
            品优购公益 | English Site | Contact U
        </div>
        <div class="copyright">
            地址:北京市昌平区建材城西路金燕龙办公楼一层 邮编:100096 电话:400-618-4000 传真:010-82935100 邮箱: zhanghj+itcast.cn <br>
            京ICP备08001421号京公网安备110108007702
        </div>
    </div>
</footer>

样式代码

.mod_copyright {
    text-align: center;
    padding-top: 20px;
}
.links {
    margin-bottom: 15px;
}
.links a {
    margin: 0 3px;
}
.copyright {
    line-height: 20px;
}

拓展案例

品优购详情页面

训练描述

在这里插入图片描述
对整个基础班学习内容再进行一次的巩固,熟练使用PC端的布局,与我们课程可以良好的衔接;整个详情页面分两天来完成,今天完成到 促销这个小模块;今天作业包含以下模块:

  1. 商品详细模块完成
  2. 产品细节模块完成
训练提示

详情页常用的单词

名称说明
主体de_container
面包屑导航crumb_wrap
产品介绍product_intro ( introduction介绍)
预览包preview_wrap(左侧部分)
预览缩略图preview_img
预览列表preview_list
左按钮arrow_prev
右按钮arrow_next
小图列表preview_items
产品详细信息区域itemInfo_wrap (右侧部分)
头部名称sku_name skull 头骨
新闻news
摘要summary
评价remark
价格摘要summary_price
配送至summary_stock
支持summary_support
选择choose
选择按钮组choose_btns
选择数量choose_amount
减去reduce
加入购物车addshopcar
产品细节product_detail ( detail描述)
左侧边aside
详细描述detail
  1. 在昨天做完的作业基础上开始继续开发
  2. 利用 dl > dt + dd 布局的思路完成商品详细信息区域的完成
  3. 产品细节模块分为左右两个盒子
    1. 两个大盒子浮动
    2. 左侧盒子里面分为上下结构,上面放tab选项卡,下面放内容(ul > li > 内容
    3. 右侧盒子里面分为上下结构,上面放tab选项卡,下面放内容
训练步骤

在这里插入图片描述

  • 加入购物车上面的模块布局与之前的一致,利用 dl > dt + dd 的方式来布局

    • 选择颜色这一块,后面的选项是可以点击的,所以这里用 a 标签进行包裹,设置成行内块元素,设置宽高,行内块中间默认有间隙,就不用设置边距了

    结构代码

    <dl class="summary_support">
        <dt>支持</dt>
        <dd>以旧换新,闲置手机回收 4G套餐超值抢 礼品购</dd>
    </dl>
    <dl class="choose_color">
        <dt>选择颜色</dt>
        <dd>
            <a href="javascript:;" class="current">玫瑰金</a>
            <a href="javascript:;">金色</a>
            <a href="javascript:;">白色</a>
            <a href="javascript:;">土豪色</a>
        </dd>
    </dl>
    <dl class="choose_version">
        <dt>选择版本</dt>
        <dd>
            <a href="javascript:;" class="current">公开版</a>
            <a href="javascript:;">移动4G</a>
        </dd>
    </dl>
    <dl class="choose_type">
        <dt>购买方式</dt>
        <dd>
            <a href="javascript:;" class="current">官方标配</a>
            <a href="javascript:;">移动优惠购</a>
            <a href="javascript:;">电信优惠购</a>
        </dd>
    </dl>
    

    样式代码

    .summary_support dd {
    	line-height: 36px;
    }
    .choose_color a {
    	display: inline-block;
    	width: 80px;
    	height: 41px;
    	background-color: #f7f7f7;
    	border: 1px solid #ededed;
    	text-align: center;
    	line-height: 41px;
    }
    .summary a.current {
    	border-color: #c81623;
    }
    .choose_version  {
    	margin: 10px 0;
    }
    .choose_version a,
    .choose_type a {
    	display: inline-block;
    	height: 32px;
    	padding: 0 12px;
    	background-color: #f7f7f7;
    	border: 1px solid #ededed;
    	text-align: center;
    	line-height: 32px;
    }
    
  • 最下面的布局有一些不一样,左侧里面是一个输入框然后有两个按钮,右侧放一个 a 标签即可

    • 左侧的布局思路是: 先有一个大盒子(choose_amount)来包裹 输入框 还有 按钮
    • 然后给输入框设置宽高
    • 两个按钮设置宽高,然后利用定位的方式放在相应的位置

    结构代码

    <div class="choose_btns">
        <div class="choose_amount">
            <input type="text" value="1">
            <a href="javascript:;" class="add">+</a>
            <a href="javascript:;" class="reduce">-</a>
        </div>
        <a href="#" class="addcar">加入购物车</a>
    </div>
    

    样式代码

    .choose_btns {
    	margin-top: 20px;
    }
    .choose_amount {
    	position: relative;
    	float: left;
    	width: 50px;
    	height: 46px;
    	background-color: pink;
    }
    .choose_amount input {
    	width: 33px;
    	height: 44px;
    	border: 1px solid #ccc;
    	text-align: center;
    }
    .add,
    .reduce {
    	position: absolute;
    	right: 0;
    	width: 15px;
    	height: 22px;
    	border: 1px solid #ccc;
    	background-color: #f1f1f1;
    	text-align: center;
    	line-height: 22px;
    }
    .add {
    	top: 0;
    	
    }
    .reduce {
    	bottom: 0;
    	/*禁止鼠标样式*/
    	cursor: not-allowed;   /* pointer  小手  move  移动  */
    }
    .addcar {
    	float: left;
    	width: 142px;
    	height: 46px;
    	background-color: #c81623;
    	text-align: center;
    	line-height: 46px;
    	font-size: 18px;
    	color: #fff;
    	margin-left: 10px;
    	font-weight: 700;
    }
    

在这里插入图片描述

  • 大盒子 product_detail 包裹两个盒子,不要给高度 ,别忘记清除浮动

  • 1 号盒子 左侧浮动 命名为 aside 有宽度 不给高度
    在这里插入图片描述

    • 1 号盒子 命名为 tab_list 给高度就好了 ,里面 放 ulli 注意这是 tab栏切换布局
    • 注意一下 左侧的li 宽度是 104px,右侧的li是 103px 然后加一个 1px 的左边框
    • 2 号盒子 命名为 tab_con 里面还包含 很多个ul.item 和 上面的 tab_list 里面的li一一对应
    • li 里面的文字 是单行进行显示,如果文字过长,可能会超出盒子的宽度,所以我们需要对这个盒子设置 溢出省略号显示

    结构代码

    <!-- aside -->
    <div class="aside fl">
        <div class="tab_list">
            <ul>
                <li class="first_tab ">相关分类</li>
                <li class="second_tab current">推荐品牌</li>
            </ul>
        </div>
        <div class="tab_con">
            <ul>
                <li> 
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
                <li>
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
                <li>
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
                <li>
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
                <li>
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
                <li>
                    <img src="upload/aside_img.jpg" alt="">
                    <h5>华为 HUAWEI P20 Pro 全面屏徕卡</h5>
                    <div class="aside_price">¥19</div>
                    <a href="#" class="as_addcar">加入购物车</a>
                </li>
            </ul>
        </div>
    </div>
    

    样式代码

    .aside {
    	width: 208px;
    	border: 1px solid #ccc;
    }
    .tab_list {
    	overflow: hidden;
    	height: 34px;
    }
    /*把背景颜色 底边框都给 li*/
    .tab_list li {
    	float: left;
    	background-color: #f1f1f1;
    	border-bottom: 1px solid #ccc;
    	height: 33px;
    	text-align: center;
    	line-height: 33px;
    }
    /*鼠标单击 li 变化样式   背景变白色 去掉下边框 文字变颜色*/
    .tab_list .current {
    	background-color: #fff;
    	border-bottom: 0;
    	color: red;
    }
    .first_tab {
    	width: 104px;
    }
    .second_tab {
    	width: 103px;
    	border-left: 1px solid #ccc;
    }
    .tab_con {
    	padding: 0 10px;
    }
    .tab_con li {
    	border-bottom: 1px solid #ccc;
    }
    .tab_con li h5 {
    	/*超出的文字省略号显示*/
    	white-space: nowrap;
    	overflow: hidden;
    	text-overflow: ellipsis;
    	font-weight: 400;
    }
    .aside_price {
    	font-weight: 700;
    	margin: 10px 0;
    }
    .as_addcar {
    	display: block;
    	width: 88px;
    	height: 26px;
    	border: 1px solid #ccc;
    	background-color: #f7f7f7;
    	margin: 10px auto;
    	text-align: center;
    	line-height: 26px;
    }
    
  • 2号盒子 右侧浮动 命名为 detail 有宽度不给高度

在这里插入图片描述

  • 1 号盒子 命名为 detail_tab_list 给高度就好了 ,里面 放 ulli 注意这是 tab栏切换布局
  • 设置1px 的边框,选中的 li 设置 current 的类名,让背景变红,文字变白
  • 2 号盒子 命名为 detail_tab_con 里面还包含 很多个ul.item 和 上面的 tab_list 里面的li一一对应
  • 下面文字内容用 ul > li > 文字内容,下面的直接插入图片即可

结构代码

<!-- detail -->
<div class="detail fr">
    <div class="detail_tab_list">
        <ul>
            <li class="current">商品介绍</li>
            <li>规格与包装</li>
            <li>售后保障</li>
            <li>商品评价(50000)</li>
            <li>手机社区</li>
        </ul>
    </div>
    <div class="detail_tab_con">
        <div class="item">
            <ul class="item_info">
                <li>分辨率:1920*1080(FHD)</li>
                <li>后置摄像头:1200万像素</li>
                <li>前置摄像头:500万像素</li>
                <li>核 数:其他</li>
                <li>频 率:以官网信息为准</li>
                <li>品牌: Apple ♥关注</li>
                <li>商品名称:APPLEiPhone 6s Plus</li>
                <li>商品编号:1861098</li>
                <li>商品毛重:0.51kg</li>
                <li>商品产地:中国大陆</li>
                <li>热点:指纹识别,Apple Pay,金属机身,拍照神器</li>
                <li>系统:苹果(IOS)</li>
                <li>像素:1000-1600万</li>
                <li>机身内存:64GB</li>
            </ul>
            <p>
                <a href="#" class="more">查看更多参数</a>
            </p>
            <img src="upload/detail_img1.jpg" alt="">
            <img src="upload/detail_img2.jpg" alt="">
            <img src="upload/detail_img3.jpg" alt="">
        </div>
    </div>
</div>

样式代码

.detail {
	width: 978px;
}
.detail_tab_list {
	height: 39px;
	border: 1px solid #ccc;
	background-color: #f1f1f1;
}
.detail_tab_list li {
	float: left;
	height: 39px;
	line-height: 39px;
	padding: 0 20px;
	text-align: center;
	cursor: pointer;
}
.detail_tab_list .current {
	background-color: #c81623;
	color: #fff;
}
.item_info {
	padding: 20px 0 0 20px;
}
.item_info li {
	line-height: 22px;
}
.more {
	float: right;
	font-weight: 700;
	font-family: 'icomoon';
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值