资讯详情

前端基础第一天项目 品优购

优购项目-上

目标

优购项目规划

网站制作流程

页面布局,告诉我们开发者,整个页面的结构是什么,直率地说,在哪里放什么内容

**效果图:**告诉我们开发人员最终的成品应该是什么样子。与原型图相比,效果图包含内容、风格、字体大小等

品优购项目介绍

  • **项目名称:**品优购
  • **项目描述:**优购是电商网站,我们要完成 PC 制作终端主页、列表页和注册页面

优购项目的学习目的

  • 电子商务网站比较全面,需要大量的布局技术,包括布局模式、常见效果和周边技术
  • 可以复习、总结、完善基础班所学的布局技术
  • 完成产品优购项目,可在实际开发中生产 整体感知
  • 为以后学习移动终端项目铺路

开发工具和技术栈

开发工具

VScodePhotoshop(fw)、主流浏览器(以Chrome浏览器为主)

技术栈

  • 利用 HTML5 CSS3 手大量使用手动布局 H5 新标签和样式
  • 模块化开发采用结构与风格分离
  • 良好的代码规范有利于团队更好地开发合作,提高代码质量。因此,请遵循以下代码规范。(详见材料文件夹— 优购代码规范.md)

优购项目建设

创建的文件夹如下(称为项目结构)

创建文件如下

一些网站不提倡初始化 * { 
         margin: 0;  padding: 0; } 比如新浪: html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img{ 
        margin:0;padding:0}  

项目模块化开发

所谓模块化:根据功能划分一个项目,一个功能,一个模块,不相互影响。模块化开发具有重复使用、更换方便等优点

,许多页面都会出现一些样式和结构,。此时,这些结构和样式可以单独用作模块,然后重复使用

  • 许多页面都会出现一些样式和结构,如页面的头部和底部,大多数页面都有。此时,这些结构和样式可以单独用作模块,然后重复使用
  • 这里最典型的应用是 公共风格。写一种风格,其他页面使用相同的风格
  • 模块化开发具有重复使用、修改方便等优点

网站 favicon 图标(★★★)

favicon.ico 一般用作缩略网站标志,显示在浏览器的地址栏或标签上。目前主要浏览器都支持 favicon.ico 图标。

制作favicon图标

使用favicon图标

HTML页面引入favicon图标

在html 页面里面的 <head> </head>在元素之间引入代码

 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>  

TDK三大标签SEO优化(★★)

SEO是什么

**SEO(Search Engine Optimization)**汉译是搜索引擎优化,是利用搜索引擎网站在相关搜索引擎中的自然排名的方法。

目的是深入优化网站,帮助网站获得免费流量,从而提高网站在搜索引擎上的排名,提高网站的知名度。

p>页面必须有三个标签用来符合 SEO 优化

TDK是什么

T – Title(网站标题)

具有不可替代性,是我们内页的第一个重要标签,是搜索引擎了解网页的入口和对网页主题归属的最佳判断点。

**建议:**网站名(产品名)- 网站的介绍 (尽量不要超过30个汉字)

  • 京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
  • 小米商城 - 小米5s、红米Note 4、小米MIX、小米笔记本官方网站
D – description(网站描述)

简要说明我们网站主要是做什么的。

,description 作为网站的总体业务和主题概括,多采用“我们是…”、“我们提供…”、“×××网作为…”、“电话:010…”之类语句。

<meta name="description" content="京东JD.COM-专业的综合网上购物商城,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等数万个品牌优质商品.便捷、诚信的服务,为您提供愉悦的网上购物体验!" />

K – keywords (关键字)

,是搜索引擎的关注点之一。

keywords 最好限制为 6~8 个关键词,关键词之间用英文逗号隔开,采用 关键词1,关键词2 的形式

<meta name= " keywords" content="网上购物,网上商城,手机,笔记本,电脑,MP3,CD,VCD,DV,相机,数码,配件,手表,存储卡,京东" />

<head>
    ...
    <title>品优购商城-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
    </title>
    <!-- 网站说明 -->
    <meta name="description" content="品优购商城-专业的综合网上购物商城,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等数万个品牌优质商品.便捷、诚信的服务,为您提供愉悦的网上购物体验!" />
    <!-- 关键字 -->
    <meta name="keywords" content="网上购物,网上商城,手机,笔记本,电脑,MP3,CD,VCD,DV,相机,数码,配件,手表,存储卡,京东" />
    ...
