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("")