什么是html?html是超文本标记语言,超文本包含图片,文字,链接,视频,音频等,标记是指标签,所以叫超文本标记语言。

超文本元信息

  元信息标签:所谓元信息,是指描述自身的信息,元信息类标签,就是html用于描述文档自身的一类标签。

  它们通常出现在head标签中,一般不会在页面被显示出来(与此相对,其他标签,如语义类标签,描述的是业务)元信息多数情况下是给浏览器、搜索引擎等机器阅读的,有时候这些信息会在页面之外显示给用户,有时候则不会。

  head:元信息容器

  meta:元信息通用标签(name和http-equiv两种键)

  base:页面的基准url(容易出错,不建议使用,通常也不会用)

  title:文档标题

  meta常用写法:

    <meta charset=”utf-8” />:定义解析文档的格式,建议放第一行

    <meta http-equiv=”content-type”content=”text/html;charset=utf-8” />:同时添加content-type这个http头,并且指定了http编码格式。

    <metaname=”viewport”content=”width=device-width,initial-scale=1,minimum-scale=1,masimum-scale=1,user-scalab=no” />:针对viewport的标准的适配移动端的meta元信息

    description:页面描述,可能被用于搜索引擎或者其他场合

    keywords:页面关键字,对于seo场景非常关键

语义化标签

  错误的使用语义标签,会给机器阅读造成混淆、增加嵌套,给css编写加重负担。

  所以,对于语义标签,我的态度是:“用对”比“不用”好,“不用”比“用错”好。当然了,我觉得有理想的前端工程师还是应该去追求“用对”它们。

  实际上,html这种语言,并不像严谨的编程语言一样,有一条非此即彼的线。

  一些语义的使用其实会带来争议,所以我的建议是:你可以尽量只用自己熟悉的语义标签,并且只在有把握的场景引入语义标签。这样,我们才能保证语义标签不被滥用,造成更多的问题。

 

合理使用标签,语义化结构

  标签合理嵌套

    span、strong、em、p、h1~h6等元素不能包含:div、ul、ol、dl、p

    严禁多div症、多span症、多table症,正确使用标签表现DOM结构,在文档去除css的情况下,任然具有结构和可读性,以下是html标记的使用规范:

    p:文本段落;

    dl:定义列表,可包括标题和内容简介的列表;

    ul:无序列表;

    ol:有序列表;

    h1~h6:文章标题、内容区块标题,根据重要性由大到小区分,h1一个页面只出现一次;

    strong/em:强调文本;

    img:图像,必须加上alt属性,当图像无法显示时,可表示图像信息,背景和按钮使用css处理,不使用img元素;

    table:数据网格,规则的分栏布局,尽可能显性的定宽和定高。

  合理化表单结构

     使用fieldset元素包裹相同类别的字段;

     使用legend元素表示字段类别名称;

     使用label表示字段文本,添加必要的for属性,以在点击字段文本时,文本框能获得焦点;

    文本框不使用size属性定义宽度,而使用css的width属性;

     添加maxlength属性限制输入字符的长度。

替换型元素和链接型元素

  链接型元素:使用href引用外部文件的标签是链接型元素(如link标签引入css)。

  替换型元素:使用src引入外部文件的标签是替换型元素,如img;picture;video;audio;iframe。

  script标签:该标签可以引入js,也可以直接写js,所以script是链接型标签,也是替换型标签。

标签的属性

  标签的属性通常以键值对形式出现,属性只能出现在开始标签或自闭和标签中。

  属性名字全部小写,属性值必须使用双或单引号包裹,如果属性值和属性名完全一样,直接写属性名即可

