: 超文本链接
ü : 为被引用的图像创建占位符
ü : 9、粗体文本。
ü :强调文本
ü :斜体的文本
ü : 重要的文本。
ü :定义变量
ü :引用。如引用的书籍或杂志的标题。
ü
10、选框、file文件、hidden(隐藏的input)、password密码输入框、radio单选框、reset重置按钮、submit提交按钮、text单行文本输入框。input标签显示的原始内容在input标签上的 value属性中设置 ,如:
:创建下拉列表(与option连用)。 : 定义下拉列表中的一个选项
ü : 注释
(4) 标签语义化
ü 标签语义化优点:语义化标签就是尽量使用与结构相对应的含义的Html的标签!
ü 重要性:
a) 去掉或样式丢失的时候能让页面呈现清晰的结构:
b) PDA、手机等设备可能无
11、法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱),所以如果有良好的html结构,就能更好的将页面表现出来;
c) 搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重.
d) 你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记.
e) 便于团队开发和维护
(5) 标签嵌套原则
a) p不可以嵌套div。
b) a不可以嵌套a。
c) 行属性尽量不要嵌套块属性标签。
(6) 块属性标签与行属性标签区别
块属性标签独占一行、支持设置宽高、默认宽度自动充满整行、margin定义四个方向属性值。
行属
12、性标签不独占一行、不支持设置宽高、内容充满整行,margin只能定义左右方向属性值。
3 CSS(层叠样式表)入门
3.1 CSS引入方式
引入方式优先级:标签内联样式>页面内嵌>外部文件样式>浏览器默认样式
(1) 引入外部CSS文件
这种方法是最难体现DIV+CSS中结构与显示分离的思想,也最容易改版维护,代码看起来也是最美观的一种。
一个css文件可以控制多个页面,便于维护,从整站上减少代码量,有效利用缓存机制。
(2) head部分加入CSS
13、tyle tyle=”text/CSS”>CSS样式代码
Style表示引入文件类型的标签。Type表示文件类型。
优点:速度快,所有的CSS控制都是针对本页面标签的,没有多余的CSS命令。再者不用外链的CSS文件,从而减少了向服务器请求的次数。直接在HTML文件中读取样式。
缺点:改版麻烦,单个页面显得臃肿,CSS样式不能被其他HTML页面引用造成代码量相对较多,维护比较麻烦。
通常在访问量大的网站使用这种方法,首页。
(3) 在标签内直接写CSS
Style这种写法不提倡使用,因为前端开发追求结构与样式分离。一般用于测试用。
3.2 CSS选择器及优先级
14、CSS选择器分为标签tag选择器,ID选择器,类选择器,后代(派生)选择器,群组选择器,伪类(a标签\nth-child(n))选择器,通配(*)选择器,子选择器(A>B),临近选择器(a+b),CSS属性选择器(input[type=”button”])。
ID>class>tag(标签)
混合使用时优先级比较:a,b,c,d(标签,类,ID,style类型选择器)四种等级取值分别为1,10,100,1000。数值越大优先级越高。
注意:
(1) 当指向同一个目标选择器的优先级相同时,后面的优先级大于前面的与优先级。
(2) 当同一个标签定义多个class名称时,各个类选择器之间的
15、优先级与HTML的排列无关,而是与CSS文件中各个类选择器的排列有关。
3.3 CSS属性
3.3.1 字体设置
(1) 字体系font-family:宋体,黑体,隶书,Arial,sans-serif,Tabhoma。
font-family : 字体1,字体2,字体3,…
可以同时为页面设置多个字体,当浏览器(本地字体库)找不到第一个字体时会寻找第二个字体,依次进行,直到找到可用的字体。如果没有找到字体,就使用浏览器默认字体。
中文页面以宋体为首选,其他次之。英文页面以Arial,Tabhoma等字体。中英文结合的最好用英文字体。特殊字体一律用图片。
(2) 字体大小
f
16、ont-size:N px/em/百分数
值可以为绝对的或者相对的。绝对的是将文本设置为指定大小,不允许用户在所有浏览器中改变字体大小。绝对大小确定了输出的物理尺寸。相对大小相对于周围的元素来设置大小,允许用书在浏览器改变文本大小,使用香水来设置字体大小,通过通过像素设置文本大小,可以对文本大小进行完全控制。
网页中最小字体为12px,默认也是12px。
W3C推荐使用em作为尺寸单位。默认情况下1em=16px。
Em的值会相对于父元素的字体大小改变。Em:px/16=em。如:父元素字体大小为20px时,子元素font-size为px/20=em。如果父级字体大小为16px时,子元
17、素font-size为100%,其实际大小为16px。
(3) font-style字体风格
font-style: normal | italic | oblique
Normal:常规字体。Italic:斜体。简单的字体风格,对每个字母的结构有一些小改动。Oblique:倾斜。正常数值文本的一个倾斜。
(4) font-weight字体粗细设置
font-weight: normal正常 | bold 加粗| bolder 更粗| lighter更细 | number
(5) 文本颜色color
color : 颜色值;
颜色可以是一个名称标示的关键字,如 color
18、 red;也可以是一个RGB数字,如color : #ffffff;如果每个参数各自在两位上的数字都相同,那么本单位也可缩写为#RGB的方式,如:#FF8800 可以缩写为 #F80。
color: rgba(1,1,11,0.9);最后一位是透明度设置(取值0-1),数值越大,透明度越低!
(6) 复合字体属性font
使用font作为属性名称,后接各个属性值即可,各个属性值之间用空格分开。通常不采用简写的模式。可以直接加行高。
font: font-style | font-weight | font-size(/line-height)| font-family ;
行高
19、
(7) 文本修饰属性设置text-decoration
text-decoration: none无文本修饰(浏览器默认初始值) | underline 下划线| overline 上划线| line-though 贯穿线/删除线
(8) 文本行距属性设置line-height
line-height: normal正常行距 | length;
length : 由浮点数字和单位标识符组成的长度值,允许为负值。设置数值越大,文本段落中间的行距越大。
(9) 文本缩进属性设置text-indent
text-indent: length px/em;
em指文字的倍数,允许指定负
20、值。一个em为一个字符。
一个空标签里边的内容 text-indent:-999em;页面不显示文本内容。
(10) 文本水平对齐设置text-align
text-align: left左对齐| center中间对齐(左右居中) | right右对齐| justify两端对齐文本;
(11) 文本垂直对齐设置vertical-align
vertical-align: top (顶部)| bottom(底部) | middle(上下居中对齐);
此属性除了table支持的比较完善其他标签支持的并不是太好,不建议使用此属性,只做了解。
(12) 字词间隔属性设置w
21、ord - spacing:改变字(单词)之间的标准间隔。
word-spacing: normal(默认) | length;
length : 接受一个正长度值或负长度值。如果提供一个正长度值,那么字词之间的间隔就会增加。设置一个负值,会把它拉近。
(13) 字符间隔属性设置letter - spacing:改变字符之间的标准间隔
letter-spacing: normal | length;
length : 接受一个正长度值或负长度值。如果提供一个正长度值,那么字符之间的间隔就会增加。设置一个负值,会把它拉近。
(14) 背景颜色属性设置background - co
22、lor
background-color: red | #ffffff;
(15) 背景图片属性设置background-image
background-image: none | url ( url );
None:是无背景图。Url(图片路径)。背景图默认平铺。
(16) 背景图重复设置background - repeat
background-repeat: repeat (默认重复)| no-repeat(不重复) | repeat-x(横向重复) | repeat-y(纵向重复);
(17) 背景图定位设置background - position
ba
23、ckground-position: x轴坐标值 y轴坐标值;
像素值。background-position:10px 30px。
具体的方位。left | right | center | top | bottom 。
百分比。background-position:30% 50%。
(18) 背景图滚动设置background - attachment
background-attachment : scroll( 随着页面的滚动轴背景图片将移动,默认值,只针对IE6/7)| fixed(随着页面的滚动轴背景图片不会移动);
(19) 背景图简写设置
backgrou
24、nd : color url( ) position repeat;
改样式为背景设置的简写,其属性值有多个值组成,值与值之间用空格隔开。
3.1.2 伪类
CSS伪类可以用于向某些选择器添加特殊的效果,伪类必须知道某些选择器才能使用,而伪类中最经典的就是a标签的伪类。
关于伪类,大家最熟悉的还是a标签的4个伪类:
:link 有链接属性时。
:visited 链接地址已被访问过。
:hover 鼠标悬停时的样式表属性
:active 被用户激活(在鼠标点击未释放时发生的事件)
排列顺序LVHA。
4 盒
25、模型
盒模型=内间距padding+外间距margin+边框border+内容content。
盒模型指css布局中html中的每个元素在浏览器中的解析都可以被看作一个盒子,拥有盒子一样的外形和平面空间。
4.1 margin
margin-top|right|bottom|left: length;
每个块元素有上、右、下、左四个方位的外边距,可以分别用四种属性
来声明。
4.1.1 margin的几种不同写法:
1) .main{margin:10px 20px 10px 20px;}这四个值分别设置类名为main的模块上、右、
26、下、左四个方位外边距的值。
2) .main{margin:10px 20px;}这两个值分别设定类名为main的模块的上下、左右的外边距
3) .main{margin:10px 20px 10px;}第一个值设定上外边距,第二个值设定左右外边距,第三个值设定下外边距
4) .main{margin:10px;}如果就一个值的话,就设定了四个方向的外边距都10px
5) .main{ margin:20px auto;}这样设值的意思是上下两个方位的外边距为20px,左右两个方位的外边距自动适应居中
4.2.2 margin属性的bug
(1) 竖向margin的叠加
ma
27、rgin横向上是加法,但在竖向上却会产生叠加现象,并会取上下间距的其大者生效。
(2) IE6下的横向双倍margin bug
IE6会在特定的条件下,将设置的横向margin值变成双倍。条件:
a) 元素必须浮动(float);
b) 元素必须具有横向margin,margin-left、margin-right
c) 元素必须块元素
d) 浏览器必须是ie6
4.2 padding
相对于外边距而言,元素也应该具有内边距。
padding-top|left|bottom|right:length;
padding属性定义元素边框与元素内容之间的空白区域。
4.3 bo
28、rder
元素的边框是围绕元素内容和内边距的一条线或多条线
border-top|right|bottom|left:border-width|border-style|border-color;
border简写属性,用于把边框的所有属性设置到一个声明中,顺序没有要求。
Solid,dashed,hidden,double……
Border:none;表示当前元素没有边框。
Border:0;表示当前元素边框为0.
4.4 Display
规定元素应该声称的框的类型
display:block|none|inline|table
block:该元素以块属性显示
none
29、该元素隐藏,不会被显示。并且在网页中不占位置。
inline:以行内属性显示
table:以表格的表现显示,经常对应table-cell使用
4.5 怪异模式
4.5.1 怪异模式和标准模式
Width=content+padding+border
总宽度=width+margin
怪异模式是指在IE6及更早的IE版本下盒模型的计算方法:所占空间总宽度等于内容+外边距。
解决办法就是使用hasLayout ,使用Doctype声明。
4.5.2 标准和怪异模式的异同点
相同点:都是由margin ,border,padding,content组成
不同点:计算宽/高度方
30、法的不同,
标准模式下盒子的总宽度是由margin,padding,border,content的相加得来;
怪异模式下:总宽度是由content减去padding、border得来的。
4.5 .3标准模式
占的空间的宽度=内容的宽度content+左右内边距的宽度padding+左右边框的宽度border+左右外边距的宽度margin
5 CSS布局
Css布局分为float(浮动布局)、position(定位布局)、弹性布局(CSS3)。
5.1 浮动原理:float 先浮后动(水槽原理)
(1) 所有的元素都可以浮动
(2) 具有float属性的元素在父标签中是不占空
31、间的
(3) float能解决标签之间有间隙的问题
5.1.1 浮动的特性
float 对行内属性标签的影响:float之后能设置width和height属性,并支持margin和padding属性。
float 对块属性标签的影响:在没有设置宽高的情况下浮动后,内容撑开宽度高度。 可以使块属性元素并排排列。
5.1.2 clear清除浮动
clear:none | left | right | both
none:允许浮动元素出现在两侧;left:左侧不允许有浮动元素;right: 右侧不允许有浮动元素;both: 不允许有浮动。
.clear{clear:both;}
由于元素的float,为了不影响下面元素的显示。通常在这个浮动元素的后面加上
来消除对后面元素显示的影响。
5.1.3 ie6下清除浮动
下面这种清除浮动的方法在ie6下,div空标签会有默认高度。
.clear{clear:both;}
解决方法:.clear{clear:both;overflow:hidden;height:0;}
5.1.4 overflow超出
overflow:vis33、ible | hidden | auto | scroll
visible:显示超出内容,不剪切内容也不添加滚动条。
hidden:超出内容隐藏。
auto:默认属性,在需要是剪切内容并添加滚动条。代表当前元素超出当前元素宽和高时,会自动出现滚动条。
scroll:代表当前元素是否超出当前元素宽和高时,总是显示滚动条。
还可针对x轴和y轴设置overflow-x:overflow-y:
overflow:hidden;也可以清除浮动。即,如果一个父标签内有float的子元素,给父元素设置overflow:hidden属性,则可以清除子元素的浮动。
5.1.5 visitility
34、 可视
visitility:visible可视 | hidden 不可视| inherit继承父元素的可视性;
Visitility:hidden;隐藏该元素,不被显示,设置当前元素占位。
Display:none;隐藏,在网页中也不占位置。
5.1.6 总结:
(1) 三个div在一行排列,如何让中间的div的宽度自适应???
三个div统一左浮动,给div1设置定宽,高度auto;给div2设置宽auto,高度auto;给div3设置定宽,高度auto;
(2) 清除浮动方法
① 空标签清楚浮动法
② 伪类清楚浮动法-兼容IE6/7
.clearfloat:af
35、ter{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0
}
.clearfloat{
zoom:1
}
③ 父级定义height法
④ 父级定义overflow:hidden
⑤ 父级定义overflow:auto
⑥ 父级也浮动,已浮动制浮动
⑦ 父级定义display:table
⑧ 结尾结尾处加 br标签 clear:both
5.2 定位position
position: absolute 绝对定位 | relative 相对自身定位
36、 | static默认值 | fixed 可定位相对于浏览器窗口的指定坐标 | inherit继承父级定位。
注意: absolute 和relative配合使用, 父标签为相对属性relative 的话,name absolute 则以父标签左上角作为起始位置进行定位。如果父标签没有定义relative,则子标签会以body左上角作为起始位置进行定位。
Fixed定位于相对于浏览器窗口的指定坐标,此元素可以通过四个方向属性来规定,不管窗口是否滚动,元素都会留在那个位置。
Position:absolute
(1) 只设置了绝对定位而没有设置定位属性的四个方向值,那么该绝
37、对定位的元素依然遵循其在文本刘中的正常位置,仍然受父级元素位置影响,按照正常的文档流进行布局。只不过现在是从文档流中抽出,其后面的同级元素会忽视其存在,而自动补上去。因为绝对定位的元素是不占文档流的布局空间。
(2) 绝对定位会自动把一个元素转换为具有部分块属性的元素。
(3) 绝对定位元素会依据其定位基点进行绝对定位时会忽视其定位基点的padding的空间距离。
(4) 当一个元素设置为绝对定位后该元素内的浮动会自动清除。
5.2.1与定位相关的属性
(1)z-index:number | auto
z-index设置元素的堆叠顺序,值可以为负。
(2) left right
38、top bottom:length | auto;
5.2.2 CSS半透明
(1)opacity属性定义元素的不透明度。
opacity:number(0-1之间的数值);
opacity的值为1的元素是完全不透明的反之,值为0的是完全透明的,看不见的。
(2) filter-IE的半透明滤镜
filter:alpha(opacity=number);
number的取值为100-0之间的数值。
因为ie不支持opacity,只支持自己的滤镜fiter:alpha(opacity=50);
5.3背景图合并
(1) 背景图合并优势
使用背景图合并技术,可以达到减少
39、图片数量,从而减少HTTP请求的目的,对网站加速有着举足轻重的作用。背景图合并的优势:
a) 可扩展,便于后期维护,当遇到排版变化时,比较容易维护。
b) 宽度自适应本身就减少了页面的工作量,背景图合并可以和宽度自适应结合在一块,大大减少了页面数量和图片大小,提升页面的loading速度。
(2) 背景图合并原理
把本站用的多张背景图都合并到一张背景图上,利用css中的background-position属性去进行图片的定位。已减少网站http请求次数,好加快浏览器的显示速度。
6 CSS进阶
6.1列表list
CSS列表属性允许设置改变列表项标志,或者通过图像作为列表项
40、标志。
(1) 属性设置列表项标记的类型:List-style-type:value;
属性值包括none:无标记;disc:默认,标记为实心圆;square标记是实心方块;decimal是数字;decimal-leading-zero 0开通的数字标记(01,02……);low-latin:小写拉丁字母(如:a、b)。
(2) list-style-image:url();使用一幅图像来替换列表项标记。
(3) list-style-position:value;
Inside列表项目标记放置在文本以内,且环绕文本根据标记对齐。
Outside默认。保持标记位于文本的左侧。列表项
41、目标记放置在文本以外,切环绕不根据标记对齐。
(4) list-style:list-style-type | list-style-image | list-style-position;
6.2 table
(1) table:
tr:表格的行
th:表头单元格
td:单元格
2 cellpadding:设置单元格边框与单元格里的内容之间的距离
cellspacing:设置单元格间的距离
42、lspan:跨列
rowspan:跨行
4 table-css属性
① 折叠边框 :设置表格的边框是否被合并为一个单一的边框
border-collapse : separate (默认)| collapse(合并间距)
② 单元格间距 :设置分隔单元格边框的距离
border-spacing : length(x轴) length(y轴)
③ 文本上下居中
vertical-align:top | middle | bottom
Border-collapse:可以消除边框间隙,同时合并内外边框。
Border-spacing:可以消除边框间隙,不能
43、合并内外边框。
5 注意
只能给table和th、td设置border,tr设置border不支持。
默认表格样式中格单元与格单元有空白间距,应利用:border-collapse与border-spacing 属性进行样式重置,去掉默认间距。
Table{
Border-collapse:collapse;border-spacing:0;
}
Th,td{padding:0;}
6.3 form表单
6.3.1基本代码如下:
47、和边框,在不考虑欧朋浏览器情况下,通过设置height高度来条件checkbox上下方向的位置。默认情况下,我们更多使用margin,padding。
单选按钮:在name相同的radio中,只能选中一个。
Button使用a标签通过css控制样式来做更漂亮的按钮。
所有类型的input都支持disabled属性,即不可修改。
7 浏览器介绍
7.1 主流浏览器
(1) IE
IE版本众多,现常用的是IE6\IE7\IE8\IE9\IE10.
内核 : Trident(IE内核)
前缀 : -ms-
兼容性 : IE9+ 开始支持css3 和 h5
(2) 火狐(f
48、irefox)
内核:Gecko
前缀 : -moz-
对css3 和 h5 支持很好
(3) opera
内核:Presto (前),webkit (现)
(4) 前缀 : -o- (前)
- webkit- (现)
(5) 谷歌(chrome)
内核:webkit (前),Blink (未来)
前缀 : -webkit-
(6) 遨游
(7) safari(苹果)
内核:webkit
前缀 : -webkit-
7.2 浏览器兼容性问题
不同浏览器对同一段代码的解析效果不同,称为兼容问题。
(1) 不同浏览器的标签默认的margin和padding不
49、同?
解决方案:通过群组选择器去掉默认的内外间距。
body,div{margin:0;padding:0;}
(2) 块属性标签float后,又有横行的margin情况下,在IE6.0显示margin比设置的大(加倍)?
IE6.0bug产生情况是IE6.0下,块属性,float,有横向margin。
问题症状:常见症状是IE6中后面的一块被顶到下一行
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性,使产生bug的四个条件不能同时具备。
(3) 设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度?
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
(4) 行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
问题症状: IE6里的间距比超过设置的间距
解决方案:在display:block;后面加display:inline;display:table;
(5) 图片默认有间距?
解决方案:使用float属性为img布局
(6) a嵌套img时,在不同浏览器会出现不同颜色的