結構層(由 HTML 或 XHTML 之類的標記語言負責創(chuàng)建)、表現(xiàn)層(由CSS控制)、行為層(Javascript 語言和 DOM 主宰的領域)
內(nèi)聯(lián)式就是樣式的屬性內(nèi)容直接跟在將要修飾的html標記里,如:
<div style=”height:30px;font-size:12px;”></div>
外聯(lián)式就是通過<link href=”my.css” type=”text/css” rel=”stylesheet”/> 或者 @import url(my.css); 方式引入css
嵌入式就是用<style type=”text/css”></style>方式把CSS直接寫在網(wǎng)頁中
a{blr:expression(this.onFocus=this.blur());}/*只支持IE,過多使用效率低 */
a:focus{outline:none;}//FF下
其實這里還不算全部的解決方法,另篇文章里我COPY來了一份網(wǎng)上別人總結出來的方法,可以點這里查看
l-v-f-h-a 既:link-visited-focus-hover-active 這里可能大家很少用到的就是focus,這個其實也是一種鏈接狀態(tài),就是當你在鍵盤上按Tab鍵時獲得焦點的那個鏈接的即時狀態(tài),遺憾的是ie并不支持(ie中按Tab鍵顯示的效果為a:active時的狀態(tài)),只有在FF,Opera等瀏覽器下才能看到效果。就經(jīng)常性我們就會用成L-V-H-A,這個東西其實還真有點不好記,好多人覺得老是混淆特別是那個A,這里有高人把它比如成“由愛生恨” Love Hate(LV-HA),哈哈 好記了吧!
*: IE6-7
_: IE6
\0: IE8-9
\9: IE6-9
!important: FF、IE7-9
CSS HACK書寫順序:先寫FF等非IE瀏覽器所需樣式,其次寫IE8所需樣式,接著是IE7的,再接著才是IE6的!
解決方法是給項目符號騰空間,代碼:li{margin-left:25px;}
::selection { background:色值;color:色值; } /*Ie9+,Webkit,Opera9.5+*/
::-moz-selection { background:色值;color:色值; } /*Mozilla Firefox*/
在iOS中,當虛擬鍵盤彈出時,默認情況下鍵盤是開啟首字母大寫的功能的,移動版本webkit為input元素提供了autocapitalize屬性,通過指定autocapitalize=”off”來關閉鍵盤默認首字母大寫
在table加上
word-wrap:break-word;
;
display:inline;
BUG重現(xiàn):
a,span{display:block;background:#ddd;}
如上代碼,IE6及更早瀏覽器每個li內(nèi)部的內(nèi)聯(lián)元素底部都會產(chǎn)生空白。解決方案是給li內(nèi)部的內(nèi)聯(lián)元素再加上zoom:1
div{overflow:auto;width:260px;height:80px;border:1px solid #ddd;}
p{position:relative;margin:0;}
如上代碼,在IE7及更早瀏覽器下你會看到div的滾動條將無法工作。解決方案是給div也設置相對定位position:relative
方法1:
img{display:block;}
方法2:
img{vertical-align:top;}除了top值,還可以設置為text-top | middle | bottom | text-bottom,甚至特定的和 值都可以
方法3:
#img{font-size:0;line-height:0;}#img為img的父元素
input{vertical-align:middle;}
將原來設置在body上的滾動條顏色樣式定義到html標簽選擇符上即可
設置容器的寬度和white-space為nowrap即可,其效果類似<nobr>標簽
(此方法Firefox5.0尚不支持):
#test{width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}首先需設置將文本強制在一行內(nèi)顯示,然后將溢出的文本通過overflow:hidden截斷,并以text-overflow:ellipsis方式將截斷的文本顯示為省略號。
word-wrap的break-word值允許單詞內(nèi)換行
#test是img的祖父節(jié)點,p是img的父節(jié)點。Know More:未知尺寸的圖片如何水平垂直居中
要使內(nèi)聯(lián)元素可以設置寬高,只需將其定義為塊級或者內(nèi)聯(lián)塊級元素即可。所以方法非常多樣,既可以設置display屬性,也可以設置float屬性,
或者position屬性等等。
.a{color:#f00;}
.b{background:#eee;}
.c{background:#ccc;}
<div class=”a b”>測試1</div>
<div class=”a c”>測試2</div>
多個規(guī)則之間使用空格分開,并且只有class能同時使用多個規(guī)則,id不可以
方法1:
.outer{width:200px;height:200px;background:#000;filter:alpha(opacity=20);opacity:.2;}.inner{width:200px;height:200px;margin-top:-200px;}<div class="outer"></div><div class="inner">我是不透明的內(nèi)容</div>原理是容器層與內(nèi)容層并級,容器層設置透明度,內(nèi)容層通過負margin或者position絕對定位等方式覆蓋到容器層上
方法2:
.outer{width:200px;height:200px;background:rgba(0,0,0,.2);background:#000\9;filter:alpha(opacity=20)\9;}.outer .inner{position:relative\9;}<div class="outer"><div class="inner">我是不透明的內(nèi)容</div></div>高級瀏覽器直接使用rgba顏色值實現(xiàn);IE瀏覽器在定義容器透明的同時,讓子節(jié)點相對定位,也可達到效果
.box1{margin:10px 0;}
.box2{margin:20px 0;}
<div class=”box1″>box1</div>
<div class=”box2″>box2</div>
本例中box1的底部margin為10px,box2的頂部margin為20px,但表現(xiàn)在頁面上2者之間的間隔為20px,
而不是預想中的10+20px=30px,結果是選擇2者之間最大的那個margin,我們把這種機制稱之為“外邊距合并”;
外邊距合并不僅僅出現(xiàn)在相鄰的元素間,父子間同樣會出現(xiàn)。
簡單列舉幾點注意事項:
外邊距合并只出現(xiàn)在塊級元素上;
浮動元素不會和相鄰的元素產(chǎn)生外邊距合并;
絕對定位元素不會和相鄰的元素產(chǎn)生外邊距合并;
內(nèi)聯(lián)塊級元素間不會產(chǎn)生外邊距合并;
根元素間不會產(chǎn)生外邊距合并(如html與body間);
設置了屬性overflow且值不為visible的塊級元素不會與它的子元素發(fā)生外邊距合并;
input,textarea{ime-mode:disabled;}
ime-mode為非標準屬性,寫該文檔時只有IE和Firefox支持
來自:www.appue.com