命名规则

  良好统一的命名规范,便于多人开发维护时代码统一,减少项目沟通和交接的成本,增加代码的语义化。

  id

    页面主体结构可以使用id,其余时候id尽量留给js和后台使用。
  class

    样式方面尽量只使用class来控制。

    类名全部用小写,首字符必须是字母,禁止数字或其他特殊字符。由以字母开头的小写字母(a-z)、数字(0-9)、中划线 (-)组成。

    可以是单个单词,也可以是组合单词,要求能够描述清楚模块和元素的含义,使其具有语义化。

    避免使用 123456…,red,blue,left,right之类的(如颜色、字号大小等)矢量命名,如class="left-news"、class="2" ,以避免当状态改变时名称失去意义。

    尽量用单个单词简单描述class名称。双单词或多单词组合方式:形容词-名词、命名空间-名次、命名空间-形容词-名词。例如:news-list、mod-feeds、mod-my-feeds、cell-title

  name:

 

命名空间

  在编码思想上,我们可以将页面拆分成不同的层级(布局、模块、元件)。

  什么是CSS命名空间?通过统一的命名规范定义命名的范围,成为CSS class & id命名空间。

  布局: 以语义化的单词layout作为命名空间,例如主栏布局命名 layout-main,只改变layout-命名空间后面的命名,layout始终保留。布局的命名空间为layout-xxx。

  模块:页面是由一个或多个模块组成,模块的英文单词是module,规范简写成mod,如新闻模块mod-news,照片展示模块mod-photo-show。模块的命名空间为mod-xxx 。

  元件:元件是属于模块内部的,也可以说模块是由元件和它内部的自有元素组成。如用户照片信息元件cell-user-photo。元件的命名空间为cell-xxx 。

 

css通用命名

  (1)页面框架命名,一般具有唯一性,推荐用ID命名

ID名称

命名

ID名称

命名

头部

header

主体

main

脚部

footer

容器

wrapper

侧栏

side_bar

栏目

column

布局

layout

 

 

 

  (2)模块结构命名

CLASS名称

命名

CLASS名称

命名

模块(如:新闻模块)

mod (mod_news)

标题栏

title

内容

content

次级内容

sub_content

 

  (3)导航结构命名

CLASS名称

命名

CLASS名称

命名

导航

nav

主导航

main_nav

子导航

sub_nav

顶部导航

top_nav

菜单

menu

子菜单

sub_menu

 

  (4)一般元素命名

 

CLASS名称

命名

CLASS名称

命名

二级

sub

面包屑

breadcrumb

标志

logo

广告

Bner

(禁用banner或ad)

登陆

login

注册

regsiter/reg

搜索

search

加入

join

状态

status

按钮

btn

滚动

scroll

标签页

tab

文章列表

list

短消息

msg/message

当前的

current

提示小技巧

tips

图标

icon

注释

note

指南

guide

服务

service

热点

hot

新闻

news

下载

download

投票

vote

合作伙伴

partner

友情链接

link

版权

copyright

演示

demo

下拉框

select

摘要

summary

翻页

pages

主题风格

themes

设置

set

成功

suc

按钮

btn

文本

txt

颜色

color/c

背景

bg

边框

border/bor

居中

center

top/t

bottom/b

left/l

right/r

添加

add

删除

del

间隔

sp

段落

p

弹出层

pop

公共

global/gb

操作

op

密码

pwd

透明

tran

信息

info

重点

hit

预览

pvw

单行输入框

input

首页

index

日志

blog

相册

photo

留言板

guestbook

用户

user

确认

confirm

取消

cancel

报错

error

 轮播(走马灯)

 carousel

插件(项目外和js.css等平级的文件夹)

plugIn

 工具  tool

 图片命名

  背景图片:bg001,bg002,bg003···

  一般图片:img001,img002,img003···

  按钮图片:btn001,btn002,btn003···

  特别图片:如banner,logo按照具体情况命名

全局基础样式

  文本颜色:text-c1,text-c2,text-c3···

  背景颜色:bg-c1,bg-c2,bg-c3···

  边框颜色:border-c1,border-c2,border-c3···

posted on 2019-09-25 08:53  lanxv  阅读(420)  评论(0编辑  收藏  举报