---------------------------------

一.概况

1.1  WEB 标准

二.实现WEB标准

2.1  XHTML、CSS介绍

2.2  XHTML书写规范

2.2.1 XHTML结构

2.2.2 标签规范

2.3  XHTML常用标签介绍

2.4  CSS书写规范

2.4.1 表命名参考

2.4.2 类/ID命名规范

2.4.3 样式调用

2.4.4 样式简写

2.5  CSS常用属性介绍

2.6 图片规范

2.7 注释规范

2.8 浏览器兼容

概况

1.1 WEB 标准

WEB 标准不是一个标准,而是一系列标准的集合。网页主要由三部分组成:结构、表现和行为。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括 CSS,行为标准主要包括对象模型(如  W3C DOM)、ECMAScript 等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的 ECMAScript 标准。

二、实现WEB标准

2.1  XHTML、CSS介绍

可扩展超文本置标语言(eXtensible HyperText Markup Language,XHTML),是一种置标语言,表现方式与超文本置标语言(HTML)类似,不过语法上更加严格。从继承关系上讲,HTML是一种基于标准通用置标语言(SGML)的应用,是一种非常灵活的置标语言,而XHTML则基于可扩展置标语言(XML),XML是SGML的一个子集。XHTML 1.0在2000年1月26日成为W3C的推荐标准。

级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。

2.2  XHTML书写规范

2.2.1 XHTML结构

文档分为head 和body两个部分。
html文档中在head关标签后面一定会跟着body的开标签。html的开标签下面一定跟着head的开标签,body的关标签下面一定是html的关标签,这中间都是不能插入任何东西的。head和body在一个html中有且仅有一个。

在head里面放置的内容是不会再页面里显示的。在页面中显示的内容放在body里。

如下:
<!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

样式地址、JS地址、样式等

</head>

<body>

浏览器能看到的内容部分

</body>
</html>

2.2.2 标签规范

标签可以分为成对标签,或者是单标签。

成对标签比如 div span ol ul li select option table tr th td dl dt dd em var span等等,而单标签就比较少了 比如 input img br iframe 等。

完整的成对标签如下:<div>这是一个快标签</div> 或者

<ol>

<li>列表项一</li>

<li>列表项二</li>

<li>列表项三</li>

</ol>;
可以看到每一个标签都有开标前和关标签组成,内容放在开和关标签之间。

而单标签的标签应该这么写:

<br/>

<img src="data:images/1.gif" alt="图片描述"/>

<input type="button" value="按钮"/> ;

像这样的单标签,是不可能再嵌套任何内容的。而我们把斜线(/)放在标签的后尖括号前面,表示标签结束。这点跟成对标签有很大区别。

所有标签必须合理嵌套

正确的嵌套

<div>

<span>

<var>1111</var>

</span>

</div>

就像一个一个大盒子套了一个小盒子 又套了一个小盒子,当然还可以继续嵌套,看起来十分对称。

不正确的嵌套

<div>

<span>

<var>1111</var>

</div>

</span>

这里的标签是不对称的。你没法一层一层的拆开盒子,这就是错误的。

2.3  XHTML常用标签介绍

1、div标签:块元素。可以将文档分为不同的部分。可以使用class和id属性进一步控制页面表现。div是css布局中使用最多的元素。

2、p标签:块元素,表示一个文本段落,一般用于换行。

3、标题标签:块元素,用来定义文本中的各种标题。从h1至h6有着严格的层级关系。并且每个XHTML上h1元素有且只能使用一次。其中包括一系列的元素:h1,h2,h3,h4 ,h5,h6,其中每个元素都对应有默认的字体样式其代码如下:

<h1>text</h1>

<h2>text</h2>

<h3>text</h3>

<h4>text</h4>

<h5>text</h5>

<h6>text</h6>

4、ul和li标签:块元素,无序列表,详见:http://www.w3school.com.cn/tags/tag_ul.asp

5、ol和li标签:块元素,有序列表,详见:http://www.w3school.com.cn/tags/tag_ol.asp

6、dl、dt、dd标签:块元素,常用于生成类表格别表,dt、dd位于dl内部。

详见:http://bbs.blueidea.com/thread-3023757-1-1.html

7、strong标签:内联元素,使文本以粗体显示。

