1.元素类型
元素类型有:内联元素和块状元素。
内联元素的特点:
(1)可以和其他元素在同一行上。
(2)不支持宽高,对上下margin和padding等样式的支持也有一定的问题。
(3)元素的宽度就是它包含的文字或图片的宽度。
块元素的特点:
(1)独占一行。
(2)支持所有样式。
(3)不设置宽度时,宽度会撑满整行。
2.浮动 float
属性值有:left right none inherit
文档流:文档中可显示对象在排列时所占的位置。
浮动的特征:
(1)块在一排显示;
(2)内嵌支持宽高;
(3)默认内容撑开宽度;
(4)脱离文档流;
(5)提升层级半层。
清除浮动的方法:
(1)加高。给浮动元素的父级加上与浮动元素相同的高度。
问题:扩展性不好。
(2)给父级加上浮动。
问题:页面上所有元素都得加上浮动,margin左右自动失效。
(3)inline-block清浮动。
问题:margin左右自动失效。
(4)空标签清浮动。
问题:IE6下有最小高度,解决后,IE6下有2px偏差。
(5)br清浮动。
<br clear="all"/>
问题:不符合结构-样式-行为三者分离的要求。
(6)after伪类 清浮动。(给浮动元素的父级加上 clearfix 标签)
clearfix:after{content:"" display:block;c;clear:both;}
在IE6下还得添加:
clearfix{*zoom:1;}
(6)overflow:hidden 清浮动。
问题:需要配合宽度或者zoom。
3.BFC(block formatting context):块级元素格式化上下文。
在下列这些情况下会创建新的BFC
(1)浮动元素(不为none时);
(2)绝对定位元素;
(3)表格的单元格;
(4)表格的标题;
(5)display:inline-block;
(6)overflow的值不为visible。
4.position
其属性值有
position:relative\absolute\static\fixed
相对定位(relative):(1)本身作为自己的参照物;
(2)不会使元素脱离文档流;(元素移动后原始位置会被保留。)
(3)不影响元素本身的特性,如果没有定位偏移量,对元素本身没有任何影响;
(4)提升层级。
绝对定位(absolute):(1)使元素完全脱离文档流;
(2)使内嵌元素支持宽高;
(3)块属性标签内容撑开宽度;
(4)如有定位父级相对于定位父级发生偏移,没有定位父级则相对于document发生偏移。
(5)相对定位一般都是配合绝对定位元素使用。
(6)能够提升层级。
固定定位(fixed)与绝对定位的特性基本一致,它们的区别就是固定定位偏移基准是相对于屏幕来定位,绝对定位是相对于父级来定位,ie6不兼容固定定位。
5.透明度:opacity
透明度范围:0-1 若是在ie6和ie7下的透明度需加滤镜,
filter:alpha(opacity=1-100);
6.表格/表单
表格:table 表头:thead 表主体:tbody tr:表格行
th:元素定义表头 td:元素定义表格单元
单元格合并:
合并行属性:
<td rowspan="2"></td>
合并列属性:
<td colspan="2"></td>
表单/表单元素
form 表单
<form action="填写提交地址"></form>
<input type="" name="" value=""/>
表单元素:
text 文本框 password 密码 radio 单选
checkbox 复选 submit 提交 reset 重置
button 按钮 image 图片 file 上传
hidden 隐藏
7.兼容性
1 h5标签兼容问题(添加插件)
<script src="路径"></scrpt>
其中 路径是JS插件,处理h5标签兼容
2第一块元素浮动,第二块元素添加margin的值等于第一块元素,在ie6下会有间隙问题。
解决:(1)不建议这么写 (2)用浮动解决。
3 ie6下子元素超出父级宽高,会把父级的宽高撑开。
解决:不要让子元素的宽高超过父级。
4 p 包含块元素嵌套规则。
解决:p标签 td h 标签不要再嵌套块元素。
5 margin兼容性 margin-top 传递 会出发BFC haslayout
上下margin 叠压,尽量使用同一个方向的margin 比如都设置top或者bottom.
6display:inline-block
*display:inline;
zoom:1;触发haslayout
7 ie6最小高度
解决:overflow:hidden;
ie6最小高度为19px
8 ie6双边距:当元素浮动后,再设置margin会出现双边距。
解决:display:inline;
9 li元素都浮动,li在Ie6,7下会产生4px间隙。
解决:vertical-align:top;
10 浮动元素之间注释,导致多复制一个文字问题,两个浮动元素之间有注释或者内嵌元素并且和父级宽度相差不超过3px。
解决:1 两个浮动元素之间避免出现内嵌或者注释。
2 与父级宽度相差3px或者以上。
11 ie6 7父级元素overflow:hidden 是包不住子级的relative
解决:将他们放在同等条件下,这对ie6 7给父级元素增加相对定位。
12 ie6 7 下绝对定位元素父级宽度是奇数,绝对定位元素right和bottom值会有1px的偏差。
解决:避免父级宽高出现奇数。
13 ie6 7下绝对定位元素和浮动元素并列,绝对定位元素消失
解决:浮动元素和绝对定位元素让他们两不处于同级就可以避免。
14 ie6 input的空隙。
解决:给Input元素增加浮动。
15 ie6下输入类型表单控件背景问题。
解决方案:设置
background-attachment:fixed;
8.样式优先级:提升样式优先级
!important>行间样式>class>类型>默认
!important能够提升样式优先级权重。
9.png24兼容
ie6不支持png24的图片
解决:JS插件(问题不能处理body之上png24)
DD_belated PNG.fix("")