web技术——手撕CSS品优购项目
目录
这里是我的gitee仓库,我所写的一切资源都可以在里面找到,也算是保姆级了:我的gitee仓库
这里是我的gitee仓库,我所写的一切资源都可以在里面找到,也算是保姆级了:我的gitee仓库
如需还有别的需要,可以自取:
1. 品优购项目规划
1.2 品优购项目整体介绍
1.
项目名称
:
品优购
2.
项目描述:品优购是一个电商网站,我们要完成 PC 端首页、列表页、注册页面的制作
1.3 品优购项目的学习目的
1. 电商类网站比较综合,里面需要大量的布局技术,包括布局方式、常见效果以及周边技术。
2. 品优购项目能复习、总结、提高基础班所学布局技术。
3. 写完品优购项目,能对实际开发中
制作 PC 端页面流程
有一个整体的感知。
4. 为后期学习移动端项目做铺垫。
1.4 开发工具以及技术栈
1. 开发工具
VScode 、Photoshop(fw)、主流浏览器(以Chrome浏览器为主)
2. 技术栈
1.
利用 HTML5 + CSS3 手动布局,可以大量使用 H5 新增标签和样式
2.
采取结构与样式相分离,模块化开发
3.
良好的代码规范有利于团队更好的开发协作,提高代码质量,因此品优购项目里面,请同学们遵循以下代码规范。(详情见素材文件夹
--- 品优购代码规范.md
)
总结:
1. 品优购项目整体介绍 (制作首页、列表页、注册页三个页面)
2. 品优购项目学习目的 (里面包含技术较多,能极大锻炼我们布局技术)
3. 开发工具以及技术栈 (切图用ps, 代码用Vscode,测试用chrome, 大量使HTML5+CSS3)
1.5 品优购项目搭建工作
1. 需要创建如下文件夹:
css初始化:
/* 把我们所有标签的内外边距清零 */
* {
margin: 0;
padding: 0;
/* CSS3盒子模型 */
box-sizing: border-box;
}
/* em 和 i 斜体的文字不倾斜 */
em,
i {
font-style: normal
}
/* 去掉li 的小圆点 */
li {
list-style: none
}
img {
/* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
border: 0;
/* 取消图片底侧有空白缝隙的问题 */
vertical-align: middle
}
button {
/* 当我们鼠标经过button 按钮的时候,鼠标变成小手 */
cursor: pointer
}
a {
color: #666;
text-decoration: none
}
a:hover {
color: #c81623
}
button,
input {
/* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */
font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}
body {
/* CSS3 抗锯齿形 让文字显示的更加清晰 */
-webkit-font-smoothing: antialiased;
background-color: #fff;
font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
color: #666
}
.hide,
.none {
display: none
}
/* 清除浮动 */
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: ".";
height: 0
}
.clearfix {
zoom: 1
}
名称 | 说明 |
项目文件夹 | shoping |
样式类图片文件夹 | images |
样式文件夹 | css |
产品类图片文件夹 | upload |
字体类文件夹 | fonts |
脚本文件夹 | js |
2. 需要创建如下文件:
名称 | 说明 |
首页 | index.html |
CSS初始化样式文件 | base.css |
CSS公共样式文件 | common.css |
有些网站初始化的不太提倡 * { 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}
3. 模块化开发
所谓的模块化:将一个项目按照功能划分, 一个功能一个模块,互不影响
模块化开发具有重复使用、更换方便等优点
1.代码也如此,有些样式和结构在很多页面都会出现,比如页面头部和底部,大部分页面都有。此时,可以把这些结构和样式单独作为一个模块,然后重复使用
2. 有些样式和结构在很多页面都会出现,比如页面头部和底部,大部分页面都有。此时,可以把这些结构和样式单独作为一个模块,然后重复使用
3.
这里最典型的应用就是
common.css 公共样式
。写好一个样式,其余的页面用到这些相同的样式
4.
模块化开发具有重复使用、修改方便等优点
common.css
公共样式里面包含
版心宽度
、
清除浮动
、
页面文字颜色
等公共样式。
1.6 网站 favicon 图标
favicon.ico
一般用于作为缩略的网站标志,它显示在浏览器的地址栏或者标签上。
目前主要的浏览器都支持
favicon.ico
图标。
一、制作favicon图标
1. 把品优购图标切成 png 图片。
2. 把 png 图片转换为 ico 图标,这需要借助于第三方转换网站,例如
比特虫:http://www.bitbug.net/
二、favicon图标放到网站根目录下
三、 HTML页面引入favicon图标
1. 在html 页面里面的 <head> </head>元素之间引入代码
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
1.7 网站TDK三大标签SEO优化
SEO(Search Engine Optimization)
汉译为
搜索引擎优化
,是一种利用搜索引擎的规则提高网站在有关搜索引擎内自然排名的方式。
SEO 的目的是
对网站进行深度的优化
,从而帮助网站获取免费的流量,进而在搜索引擎上提升网站的排名,提高网站的知名度。
页面必须有三个标签用来符合 SEO 优化。
tiltle description keyword
1. title 网站标题
title 具有不可替代性,是我们内页的第一个重要标签,是搜索引擎了解网页的入口和对网页主题归属的最佳判断点。
建议:
网站名(产品名)- 网站的介绍
(尽量不要超过30个汉字)
例如:
1.
京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
2.
小米商城 - 小米5s、红米Note 4、小米MIX、小米笔记本官方网站
2. description 网站说明
简要说明我们网站主要是做什么的。
我们提倡,description 作为网站的总体业务和主题概括,多采用“我们是…”、“我们提供…”、“×××网作为…”、“电话:010…”之类语句。
例如:
<meta name="description" content="京东JD.COM-专业的综合网上购物商城,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等数万个品牌优质商品.便捷、诚信的服务,为您提供愉悦的网上购物体验!" />
3. keywords 关键字
keywords 是页面关键词,是搜索引擎的关注点之一。
keywords 最好限制为 6~8 个关键词,关键词之间用英文逗号隔开,采用
关键词1,关键词2
的形式。
例如:
<meta name= " keywords" content="网上购物,网上商城,手机,笔记本,电脑,MP3,CD,VCD,DV,相机,数码,配件,手表,存储卡,京东" />
对于我们前端人员来说,我们只需要准备好这三个标签,具体里面的内容,有专门的 SEO 人员准备。
2. 品优购首页制作
网站的首页一般都是使用 index 命名,比如 index.html 或者 index.php 。
我们开始制作首页的头部和底部的时候,根据模块化开发,样式要写到common.css里面
2.1 常用模块类名命名
以下是我们约定的命名模块,同学们可以直接使用以下类名即可
名称 | 说明 |
快速导航栏 | shortcut |
头部 | header |
标志 | logo |
购物车 | shopcar |
搜索 | search |
热点词 | hotwords |
导航 | nav |
导航左侧 | dropdown 包含 .dd .dt |
导航右侧 | navitems |
页面底部 | footer |
页面底部服务模块 | mod_service |
页面底部帮助模块 | mod_help |
页面底部版权模块 | mod_copyright |
2.2 快捷导航 shortcut 制作
左浮盒子fl:
右浮盒子fr:
字体声明:要改变一下路径
'../fonts/icomoon.eot?tomleg' 跑到上一个路径取寻找
/* 声明字体图标 这里一定要注意路径的变化 */
@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;
}
<!-- 快捷导航模块 -->:
<!-- 快捷导航模块 -->
<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>
<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>
1. 通栏的盒子命名为 shortcut ,是快捷导航的意思。 注意这里的行高,可以继承给里面的子盒子 2. 里面包含版心的盒子
3. 版心盒子里面包含 1 号左侧盒子左浮动
4. 版心盒子里面包含 2 号右侧盒子右浮动
5. 需要用到字体图标
2.3 header 制作
制作一个头部的大盒子,进行居中,在里面创建4个小盒子,依次排放在规定的位置
logo图标:
搜索框:
热词:
我的购物车模块:
<!-- header头部模板搭建 start-->
<header class="header w">
<!-- logo模块 -->
<div class="logo">
<h1>
<a href="index.html" title="品优购商城">品优购商城</a>
</h1>
</div>
<!-- search搜索模块 -->
<div class="search">
<input type="search" placeholder="语言开发">
<button>搜索</button>
</div>
<!-- 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>
<!-- 购物车模块 -->
<div class="shopcar">
我的购物车
<i class="count">8</i>
</div>
</header>
<!-- header头部模板搭建 end-->
1. header 盒子必须要有高度2. 1 号盒子是 logo 标志定位3. 2 号盒子是 search 搜索模块定位4. 3 号盒子是 hotwords 热词模块定位5. 4 号盒子是 shopcar 购物车模块
1) count 统计部分用绝对定位做2) count 统计部分不要给宽度,因为可能买的件数比较多,让件数撑开就好了,给一个高度3) 一定注意左下角不是圆角,其余三个是圆角 写法: border-radius: 7px 7px 7px 0;
LOGO SEO 优化
1. logo
里面首先放一个
h1
标签,目的是为了提权,告诉搜索引擎,这个地方很重要。
2. h1 里面再放一个
链接
,可以返回首页的,把 logo 的背景图片给链接即可。
3. 为了搜索引擎收录我们,我们链接里面要放
文字(网站名称),
但是文字不要显示出来。
1) 方法1:
text-indent
移到盒子外面(
text-indent: -9999px
) ,然后
overflow:hidden
,淘宝的做法。
2) 方法2:直接给
font-size: 0;
就看不到文字了,京东的做法。
4. 最后给链接一个
title
属性,这样鼠标放到 logo 上就可以看到提示文字了。
2.4 nav 导航制作
1.
nav 盒子通栏有高度,而且有个下边框
2.
1 号盒子左侧浮动,dropdown
3.
2 号盒子左侧浮动,navitems 导航栏组
4.
1号盒子有讲究,根据相关性 里面包含 .dt 和 .dd 两个盒子
2.5 footer 底部制作
1. footer 页面底部盒子通栏给一个高度和灰色的背景2. footer 里面有一个大的版心3. 版心里面包含 1 号盒子,mod_service 是服务模块,mod 是模块的意思4. 版心里面包含 2 号盒子,mod_help 是帮助模块5. 版心里面包含 3 号盒子,mod_copyright 是版权模块
2.6 main 主体模块制作
1. main 盒子宽度为 980 像素,位置距离左边 220px (margin-left ) ,给高度就不用清除浮动2. main 里面包含左侧盒子,左浮动, focus 焦点图模块3. main 里面包含右侧盒子,右浮动, newsflash 新闻快报模块
中间的focus盒子的大小和位置:
newsflash 新闻快报模块
1. 1 号盒子为 news 新闻模块 高度为 165px2. 2 号盒子为 lifeservice 生活服务模块 高度为 209px3. 3 号盒子为 bargain 特价商品
news 新闻模块
1.
注意:这里我们分为上下两个模块,但是两个模块都用 div
2.
1 号盒子
news-hd
新闻头部模块,给一个高度和下边框
3. 2 号盒子
news-bd
新闻主题部分,里面包含 ul 和 li 还有链接
2.7 推荐模块制作
1. 大盒子 recom 推荐模块 recommend2. 里面包含 2 个盒子, 浮动即可3. 1 号盒子 recom_hd4. 2 号盒子 recom_bd ,注意里面的小竖线
2.7 楼层区 floor 制作
注意这个 floor ,不要给高度,内容有多少,算多少
第一楼是家用电器模块: 里面包含两个盒子
1. 1 号盒子 box_hd,给一个高度,有个下边框,里面分为左右 2 个盒子2. 2 号盒子 box_bd,不要给高度
1. 品优购列表页制作
1.1 品优购列表页制作准备工作
1.
列表页面是新的页面,我们需要新建页面文件
list.html
。
2.
因为列表页的
头部
和
底部
基本一致,所以我们需要把首页中的头部和底部的结构复制过来。
3.
头部和底部的样式也需要,因此
list.html
中还需要引入
common.css
。
4.
需要新的
list.css
样式文件,这是列表页专门的样式文件。
1.2 列表页header 和nav 修改
1. 秒杀盒子 sk ( second kill ) 定位即可2. 1 号盒子左侧浮动 sk_list 里面包含 ul 和 li3. 2 号盒子左侧浮动 sk_con 里面包含 ul 和 li
1.3 列表页主体sk _container
1. 1 号盒子 sk _container 给宽度 1200 ,不要给高度2. 2 号盒子 sk_hd ,插入图片即可3. 3 号盒子 sk_bd ,里面包含很多的 ul 和 li
2. 品优购注册页制作
2.1 注册页类名命名
注册页面:
register.html
注意:注册页面比较隐私,为了保护用户信息,我们不需要对当前页面做
SEO
优化。
3. Web 服务器
3.1 什么是Web服务器
我们写的品优购网站,目前是放到自己电脑上的,只能自己访问浏览。
如果想要很多人访问我们的网站,可以把品优购放到服务器上,这样就可以多人访问我们的品优购网站了。
服务器
(我们也会称之为主机)是提供计算服务的设备,
它也是一台计算机
。在网络环境下,根据服务器提的服务类型不同,服务器又分为文件服务器、数据库服务器、应用程序服务器、
Web
服务器
等。
Web
服务器一般指网站服务器
,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等
Web
客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
以下服务器我们主要指的是
Web
服务器。
根据服务器在网络中所在的位置不同,又可分为
本地服务器
和
远程服务器
。
3.2 本地服务器
我们可以把自己的电脑设置为本地服务器,这样同一个局域网内的同学就可以访问你的品优购网站了。就业班学ajax
的时候,再进行讲解。
3.3 远程服务器
本地服务器主要在局域网中访问,如果想要在互联网中访问,可以把品优购网站上传到远程服务器。
远程服务器
是通常是别的公司为我们提供的一台电脑(主机),我们只要把网站项目上传到这台电脑上,任何人都可以利用
域名
访问我们的网站了。
比如域名:
www.mi.com
可以访问小米网站
总结:
1.
服务器就是一台电脑。因为我们主要是做网站,所以我们主要使用
web
服务器
2.
服务器可以分为本地服务器和远程服务器
3.
远程服务器是别的公司为我们提供了一台计算机。
4.
我们可以把网站上传到远程服务器里面,别人就可以通过域名访问我们的网站了
3.4 将自己的网站上传到远程服务器
注意:一般稳定的服务器都是需要收费的。比如:阿里云
这里给大家推荐一个免费的远程服务器(免费空间)
http://free.3v.do/
1. 去免费空间网站注册账号。2. 记录下主机名、用户名、密码、域名。3. 利用 cutftp 软件上传网站到远程服务器。4. 在浏览器中输入域名,即可访问我们的品优购网站了。
总结不易~本章节对我自己的收获很大,希望对你也是~
上一篇: HTML+CSS+J
下一篇: html+css+j