8、a标签:内联元素,用于超链接(herf属性)和设置内部文档书签(ID或Name属性)。

9、em标签:内联元素,显示效果为文本斜体。

10、span标签:内联元素,用来区分文本中的一个部分。

11、br标签:使文本换行。

12、img标签:内联元素,用来插入图像文件,当使用img元素时候,其alt属性必须加上,属性内容将在图片不能加载的时候显示。

13、label标签:触发鼠标事件,当鼠标事件作用于该元素时,也作用于相对应的input标签。

14、input标签:根据不同的 type 属性值,可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。用于获取提交的数据。当input标签为单选按钮和复选框时,浏览器的兼容性比较差,需要细心调整。

15、select和option标签:下拉列表,option位于select内部。

16、textarea标签:文本区域,用于输入多行文本文字。

17、table,tr,th,td标签:表格,不推荐使用。

2.4  CSS书写规范

2.4.1 表命名参考

驼峰命名法 例:myName

全局样式:global.css

框架布局:layout.css

字体样式:font.css

链接样式:link.css

打印样式:print.css

2.4.2 类/ID命名规范

Container div #container 容器

Layout #layout 布局

Header or banner div #head, #header 页头部分

Footer div #foot, #footer 页脚部分

Navigation list #nav 主导航

Sub-navigation list #subNav 二级导航

Menu #menu 菜单

Sub Menu #submenu 子菜单

Left or right side columns #sidebar_a, #sidebar_b 左边栏或右边栏

Main div #main 页面主体

Tag #tag 标签

Message #msg #message 提示信息

Tips #tips 小技巧

Vote #vote 投票

Friend Link #friendlink 友情连接

Title #title 标题

Summary #summary 摘要

Search input #searchInput 搜索输入框

Search output #search_output 搜索输出和搜索结果相似

Search #search 搜索

Search bar #searchBar 搜索条

Search results #search_results 搜索结果

Copyright information #copyright 版权信息

brand #branding 商标

branding-logo #logo LOGO

Site information #siteinfo 网站信息

Copyright information etc. #siteinfoLegal 法律声明

Designer or other credits #siteinfoCredits 信誉

Join us #joinus 加入我们

Partnership opportunities #partner 合作伙伴

Services #service 服务

Regsiter #regsiter 注册

Arrow arr/arrow 箭头

Little #little 标题

Website map #sitemap 网站地图

List #list 列表

Home page #homepage 首页

Sub page subpage 二级页面子页面

Toolbar #tool, #toolbar 工具条

Next pulls #drop 下拉

Next pulls menu #dorpmenu 下拉菜单

Status #status 状态

常用类的命名应尽量以常见英文单词为准,做到通俗易懂,并在适当的地方加以注释。对于二级类/ID命名,则采用组合书写的模式,后一个单词的首字母应大写:诸如“搜索框”则应命名为“searchInput”、“搜索图标”命名这“searchIcon”、“搜索按钮”命名为“searchBtn”

2.4.3 样式调用

页面内嵌法:就是将样式表直接写在页面代码的head区。

<style type=”text/css”>

body{background:white; color:black;}

</style>

外部样式表调用:将样式表写在一个独立的.css文件中,然后在页面head区用类似以下代码调用。

<link rel="stylesheet" type="text/css" href="css/style.css" />

在符合web标准的设计中,推荐使用外部调用法,可以不修改页面只修改.css文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。

2.4.4 样式简写

公共样式的缩写:

当两个或多个类有想通的属性值时,可以对属性值进行缩写。如:

.search{

padding-left:30px;

height: 35px;

color:#fff;

}

.foot{

padding-left:30px;

height: 15px;

color:#fff;

}

缩写为:

.search,.foot{

padding-left:30px;

color:fff;

}

.search{height:35px;}

.foot{height:15px;}

同一属性根据它的属性值也可以进行简写,如:

.search {

background-image:url(../images/icon.gif);

background-repeat: no-repeat;

background-position:left;

}

缩写为:

.search {

background:#333 url(../images/icon.gif) no-repeat left

}

颜色值的缩写:

当RGB三个颜色值数值相同时,可缩写颜色值代码。如:

