• HTML5 和 CSS3 的新特性--品优购项目开发


    品优购项目规划

    网站制作流程

    现阶段,我们主要做前台页面设计

    网页美工会制作原型图和psd效果图

     品优购项目整体介绍

    项目名称:品优购

    项目描述:品优购是一个电商网站,我们要完成 PC 端首页、列表页、注册页面的制作

    开发工具以及技术栈

    1. 开发工具 VScode 、Photoshop(fw)、主流浏览器(以Chrome浏览器为主)

    2. 技术栈

    利用 HTML5 + CSS3 手动布局,可以大量使用 H5 新增标签和样式

    采取结构与样式相分离,模块化开发

    良好的代码规范有利于团队更好的开发协作,提高代码质量

    代码规范要求

    1. # 代码规范
    2. ## 1. 概述
    3. 欢迎使用品优购代码规范, 这个是我借鉴京东前端代码规范,组织的品优购内部规范。旨在增强团队开发协作、提高代码质量和打造开发基石的编码规范,
    4. 以下规范是团队基本约定的内容,必须严格遵循。
    5. #### HTML规范
    6. 基于 [W3C](http://www.w3.org/)、[苹果开发者](https://developer.apple.com/) 等官方文档,并结合团队业务和开发过程中总结的规范约定,让页面HTML代码更具语义性。
    7. #### 图片规范
    8. 了解各种图片格式特性,根据特性制定图片规范,包括但不限于图片的质量约定、图片引入方式、图片合并处理等,旨在从图片层面优化页面性能。
    9. #### CSS规范
    10. 统一规范团队 CSS 代码书写风格和使用 CSS 预编译语言语法风格,提供常用媒体查询语句和浏览器私有属性引用,并从业务层面统一规范常用模块的引用。
    11. #### 命名规范
    12. 从 `目录`、`图片`、`HTML/CSS文件`、`ClassName` 的命名等层面约定规范团队的命名习惯,增强团队代码的可读性。
    13. ## 2. HTML 规范
    14. ### DOCTYPE 声明
    15. HTML文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:
    16. ~~~html
    17. <!DOCTYPE html>
    18. ~~~
    19. **HTML5标准模版**
    20. ```html
    21. <!DOCTYPE html>
    22. <html lang="zh-CN">
    23. <head>
    24. <meta charset="UTF-8">
    25. <title>HTML5标准模版</title>
    26. </head>
    27. <body>
    28. </body>
    29. </html>
    30. ```
    31. ### 页面语言lang
    32. 推荐使用属性值 `cmn-Hans-CN`(简体, 中国大陆),但是考虑浏览器和操作系统的兼容性,目前仍然使用 `zh-CN` 属性值
    33. ```
    34. <html lang="zh-CN">
    35. ```
    36. 更多地区语言参考:
    37. ```
    38. zh-SG 中文 (简体, 新加坡) 对应 cmn-Hans-SG 普通话 (简体, 新加坡)
    39. zh-HK 中文 (繁体, 香港) 对应 cmn-Hant-HK 普通话 (繁体, 香港)
    40. zh-MO 中文 (繁体, 澳门) 对应 cmn-Hant-MO 普通话 (繁体, 澳门)
    41. zh-TW 中文 (繁体, 台湾) 对应 cmn-Hant-TW 普通话 (繁体, 台湾)
    42. ```
    43. ### charset 字符集合
    44. 一般情况下统一使用 “UTF-8” 编码
    45. ```
    46. <meta charset="UTF-8">
    47. ```
    48. 由于历史原因,有些业务可能会使用 “GBK” 编码
    49. ```
    50. <meta charset="GBK">
    51. ```
    52. 请尽量统一写成标准的 “UTF-8”,不要写成 “utf-8” 或 “utf8” 或 “UTF8”。根据 [IETF对UTF-8的定义](http://www.ietf.org/rfc/rfc3629),其编码标准的写法是 “UTF-8”;而 UTF8 或 utf8 的写法只是出现在某些编程系统中,如 .NET framework 的类 System.Text.Encoding 中的一个属性名就叫 UTF8
    53. ### 书写风格
    54. #### HTML代码大小写
    55. HTML标签名、类名、标签属性和大部分属性值统一用小写
    56. *推荐:*
    57. ```
    58. <div class="demo"></div>
    59. ```
    60. *不推荐:*
    61. ```
    62. <div class="DEMO"></div>
    63. <DIV CLASS="DEMO"></DIV>
    64. ```
    65. ### 类型属性
    66. 不需要为 CSS、JS 指定类型属性,HTML5 中默认已包含
    67. *推荐:*
    68. ```
    69. <link rel="stylesheet" href="" >
    70. <script src=""></script>
    71. ```
    72. *不推荐:*
    73. ```
    74. <link rel="stylesheet" type="text/css" href="" >
    75. <script type="text/javascript" src="" ></script>
    76. ```
    77. ### 元素属性
    78. - 元素属性值使用双引号语法
    79. - 元素属性值可以写上的都写上
    80. *推荐:*
    81. ```
    82. <input type="text">
    83. <input type="radio" name="name" checked="checked" >
    84. ```
    85. *不推荐:*
    86. ```
    87. <input type=text>
    88. <input type='text'>
    89. <input type="radio" name="name" checked >
    90. ```
    91. ### 特殊字符引用
    92. 文本可以和字符引用混合出现。这种方法可以用来转义在文本中不能合法出现的字符。
    93. 在 HTML 中不能使用小于号 “<” 和大于号 “>”特殊字符,浏览器会将它们作为标签解析,若要正确显示,在 HTML 源代码中使用字符实体
    94. *推荐:*
    95. ```
    96. <a href="#">more&gt;&gt;</a>
    97. ```
    98. *不推荐:*
    99. ```
    100. <a href="#">more>>
    101. ```
    102. ### 代码缩进
    103. 统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)
    104. ```
    105. <div class="jdc">
    106. <a href="#"></a>
    107. </div>
    108. ```
    109. ### 代码嵌套
    110. 元素嵌套规范,每个块状元素独立一行,内联元素可选
    111. *推荐:*
    112. ```
    113. <div>
    114. <h1></h1>
    115. <p></p>
    116. </div>
    117. <p><span></span><span></span></p>
    118. ```
    119. *不推荐:*
    120. ```
    121. <div>
    122. <h1></h1><p></p>
    123. </div>
    124. <p>
    125. <span></span>
    126. <span></span>
    127. </p>
    128. ```
    129. 段落元素与标题元素只能嵌套内联元素
    130. *推荐:*
    131. ```
    132. <h1><span></span></h1>
    133. <p><span></span><span></span></p>
    134. ```
    135. *不推荐:*
    136. ```
    137. <h1><div></div></h1>
    138. <p><div></div><div></div></p>
    139. ```
    140. ## 3. 图片规范
    141. ### 内容图
    142. 内容图多以商品图等照片类图片形式存在,颜色较为丰富,文件体积较大
    143. - 优先考虑 JPEG 格式,条件允许的话优先考虑 WebP 格式
    144. - 尽量不使用PNG格式,PNG8 色位太低,PNG24 压缩率低,文件体积大
    145. - **PC平台单张的图片的大小不应大于 200KB。**
    146. ### 背景图
    147. 背景图多为图标等颜色比较简单、文件体积不大、起修饰作用的图片
    148. - PNG 与 GIF 格式,优先考虑使用 PNG 格式,PNG格式允许更多的颜色并提供更好的压缩率
    149. - 图像颜色比较简单的,如纯色块线条图标,优先考虑使用 PNG8 格式,避免不使用 JPEG 格式
    150. - 图像颜色丰富而且图片文件不太大的(40KB 以下)或有半透明效果的优先考虑 PNG24 格式
    151. - 图像颜色丰富而且文件比较大的(40KB - 200KB)优先考虑 JPEG 格式
    152. - 条件允许的,优先考虑 WebP 代替 PNG 和 JPEG 格式
    153. ## 4. CSS规范
    154. ### 代码格式化
    155. 样式书写一般有两种:一种是紧凑格式 (Compact)
    156. ```
    157. .jdc{ display: block;width: 50px;}
    158. ```
    159. 一种是展开格式(Expanded)
    160. ```
    161. .jdc {
    162. display: block;
    163. width: 50px;
    164. }
    165. ```
    166. **团队约定**
    167. 统一使用展开格式书写样式
    168. ### 代码大小写
    169. 样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写。
    170. ```
    171. /* 推荐 */
    172. .jdc{
    173. display:block;
    174. }
    175. /* 不推荐 */
    176. .JDC{
    177. DISPLAY:BLOCK;
    178. }
    179. ```
    180. ### 选择器
    181. - 尽量少用通用选择器 `*`
    182. - 不使用 ID 选择器
    183. - 不使用无具体语义定义的标签选择器
    184. ```css
    185. /* 推荐 */
    186. .jdc {}
    187. .jdc li {}
    188. .jdc li p{}
    189. /* 不推荐 */
    190. *{}
    191. #jdc {}
    192. .jdc div{}
    193. ```
    194. ### 代码缩进
    195. 统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)
    196. ```
    197. .jdc {
    198. width: 100%;
    199. height: 100%;
    200. }
    201. ```
    202. ### 分号
    203. 每个属性声明末尾都要加分号;
    204. ```
    205. .jdc {
    206. width: 100%;
    207. height: 100%;
    208. }
    209. ```
    210. ### 代码易读性
    211. 左括号与类名之间一个空格,冒号与属性值之间一个空格
    212. *推荐:*
    213. ```
    214. .jdc {
    215. width: 100%;
    216. }
    217. ```
    218. *不推荐:*
    219. ```
    220. .jdc{
    221. width:100%;
    222. }
    223. ```
    224. 逗号分隔的取值,逗号之后一个空格
    225. *推荐:*
    226. ```
    227. .jdc {
    228. box-shadow: 1px 1px 1px #333, 2px 2px 2px #ccc;
    229. }
    230. ```
    231. *不推荐:*
    232. ```
    233. .jdc {
    234. box-shadow: 1px 1px 1px #333,2px 2px 2px #ccc;
    235. }
    236. ```
    237. 为单个css选择器或新申明开启新行
    238. *推荐:*
    239. ```css
    240. .jdc,
    241. .jdc_logo,
    242. .jdc_hd {
    243. color: #ff0;
    244. }
    245. .nav{
    246. color: #fff;
    247. }
    248. ```
    249. *不推荐:*
    250. ```css
    251. .jdc,jdc_logo,.jdc_hd {
    252. color: #ff0;
    253. }.nav{
    254. color: #fff;
    255. }
    256. ```
    257. 颜色值 `rgb()` `rgba()` `hsl()` `hsla()` `rect()` 中不需有空格,且取值不要带有不必要的 0
    258. *推荐:*
    259. ```
    260. .jdc {
    261. color: rgba(255,255,255,.5);
    262. }
    263. ```
    264. *不推荐:*
    265. ```
    266. .jdc {
    267. color: rgba( 255, 255, 255, 0.5 );
    268. }
    269. ```
    270. 属性值十六进制数值能用简写的尽量用简写
    271. *推荐:*
    272. ```
    273. .jdc {
    274. color: #fff;
    275. }
    276. ```
    277. *不推荐:*
    278. ```css
    279. .jdc {
    280. color: #ffffff;
    281. }
    282. ```
    283. 不要为 `0` 指明单位
    284. *推荐:*
    285. ```css
    286. .jdc {
    287. margin: 0 10px;
    288. }
    289. ```
    290. *不推荐:*
    291. ```css
    292. .jdc {
    293. margin: 0px 10px;
    294. }
    295. ```
    296. ### 属性值引号
    297. css属性值需要用到引号时,统一使用单引号
    298. ```css
    299. /* 推荐 */
    300. .jdc {
    301. font-family: 'Hiragino Sans GB';
    302. }
    303. /* 不推荐 */
    304. .jdc {
    305. font-family: "Hiragino Sans GB";
    306. }
    307. ```
    308. ### 属性书写顺序
    309. 建议遵循以下顺序:
    310. 1. 布局定位属性:display / position / float / clear / visibility / overflow(建议 display 第一个写,毕竟关系到模式)
    311. 2. 自身属性:width / height / margin / padding / border / background
    312. 3. 文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word
    313. 4. 其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient …
    314. ```css
    315. .jdc {
    316. display: block;
    317. position: relative;
    318. float: left;
    319. width: 100px;
    320. height: 100px;
    321. margin: 0 10px;
    322. padding: 20px 0;
    323. font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    324. color: #333;
    325. background: rgba(0,0,0,.5);
    326. -webkit-border-radius: 10px;
    327. -moz-border-radius: 10px;
    328. -o-border-radius: 10px;
    329. -ms-border-radius: 10px;
    330. border-radius: 10px;
    331. }
    332. ```
    333. [mozilla官方属性顺序推荐](https://www.mozilla.org/css/base/content.css)
    334. ## 命名规范
    335. 由历史原因及个人习惯引起的 DOM 结构、命名不统一,导致不同成员在维护同一页面时,效率低下,迭代、维护成本极高。
    336. ### 目录命名
    337. * 项目文件夹:shoping
    338. * 样式文件夹:css
    339. * 脚本文件夹:js
    340. * 样式类图片文件夹:img
    341. * 产品类图片文件夹: upload
    342. * 字体类文件夹: fonts
    343. ### ClassName命名
    344. ClassName的命名应该尽量精短、明确,必须以**字母开头命名**,且**全部字母为小写**,单词之间**统一使用下划线** “_” 连接
    345. .nav_top
    346. #### 常用命名推荐
    347. **注意**:ad、banner、gg、guanggao 等有机会和广告挂勾的不建议直接用来做ClassName,因为有些浏览器插件(Chrome的广告拦截插件等)会直接过滤这些类名,因此
    348. ```
    349. <div class="ad"></div>
    350. ```
    351. 这种广告的英文或拼音类名不应该出现
    352. 另外,**敏感不和谐字眼**也不应该出现,如:
    353. ```
    354. <div class="fuck"></div>
    355. <div class="jer"></div>
    356. <div class="sm"></div>
    357. <div class="gcd"></div>
    358. <div class="ass"></div>
    359. <div class="KMT"></div>
    360. ...
    361. ```
    362. | ClassName | 含义 |
    363. | ---------------------- | -------------------- |
    364. | about | 关于 |
    365. | account | 账户 |
    366. | arrow | 箭头图标 |
    367. | article | 文章 |
    368. | aside | 边栏 |
    369. | audio | 音频 |
    370. | avatar | 头像 |
    371. | bg,background | 背景 |
    372. | bar | 栏(工具类) |
    373. | branding | 品牌化 |
    374. | crumb,breadcrumbs | 面包屑 |
    375. | btn,button | 按钮 |
    376. | caption | 标题,说明 |
    377. | category | 分类 |
    378. | chart | 图表 |
    379. | clearfix | 清除浮动 |
    380. | close | 关闭 |
    381. | col,column | 列 |
    382. | comment | 评论 |
    383. | community | 社区 |
    384. | container | 容器 |
    385. | content | 内容 |
    386. | copyright | 版权 |
    387. | current | 当前态,选中态 |
    388. | default | 默认 |
    389. | description | 描述 |
    390. | details | 细节 |
    391. | disabled | 不可用 |
    392. | entry | 文章,博文 |
    393. | error | 错误 |
    394. | even | 偶数,常用于多行列表或表格中 |
    395. | fail | 失败(提示) |
    396. | feature | 专题 |
    397. | fewer | 收起 |
    398. | field | 用于表单的输入区域 |
    399. | figure | 图 |
    400. | filter | 筛选 |
    401. | first | 第一个,常用于列表中 |
    402. | footer | 页脚 |
    403. | forum | 论坛 |
    404. | gallery | 画廊 |
    405. | group | 模块,清除浮动 |
    406. | header | 页头 |
    407. | help | 帮助 |
    408. | hide | 隐藏 |
    409. | hightlight | 高亮 |
    410. | home | 主页 |
    411. | icon | 图标 |
    412. | info,information | 信息 |
    413. | last | 最后一个,常用于列表中 |
    414. | links | 链接 |
    415. | login | 登录 |
    416. | logout | 退出 |
    417. | logo | 标志 |
    418. | main | 主体 |
    419. | menu | 菜单 |
    420. | meta | 作者、更新时间等信息栏,一般位于标题之下 |
    421. | module | 模块 |
    422. | more | 更多(展开) |
    423. | msg,message | 消息 |
    424. | nav,navigation | 导航 |
    425. | next | 下一页 |
    426. | nub | 小块 |
    427. | odd | 奇数,常用于多行列表或表格中 |
    428. | off | 鼠标离开 |
    429. | on | 鼠标移过 |
    430. | output | 输出 |
    431. | pagination | 分页 |
    432. | pop,popup | 弹窗 |
    433. | preview | 预览 |
    434. | previous | 上一页 |
    435. | primary | 主要 |
    436. | progress | 进度条 |
    437. | promotion | 促销 |
    438. | rcommd,recommendations | 推荐 |
    439. | reg,register | 注册 |
    440. | save | 保存 |
    441. | search | 搜索 |
    442. | secondary | 次要 |
    443. | section | 区块 |
    444. | selected | 已选 |
    445. | share | 分享 |
    446. | show | 显示 |
    447. | sidebar | 边栏,侧栏 |
    448. | slide | 幻灯片,图片切换 |
    449. | sort | 排序 |
    450. | sub | 次级的,子级的 |
    451. | submit | 提交 |
    452. | subscribe | 订阅 |
    453. | subtitle | 副标题 |
    454. | success | 成功(提示) |
    455. | summary | 摘要 |
    456. | tab | 标签页 |
    457. | table | 表格 |
    458. | txt,text | 文本 |
    459. | thumbnail | 缩略图 |
    460. | time | 时间 |
    461. | tips | 提示 |
    462. | title | 标题 |
    463. | video | 视频 |
    464. | wrap | 容器,包,一般用于最外层 |
    465. | wrapper | 容器,包,一般用于最外层 |

    1. 需要创建如下文件夹:

    2. 需要创建如下文件:

     有些网站初始化的不太提倡 * { 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. 模块化开发

    所谓的模块化:将一个项目按照功能划分, 一个功能一个模块,互不影响 模块化开发具有重复使用、更换方便等优势

    有些样式和结构在很多页面都会出现,比如页面头部和底部,大部分页面都有。此时,可以把这些结构 和样式单独作为一个模块,然后重复使用

    这里最典型的应用就是 common.css 公共样式。写好一个样式,其余的页面用到这些相同的样式

    模块化开发具有重复使用、修改方便等优点

     common.css 公共样式里面包含版心宽度、清除浮动、页面文字颜色等公共样式。

     网站 favicon 图标

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

     

    一、制作favicon图标

    1. 把品优购图标切成 png 图片。

    2. 把 png 图片转换为 ico 图标,这需要借助于第三方转换网站,例如比特虫:制作ico图标 | 在线ico图标转换工具 方便制作favicon.ico - 比特虫 - Bitbug.net

    二、favicon图标放到网站根目录下

     三、 HTML页面引入favicon图标 

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

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

     网站TDK三大标签SEO优化 

    SEO(Search Engine Optimization)汉译为搜索引擎优化,是一种利用搜索引擎的规则提高网站在有关搜索 引擎内自然排名的方式。

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

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

    1. title 网站标题

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

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

    例如:

    京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!

    小米商城 - 小米5s、红米Note 4、小米MIX、小米笔记本官方网站 

    2. description 网站说明

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

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

    例如:

    keywords 关键字 

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

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

    例如:

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

    1. html>
    2. <html lang="zh-CN">
    3. <head>
    4. <meta charset="utf-8">
    5. <title>品优购商城-正品低价、品质保障、配送及时、轻松购物!title>
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes"/>
    7. <meta name="description"
    8. content="品优购商城-专业的综合网上购物商城,为您提供正品低价的购物选择、优质便捷的服务体验。商品来自全球数十万品牌商家,囊括家电、手机、电脑、服装、居家、母婴、美妆、个护、食品、生鲜等丰富品类,满足各种购物需求。"/>
    9. <meta name="Keywords" content="网上购物,网上商城,家电,手机,电脑,服装,居家,母婴,美妆,个护,食品,生鲜,京东"/>
    10. <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    11. <link rel="stylesheet" href="css/base.css">
    12. <link rel="stylesheet" href="css/common.css">
    13. head>
    14. <body>
    15. 123
    16. body>
    17. html>

    前期准备

  • 相关阅读:
    Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用
    Django ORM
    Llama2-Chinese项目:6-模型评测
    android8.1- Show virtual keyboard 默认打开
    让充电器秒供多个快充口,乐得瑞推出1拖2功率分配快充线方案
    致敬最美抗击疫情的逆行者 DIV布局大学生抗疫感动专题网页设计作业模板 疫情感动人物静态HTML网页模板下载
    动态代理模式
    分支预测机制
    Windows 10 docker 容器添加新端口映射的方法与步骤
    Cpolar+Tipas:在Ubuntu上搭建私人问答网站,为您提供专业的问题解答
  • 原文地址:https://blog.csdn.net/weixin_64612659/article/details/127347289