</head>

品优购首页制作

我们开始制作首页的头部和底部的时候,根据模块化开发,样式要写到common.css里面

常用模块类名命名

公共部分 – header 头部制作

快捷导航 shortcut 制作(★★)

布局思路
  • 通栏的盒子命名为 shortcut ,是快捷导航的意思。 注意这里的行高,可以继承给里面的子盒子
  • 里面包含版心的盒子
  • 版心盒子里面包含 1 号左侧盒子左浮动
    • 1 号盒子 里面包含一个ulul包裹li,第一个li里面包裹文字就行,因为不能点击,第二个li包含两个a标签
    • 里面的内容是水平排列,所以需要给li设置浮动
    • 文字要垂直居中,我们可以给 shortcut设置行高,因为行高可以继承,里面的孩子就不需要设置了
  • 版心盒子里面包含 2 号右侧盒子右浮动
    • 2 号盒子 里面包含一个ulul包裹li,中间的|可以用样式去设置,也可以用字符 |
    • 里面内容水平排列,给li设置浮动
    • 找到里面所有偶数的 li 设置样式(偶数的 li 显示是一个 | 竖线,所以需要单独选择出来设置样式,利用nth-child就可以实现)
  • 需要用到字体图标
    • 利用伪元素的方式来实现字体图标,给需要添加的标签设置类名为 : arrow-icon
    • 先要引入字体图片的资源
    • 在样式里面利用 font-face 来进行声明
    • 在伪元素的 content属性设置 图标的编码
    • 给伪元素设置font-family属性
结构示例代码
<!-- 快捷导航模块 start -->
<section class="shortcut">
    <div class="w">
        <div class="fl">
            <ul>
                <li>品优购欢迎您!&nbsp;</li>
                <li>
                    <a href="#">请登录</a> &nbsp; <a href="#" class="style_red">免费注册</a>
                </li>
            </ul>
        </div>
        <div class="fr">
            <ul>
                <li>我的订单</li>
                <li></li>
                <li class="arrow-icon">我的品优购</li>
                <li></li>
                <li>品优购会员</li>
                <li></li>
                <li>企业采购</li>
                <li></li>
                <li class="arrow-icon">关注品优购</li>
                <li></li>
                <li class="arrow-icon">客户服务</li>
                <li></li>
                <li class="arrow-icon">网站导航</li>
            </ul>
        </div>
    </div>
