锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2023-10-05 21:37:02 c2h4变送器

优购项目-上

目标

优购项目规划

网站制作流程

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

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

品优购项目介绍

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

主页

列表页

注册页

优购项目的学习目的

  • 电子商务网站比较全面,需要大量的布局技术,包括布局模式、常见效果和周边技术
  • 可以复习、总结、完善基础班所学的布局技术
  • 完成产品优购项目,可在实际开发中生产 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}  

项目模块化开发

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

代码也如此,许多页面都会出现一些样式和结构,例如,大多数页面都有页面的头部和底部(如下图所示)。此时,这些结构和样式可以单独用作模块,然后重复使用

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

网站 favicon 图标(★★★)

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

制作favicon图标

使用favicon图标

favicon将图标放在网站根目录下

HTML页面引入favicon图标

在html 页面里面的 在元素之间引入代码

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

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

SEO是什么

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

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

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

TDK是什么

T – Title(网站标题)

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

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

例如:

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

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

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

例如:

K – keywords (关键字)

keywords 是页面关键词,是搜索引擎的关注点之一。

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

例如:

相机,数码,配件,手表,存储卡,京东" />

对于我们前端人员来说,我们只需要准备好这三个标签,具体里面的内容,有专门的 SEO 人员准备

示例代码

<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属性
结构示例代码

<section class="shortcut">
    <div class="w">
        <div class="fl">
            <ul>
                <li>品优购欢迎您! li>
                <li>
                    <a href="#">请登录a>   <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的布局其实是有讲究的,需要进行 logoSEO的优化 (★★★)

    • logo 里面首先放一个 h1 标签,目的是为了提权,告诉搜索引擎,这个地方很重要
    • h1 里面再放一个链接,可以返回首页的,把 logo 的背景图片给链接即可
    • 为了搜索引擎收录我们,我们链接里面要放文字(网站名称),但是文字不要显示出来
      • 方法1:text-indent 移到盒子外面(text-indent: -9999px) ,然后 overflow:hidden ,淘宝的做法
      • 方法2:直接给 font-size: 0; 就看不到文字了,京东的做法
    • 最后给链接一个 title 属性,这样鼠标放到 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)
    • 输入框和按钮本来就是行内块元素,在一行显示,但是中间会有间隙,所以我们可以让让这两个元素浮动起来

    结构代码

    
    <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)

    结构代码

    
    <div class="hotwords">
        <a href="#" class="style_red">优惠购首发a>
        <a href="#">亿元优惠a>
        <a href="#">9.9元团购a>
        <a href="#">美满99减30a>
        <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">8i>
    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导航模块制作(★★★)

相关文章