.menu { color:#ff3333;}

可缩写为:

.menu {color:#f33;}

在CSS中关于内外侧边框的距离是按照上、右、下、左的顺序来排列的,当这四个属性值不同时也可直接缩写,如:

.btn {

margin-top:10px;

margin-right:8px;

margin-bottom:12px;

margin-left:5px;

padding-top:10px;

padding-right:8px;

padding-bottom:12px;

padding-left:8px;

}

则可缩写为:

.btn {

Margin:10px 8px 12px 5px;

Padding:10px 8px 12px 5px;

}

而如果当上边与下边、左边与右边的边框属性值相同时,则属性值可以直接缩写为两个,如:

.btn {

margin-top:10px;

margin-right:5px;

margin-bottom:10px;

margin-left:5px;

}

缩写为:

.btn {margin:10px 5px;}

而当上下左右四个边框的属性值都相同时,则可以直接缩写成一个,如:

.btn {

margin-top:10px;

margin-right:10px;

margin-bottom:10px;

margin-left:10px;

}

缩写为:

.btn{margin:10px;}

一段完整的Css属性编写的顺序为:浮动、宽度、高度(行高)、内边距、外边距、字体、背景色、背景图、其他属性。 如:

.head{

float:left;

width:136px;

height:16px;

padding:10px;

margin:10px;

font:normal 18px/24px "微软雅黑";

background:#333 url(../images/icon.gif) no-repeat left

display:block;

}

2.5  CSS常用属性介绍

字体属性:(font)
大小 font-size:只要用数值就可以,单位:PX

样式 font-style: normal;(正常)

行高 line-height:单位:PX

粗细 font-weight: bold;(粗体) normal;(正常)

大小写 text-transform: capitalize;(首字母大写) uppercase;(大写)none;(无)

修饰 text-decoration: underline;(下划线) none;(无)

常用字体: (font-family)一般用Tahoma(英文和数字更好看)、宋体、微软雅黑

背景属性: (background)

色彩

图片background-image: url(图片地址);

重复background-repeat: no-repeat;

滚动background-attachment: fixed;(固定) scroll;(滚动) 很少用

位置background-position: left(水平) top(垂直);

简写方法 background:#000 url(..) repeat fixed left top;

区块属性: (Block)

字间距letter-spacing: normal; 数值

对齐text-align: left;(左对齐) right;(右对齐) center;(居中)

缩进text-indent: 数值em;一般一段话前面缩进为2em,表现形式为缩进两个汉字

垂直对齐vertical-align: baseline;(基线) sub;(下标) super;(下标) top; text-top;

middle; bottom; text-bottom;

显示display:block;(块) inline;(内嵌) 当两个属性同时用着的时候可以用

display:inline-block解决。

方框属性: (Box)

浮动float:left左浮  right右浮  none 清除浮动

宽度width:数值

高度height:数值

内边距:padding   上右下左

外边据:margin    上右下左

边框属性: (Border)
border-style: dotted;(点线) dashed;(虚线) solid(实线);

border-width:; 边框宽度

border-color:#;

简写方法border:width  style  color;

列表属性: (List-style)

类型list-style   用值none格式化li

定位属性: (Position)

Position: absolute; relative;

overflow 用其hidden属性与 height:数值  可以防止溢出;用其hidden属性与height:auto、

zoom:1(兼容IE6必须要用这个属性)设置自适应高度

2.6  图片规范

图片的命名规范 :

名称分为头尾两两部分,用下划线隔开。

头部分表示此图片的大类性质。例如: 放置在页面顶部的广告、装饰图案等长方形的图片我们取名:banner ;标志性的图片我们取名为:logo ;在页面上位置不固定并且带有链接的小图片我们取名为button ;在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名:menu ;装饰用的照片我们取名:pic ;不带链接表示标题的图片我们取名:title 依照此原则类推。

尾部分用来表示图片的具体含义,用英文字母表示。例如:banner_sohu.gif

有onmouse或hover效果的图片,两张分别在原有文件名后加"_on"和"_off"命名。如:

banner_sohu_on.gif

图片质量:

图片质量与图片格式有很大的关系,尽量用gif图,并且在制作效果图时就应少用阴影、半透明效果图,这样可以减少图片数量。PNG图片尽量不要用,IE6下对PNG的支持非常不好,兼容性调整的时候又要分背景PNG和插入图片PNG,很麻烦。

图片尺寸:

不同页面,相同栏目的图片尺寸应按相同比例设计,尺寸不同,比例相同的同一张图片在浏览器里不会变形和失真太严重。

插入图片:

插入图片在XHTML表现为:

<img src="data:images/12090.gif" width="120" height="90" alt=”人物头像” />

宽度、高度和alt属性必须给出。

当插入图片有超级链接时,会默认有蓝色边框,所以我们在页面最开始就应该格式化图片

img{border:0;}

这样就不会有蓝色边框了。

图片背景:

背景图片在CSS表现为:

background:url(../images/dot.gif) left center no-repeat;

2.7  注释规范

XHTML注释:

在实际工作中,有时会出现分不清注释应该在标签之上还是标签之下,为了避免这种情况,注释信息统一写在区域标签开始之前和结束之后,并以“S”或“E”开始,表示区域注释的开始或结束。例:

<!-- =注释内容 start -->

<div>

...

</div>

<!-- =注释内容 end -->

在模块制作中,可能会出现区域中还有区域的情况,为了更好的区分区域之间的层级,引入了注释层级的概念。区域注释前面的等号表示了当前注释的层级例:

<!-- =注释内容 start -->

...

<!-- ==注释内容 start -->

...

<!-- ===注释内容 start -->

...

<!-- ===注释内容 end -->

...

<!-- ==注释内容 end -->

...

<!-- =注释内容 end -->

提示:不建议XHTML里写注释,两个浮动的标签之间添加注释的时候,可能会引起IE6字符复制掉行的BUG,很难处理,只有两者间的删除注释。如果不添加注释,页面标签的排列必须层次清楚,排列对称。再辅助火狐插件FireBug的使用,就能清晰明了的查看网页的布局和层次结构,完全可以不添加注释。

CSS注释:

在实际工作中,有时会出现分不清注释应该在标签之上还是标签之下,为了避免这种情况,注释信息统一写在区域标签开始之前和结束之后,并以“S”或“E”开始,表示区域注释的开始或结束。例:

/* =注释内容 start */

.class{

...

}

.class{

...

}

/* =注释内容 end */

在模块制作中,可能会出现区域中还有区域的情况,为了更好的区分区域之间的层级,引入了注释层级的概念。区域注释前面的等号表示了当前注释的层级例:

/* =注释内容 start */

...

/* ==注释内容 start */

...

/* ===注释内容 start */

...

/* ===注释内容 end  */

...

/* ==注释内容 end */

...

/* =注释内容 end */

不管是CSS注释,还是XHTML最好都用英文。CSS中文注释可能产生CSS失效的BUG。

2.8  浏览器兼容

当下常用浏览器有:IE6、IE7、IE8、IE9、火狐、谷歌、Safari苹果这几种。

其中兼容性问题最大的是IE6,其次是IE7。火狐、谷歌、苹果的兼容性已经非常的好,更多

的是考虑IE6和IE7。

IE6、IE7、Firefox之间的兼容写法:

IE6 IE7特有hack:

写法一:

IE6能识别_, IE7能识别*

根据上述表达,同一类/ID下的CSS hack可写为:

.searchInput {

/* 正常属性 */

* /* 仅IE7 */

_ /* 仅IE6 */

}

一般三者的书写顺序为:正常属性、IE7、IE6.

写法二:

*+html 与 *html 是IE特有的标签, Firefox 暂不支持。

.searchInput {}

*html .searchInput {background-color:#666;}/*仅IE6*/

*+html .searchInput {}/*仅IE7*/

IE6常见bug解决:

双外边距: 某个类有属性 margin-left:10px的时候,IE6下会可能会解析成20px的边距。

这个时候,就要给这个类加属性  _display:inline;

PNG透明:JS解决

标签高度自适应:height:auto; overflow:hidden; zoom:1;

鼠标滑动事件:JS解决

更多IE6 BUG及解决方案

http://www.css88.com/archives/579

web前端基本开发手册的更多相关文章

  1. web前端网页开发一般过程

    看见很多新手同学前端开发,效率比较慢.总是拿起代码就敲,不分析,没有逻辑,反而使效率变慢.所谓磨刀不误砍柴工,有一个良好的过程,才是最主要的: 1.分析平面效果图,在草稿纸上画出基本结构图 2.建立项 ...

  2. 就来推荐一本2018年研究的Web书《移动Web前端高效开发实战》

    一线互联网公司Web前端团队实战经验总结,涵盖移动Web前端开发各个关键技术环节,包括移动开发核心技术.常用布局方案.MV*类新时代框架.预编译技术.性能优化.开发调试.混合式应用.单元测试.工程化等

  3. 《移动Web前端高效开发实战》笔记4--打造单页应用SPA

    路由是一个单页应用的核心,大部分前端框架都实现了一个复杂的路由库,包括动态路由,路由钩子,组件生命周期甚至服务器端渲染等复杂的功能.但是对于前端开发者而言,路由组件的核心是URL路径到函数的映射,了解 ...

  4. 《移动WEB前端高级开发实践@www.java1234.com》——3

    React Flux: Flux将一个应用分成四个部分. View: 视图层 Action(动作):视图层发出的消息(比如mouseClick) Dispatcher(派发器):用来接收Actions ...

  5. 《移动WEB前端高级开发实践@www.java1234.com.pdf》——2

    5.3 作用域.闭包和this let 声明的变量只存在于其所在的代码块中 由于 JS 是基于词法(静态)作用域的语言,词法作用域的含义是在函数定义时就确定了作用域,而不是函数执行时再确定 calcu ...

  6. 《移动Web前端高效开发实战》笔记1——静态布局在移动端上的自适应

    1.整体缩放 整体缩放可以用在营销活动页,营销活动可能因为设计美观需求必须使用背景图片而非背景色,因此需要考虑背景图适应屏幕大小.开发者可以用320像素的宽度作为基础宽度(高度可以固定),然后通过计算 ...

  7. 《移动WEB前端高级开发实践@www.java1234.com.pdf》

    HTTP服务器: http-server 3.6.4 利用 Performance API 分析网站性能 页面加载生命周期 4. CSS3 伪类.伪元素, 看https://www.runoob.co ...

  8. WEB前端移动开发初始化

    meta篇 1.视窗宽度 <meta name="viewport" content="width=device-width,initial-scale=1.0,m ...

  9. 《移动Web前端高效开发实战》笔记3--代码检查任务

    在项目的开发过程中,统一的代码风格对于项目的可协作性以及可维护性来说相当重要,因此可以采用一些插件来进行代码风格的检查. 本例中的源文件包含两类:Sass文件和采用ECMAScript 6规范的Jav ...

随机推荐

  1. 【java】private关键字

     private关键字(1)修饰成员:可以修饰成员变量和成员方法(2)特点:被private修饰的后的成员只能在本类中被访问 (3)private的应用:定义类的时候,当把成员变量给private修饰 ...

  2. 手机闪存速度测试工具,AndroBench

    手机闪存速度测试工具,AndroBench

  3. [蓝桥杯]ALGO-81.算法训练_动态数组使用

    从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 样例输出: 样例输入: 样例输出: 题目 ...

  4. C++进阶--处理拷贝赋值运算符中自赋值的情况

    //############################################################################ /* * 处理拷贝赋值运算符=中自赋值的情 ...

  5. 我的ehcache笔记

    我的EhcacheUtils类: package com.shinho.bi.utils; import org.ehcache.CacheManager; import org.ehcache.co ...

  6. 使用R语言-计算均值,方差等

    R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [ ...

  7. P2837晚餐队列安排

    传送 特写此篇,纪念不用dp做dp题 洛谷说这是个dp,但我不信(其实就是不会dp),因此我们考虑用另一种思路.修改后的队列每一个 数a[i]一定满足a[i]<=a[i+1],那修改后的顺序就是 ...

  8. python中画散点图

    python中画散点图 示例代码: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d impor ...

  9. Ajax的课外了解

    Ajax传入的数据的话,只能是字符串或数字,字段,其他形式的传参都不可以: Ajax只是跟后台交互也有同源策略的限制: 不是当前服务器叫跨域: Ajax也有同源策略的限制想做跨域处理,只能通过scri ...

  10. Oracle之ora-01031 insufficient privileges

              解决ora-01031insufficient privileges错误 解决system用户不能登录的问题 alter user system account unlock id ...