</section>
样式示例代码
/* 声明字体图标 这里一定要注意路径的变化 */
@font-face { 
        
  font-family: 'icomoon';
  src:  url('../fonts/icomoon.eot?tomleg');
  src:  url('../fonts/icomoon.eot?tomleg#iefix') format('embedded-opentype'),
    url('../fonts/icomoon.ttf?tomleg') format('truetype'),
    url('../fonts/icomoon.woff?tomleg') format('woff'),
    url('../fonts/icomoon.svg?tomleg#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
/* 快捷导航模块 */
.shortcut { 
        
    height: 31px;
    line-height: 31px;
    background-color: #f1f1f1;
}
.shortcut ul li { 
        
    float: left;
}
/* 选择所有的偶数的小li */
.shortcut .fr ul li:nth-child(even) { 
        
    width: 1px;
    height: 12px;
    background-color: #666;
    margin: 9px 15px 0;
}
.arrow-icon::after { 
        
    content: '\e91e';
    font-family: 'icomoon';
    margin-left: 6px;
}

header头部模块搭建(★★★)

  • header 盒子必须要有高度

  • 1 号盒子是 logo 标志定位,在正常开发过程中,

    • logo 里面首先放一个 h1 标签,目的是为了提权,告诉搜索引擎,这个地方很重要
    • h1 里面再放一个链接,可以返回首页的,把 logo 的背景图片给链接即可
    • 为了搜索引擎收录我们,我们链接里面要放文字(网站名称),但是文字不要显示出来
      • 方法1:text-indent 移到盒子外面(text-indent: -9999px) ,然后 overflow:hidden ,淘宝的做法
      • 方法2:直接给 font-size: 0; 就看不到文字了,京东的做法
    • 最后给链接一个 title 属性,这样鼠标放到 logo 上就可以看到提示文字了

    <!-- logo模块 -->
    <div class="logo">
        <h1>
            <a href="index.html" title="品优购商城">品优购商城</a>
        </h1>
    </div>
    

    /* header 头部制作 */
    .header { 
              
        position: relative;
        height: 105px;
     
    }
    .logo { 
              
        position: absolute;
        top: 25px;
        width: 171px;
        height: 61px;
        
    }
    .logo a { 
              
        display: block;
        width: 171px;
        height: 61px;
        background: url(../images/logo.png) no-repeat;
        /* font-size: 0;京东的做法*/
        /* 淘宝的做法让文字隐藏 */
        text-indent: -9999px;
        overflow: hidden;
    }
    
  • 2 号盒子是 search 搜索模块定位

    • search盒子利用定位的方式放在对应的位置
    • search盒子设置绝对定位,header盒子设置相对定位
    • search盒子里面包含两个子元素,一个是输入框,一个是按钮,分别跟定固定的宽高(搜索框 宽度:454px;按钮宽度:80px)
    • 输入框和按钮本来就是行内块元素,在一行显示,但是中间会有间隙,所以我们可以让让这两个元素浮动起来

    <!-- search搜索模块 -->
    <div class="search">
        <input type="search" name="" id="" placeholder="语言开发">
        <button>搜索</button>
    </div>
    

    .search { 
              
        position: absolute;
        left: 346px;
        top: 25px;
        width: 538px;
        height: 36px;
        border: 2px solid #b1191a;
    }
    .search input { 
              
        float: left;
        width: 454px;
        height: 32px;
        padding-left: 10px;
    }
    .search button { 
              
        float: left;
        width: 80px;
        height: 32px;
        background-color: #b1191a;
        font-size: 16px;
        color: #fff;
    }
    
  • 3 号盒子是 hotwords 热词模块定位

    • 热词模块怎么简单怎么来,直接在里面放a标签即可
    • 给里面所有的a标签设置 左右10px的外边距
    • 给第一个a标签设置文字变红色(#c81623)

    <!-- hotwords模块制作 -->
    <div class="hotwords">
        <a href="#" class="style_red">优惠购首发</a>
        <a href="#">亿元优惠</a>
        <a href="#">9.9元团购</a>
        <a href="#">美满99减30</a>
        <a href="#">办公用品</a>
        <a href="#">电脑</a>
        <a href="#">通信</a>
    </div>
    

    .hotwords { 
              
        position: absolute;
        top: 66px;
        left: 346px;
    }
    .hotwords a { 
              
        margin: 0 10px;
    }
    
  • 4 号盒子是 shopcar 购物车模块

    • shopcar里面添加一个before伪元素和after伪元素,分别放置 购物车的图标和 右箭头

    • count 统计部分用绝对定位做

    • count 统计部分不要给宽度,因为可能买的件数比较多,让件数撑开就好了,给一个高度

    • 一定注意左下角不是圆角,其余三个是圆角 写法: border-radius: 7px 7px 7px 0;

    <!-- 购物车模块 -->
    <div class="shopcar">
        我的购物车
        <i class="count">8</i>
    </div>
    

    .shopcar { 
              
        position: absolute;
        right: 60px;
        top: 25px;
        width: 140px;
        height: 35px;
        line-height: 35px;
        text-align: center;
        border: 1px solid #dfdfdf;
        background-color: #f7f7f7;
    }
    .shopcar::before { 
              
        content: '\e93a';
        font-family: 'icomoon';
        margin-right: 5px;
        color: #b1191a;
    }
    .shopcar::after { 
              
        content: '\e920';
        font-family: 'icomoon';
        margin-left: 10px;
    }
    .count { 
              
        position: absolute;
        top: -5px;
        left: 105px;
        height: 14px;
        line-height: 14px;
        color: #fff;
        background-color: #e60012;
        padding: 0 5px;
        border-radius: 7px 7px 7px 0;
    }
    

nav导航模块制作(★★★)

锐单商城 - 一站式电子元器件采购平台