- 相關(guān)推薦
有關(guān)CSS的小技巧精編
今天,小編給大家帶來(lái)有關(guān)CSS的小技巧十八九條,希望能對大家有所幫助。
1.div的垂直居中問(wèn)題 vertical-align:middle; 將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內容不要換行。
2. margin加倍的問(wèn)題 設置為float的div在ie下設置的margin會(huì )加倍。這是一個(gè)ie6都存在的bug。解決方案是在這個(gè)div里面加上display:inline; 例如: <#div id=”imfloat”> 相應的css為 #IamFloat{ float:left; margin:5px;/*IE下理解為10px*/ display:inline;/*IE下再理解為5px*/}
3.浮動(dòng)ie產(chǎn)生的雙倍距離 #box{ float:left; width:100px; margin:0 0 0 100px; //這種情況之下IE會(huì )產(chǎn)生200px的距離 display:inline; //使浮動(dòng)忽略} 這里細說(shuō)一下block與inline兩個(gè)元素:block元素的特點(diǎn)是,總是在新行上開(kāi)始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點(diǎn)是,和其他元素在同一行上,不可控制(內嵌元素); #box{ display:block; //可以為內嵌元素模擬為塊元素 display:inline; //實(shí)現同一行排列的效果 diplay:table;
4 IE與寬度和高度的問(wèn)題 IE 不認得min-這個(gè)定義,但實(shí)際上它把正常的width和height當作有min的情況來(lái)使。這樣問(wèn)題就大了,如果只用寬度和高度,正常的瀏覽器里這兩個(gè)值就不會(huì )變,如果只用min-width和min-height的話(huà),IE下面根本等于沒(méi)有設置寬度和高度。 比如要設置背景圖片,這個(gè)寬度是比較重要的。要解決這個(gè)問(wèn)題,可以這樣: #box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
5.頁(yè)面的最小寬度 min -width是個(gè)非常方便的CSS命令,它可以指定元素最小也不能小于某個(gè)寬度,這樣就能保證排版一直正確。但IE不認得這個(gè),而它實(shí)際上把width當做最小寬度來(lái)使。為了讓這一命令在IE上也能用,可以把一個(gè)
放到 標簽下,然后為div指定一個(gè)類(lèi), 然后CSS這樣設計: #container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );} 第一個(gè)min-width是正常的;但第2行的width使用了Javascript,這只有IE才認得,這也會(huì )讓你的HTML文檔不太正規。它實(shí)際上通過(guò)Javascript的判斷來(lái)實(shí)現最小寬度。
6.DIV浮動(dòng)IE文本產(chǎn)生3象素的bug 左邊對象浮動(dòng),右邊采用外補丁的左邊距來(lái)定位,右邊對象內的文本會(huì )離左邊有3px的間距. #box{ float:left; width:800px;} #left{ float:left; width:50%;} #right{ width:50%;} *html #left{ margin-right:-3px; //這句是關(guān)鍵}
7.IE捉迷藏的問(wèn)題 當div應用復雜的時(shí)候每個(gè)欄中又有一些鏈接,DIV等這個(gè)時(shí)候容易發(fā)生捉迷藏的問(wèn)題。 有些內容顯示不出來(lái),當鼠標選擇這個(gè)區域是發(fā)現內容確實(shí)在頁(yè)面。 解決辦法:對#layout使用line-height屬性 或者給#layout使用固定高和寬。頁(yè)面結構盡量簡(jiǎn)單。
8.float的div閉合;清除浮動(dòng);自適應高度;
、 例如:<#div id=”floatA” ><#div id=”floatB” ><#div id=” NOTfloatC” >這里的NOTfloatC并不希望繼續平移,而是希望往下排。(其中floatA、floatB的屬性已經(jīng)設置為 float:left;) 這段代碼在IE中毫無(wú)問(wèn)題,問(wèn)題出在FF。原因是NOTfloatC并非float標簽,必須將float標簽閉合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之間加上 < #div class=”clear”>這個(gè)div一定要注意位置,而且必須與兩個(gè)具有float屬性的div同級,之間不能存在嵌套關(guān)系,否則會(huì )產(chǎn)生異常。 并且將clear這種樣式定義為為如下即可: .clear{ clear:both;}
、谧鳛橥獠 wrapper 的 div 不要定死高度,為了讓高度能自動(dòng)適應,要在wrapper里面加上overflow:hidden; 當包含float的 box的時(shí)候,高度自動(dòng)適應在IE下無(wú)效,這時(shí)候應該觸發(fā)IE的layout私有屬性(萬(wàn)惡的IE啊!)用zoom:1;可以做到,這樣就達到了兼容。 例如某一個(gè)wrapper如下定義: .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}
、蹖τ谂虐,我們用得最多的css描述可能就是float:left.有的時(shí)候我們需要在n欄的float div后面做一個(gè)統一的背景,譬如:
比如我們要將page的背景設置成藍色,以達到所有三欄的背景顏色是藍色的目的,但是我們會(huì )發(fā)現隨著(zhù)left center right的向下拉長(cháng),而 page居然保存高度不變,問(wèn)題來(lái)了,原因在于page不是float屬性,而我們的page由于要居中,不能設置成float,所以我們應該這樣解決 再嵌入一個(gè)float left而寬度是100%的DIV解決之
、苋f(wàn)能float 閉合(非常重要!) 關(guān)于 clear float 的原理可參見(jiàn) [How To Clear Floats Without Structural Markup],將以下代碼加入Global CSS 中,給需要閉合的div加上 class="clearfix" 即可,屢試不爽. /* Clear Fix */ .clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; } .clearfix { display:inline-block; } /* Hide from IE Mac */ .clearfix {display:block;} /* End hide from IE Mac */ /* end of clearfix */ 或者這樣設置:.hackbox{ display:table; //將對象作為塊元素級的表格顯示}
11.高度不適應 高度不適應是當內層對象的高度發(fā)生變化時(shí)外層高度不能自動(dòng)進(jìn)行調節,特別是當內層對象使用margin 或paddign 時(shí)。 例: #box {background-color:#eee; } #box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
p對象中的內容解決方法:在P對象上下各加2個(gè)空的div對象CSS代碼:.1{height:0px;overflow:hidden;}或者為DIV加上border屬性。
12 .IE6下為什么圖片下有空隙產(chǎn)生 解決這個(gè)BUG的方法也有很多,可以是改變html的排版,或者設置img 為display:block 或者設置vertical-align 屬性為 vertical-align:top | bottom |middle |text-bottom 都可以解決.
13.如何對齊文本與文本輸入框 加上 vertical-align:middle;
14.web標準中定義id與class有什么區別嗎 一.web標準中是不容許重復ID的,比如 div id="aa" 不容許重復2次,而class 定義的是類(lèi),理論上可以無(wú)限重復, 這樣需要多次引用的定義便可以使用他. 二.屬性的優(yōu)先級問(wèn)題 ID 的優(yōu)先級要高于class,看上面的例子 三.方便JS等客戶(hù)端腳本,如果在頁(yè)面中要對某個(gè)對象進(jìn)行腳本操作,那么可以給他定義一個(gè)ID,否則只能利用遍歷頁(yè)面元素加上指定特定屬性來(lái)找到它,這是相對浪費時(shí)間資源,遠遠不如一個(gè)ID來(lái)得簡(jiǎn)單.
15. LI中內容超過(guò)長(cháng)度后以省略號顯示的方法 此方法適用與IE與OP瀏覽器
16.為什么web標準中IE無(wú)法設置滾動(dòng)條顏色了 解決辦法是將body換成html
17.為什么無(wú)法定義1px左右高度的容器 IE6下這個(gè)問(wèn)題是因為默認的行高造成的,解決的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px
18.怎么樣才能讓層顯示在FLASH之上呢 解決的辦法是給FLASH設置透明
19.怎樣使一個(gè)層垂直居中于瀏覽器中 這里我們使用百分比絕對定位,與外補丁負值的方法,負值的大小為其自身寬度高度除以二
【CSS的小技巧精編】相關(guān)文章:
影視剪輯的小技巧精編07-14
css 書(shū)寫(xiě)技巧 CSS 技巧教程簡(jiǎn)介07-02
編舞小技巧09-24
小編教你如何掌控黑白攝影的技巧方法06-13
關(guān)于HTML技巧之CSS的優(yōu)先權10-05
編舞技巧大全06-07
CSS實(shí)用教程:CSS命名10-05
div+css必看的css重則06-27
攀巖技巧小技巧09-07