例子: 1.給元素固有屬性賦值 下面是定義container容器的寬度,如果<725就為自己的寬度,否則就等于725,相當于max-width:725px;。 <style type="text/css" media="screen"> #container { width: expression((documentElement.clientWidth > 725) ? "725px" : "auto" ); } </style> 2.給元素自定義屬性賦值 例如,消除頁面上的鏈接虛線框。 通常的做法是: <a href="link1.htm" onfocus="this.blur()">link1</a> <a href="link2.htm" onfocus="this.blur()">link2</a> <a href="link3.htm" onfocus="this.blur()">link3</a> 粗看或許還體現(xiàn)不出采用expression的優(yōu)勢,但如果你的頁面上有幾十甚至上百個鏈接,這時的你難道還會機械式地Ctrl+C,Ctrl+V么,何況兩者一比較,哪個產(chǎn)生的冗余代碼更多呢? 采用expression的做法如下: <style type="text/css"> a {star : expression(this.onFocus=this.blur());} </style> <a href="link1.htm">link1</a> <a href="link2.htm">link2</a> <a href="link3.htm">link3</a> 說明:里面的star就是自己任意定義的屬性,你可以隨自己喜好另外定義,接著包含在expression()里的語句就是JS腳本, 在自定義屬性與expression之間可別忘了還有一個引號,因為實質(zhì)還是CSS,所以放在style標簽內(nèi),而非script內(nèi)。OK,這樣就很容易 地用一句話實現(xiàn)了頁面中的鏈接虛線框的消除。不過你先別得意,如果觸發(fā)的特效是CSS的屬性變化,那么出來的結(jié)果會跟你的本意有差別。例如你想隨鼠標的移 進移出而改變頁面中的文本框顏色更改,你可能想當然的會認為應(yīng)該寫為 <style type="text/css"> input {star : expression(onmouseover=this.style.backgroundColor="#F5F5F5"; onmouseout=this.style.backgroundColor="#FFFFFF")} </style> <input type="text"> <input type="text"> <input type="text"> 可結(jié)果卻是出現(xiàn)腳本出錯,正確的寫法應(yīng)該把CSS樣式的定義寫進函數(shù)內(nèi),如下所示: <style type="text/css"> input {star : expression(onmouseover=function() {this.style.backgroundColor="#FF0000"}, onmouseout=function(){this.style.backgroundColor="#FFFFFF"}) } </style> <input type="text"> <input type="text"> <input type="text"> 注意:不是非常需要,一般不建議使用expression,因為expression對瀏覽器資源要求比較高。
]]>
值 | 描述 |
---|---|
separate | 默認值。邊框會被分開。不會忽略 border-spacing 和 empty-cells 屬性。 |
collapse | 如果可能,邊框會合并為一個單一的邊框。會忽略 border-spacing 和 empty-cells 屬性。 |
inherit | 規(guī)定應(yīng)該從父元素繼承 border-collapse 屬性的值。 |
細邊線table表格樣式
table {width:100%; border:1px solid #ccc; border-collapse:collapse;}
table td {border:1px solid #ccc; border-collapse:collapse; padding:10px 15px; color:#999;}
下劃線"_":ie6支持 ie7 firefox不支持
!important; : firefox ie7支持 ,ie6部分支持
IE6支持重定義中的!important,例如: .yuanxin {color:#e00!important;} .yuanxin {color:#000;} 你將會發(fā)現(xiàn)定義了樣式class="yuanxin"時,在IE下,字體顯示為紅色(#e00)。 但不支持同一定義中的!important。例如: .yuanxin {color:#e00!important;color:#000} 此時在IE6下不支持,你將會發(fā)現(xiàn)定義了樣式class="yuanxin"時,字體顯示為黑色(#000)。
HTML頭部引用(if IE)Hack:針對所有IE:<!--[if IE]><!--您的代碼--><![endif]-->,針對IE6及以下版本:<!--[if lt IE 7]><!--您的代碼--><![endif]-->,這類Hack不僅對CSS生效,對寫在判斷語句里面的所有代碼都 會生效。
選擇器Hack:比如 IE6能識別*html .class{},IE7能識別*+html .class{}或者*:first-child+html .class{}。等等
瀏覽器優(yōu)先級別:FF<IE7<IE6,CSS hack書寫順序一般為FF IE7 IE6
以: " #demo {width:100px;} "為例;
#demo {width:100px;} /*被FIREFOX,IE6,IE7執(zhí)行.*/
* html #demo {width:120px;} /*會被IE6執(zhí)行,之前的定義會被后來的覆蓋,所以#demo的寬度在IE6就為120px; */
*+html #demo {width:130px;} /*會被IE7執(zhí)行*/ ---------------
所以最后,#demo的寬度在三個瀏覽器的解釋為:
FIREFOX:100px;
ie6:120px;
ie7:130px;
IE8 最新css hack:
"\9" 例:"border:1px \9;".這里的"\9"可以區(qū)別所有IE和FireFox.
"\0" IE8識別,IE6、IE7不能.
_background-color:#CDCDCD; /* ie 6*/
*background-color:#dddd00; /* ie 7*/
background-color:red\0; /* ie 8/9*/
background-color:blue\9\0;
]]><ul id="nav">
<li><a href="#">這是顯示的標題1</a>
<ul>
<li><a href="#">這是列表中的內(nèi)容1</a></li>
<li><a href="#">這是列表中的內(nèi)容2</a></li>
<li><a href="#">這是列表中的內(nèi)容3</a></li>
<li><a href="#">這是列表中的內(nèi)容4</a></li>
</ul>
</li>
<li><a href="#">這是顯示的標題2</a>
<ul>
<li><a href="#">這是列表中的內(nèi)容5</a></li>
<li><a href="#">這是列表中的內(nèi)容6</a></li>
<li><a href="#">這是列表中的內(nèi)容7</a></li>
<li><a href="#">這是列表中的內(nèi)容8</a></li>
</ul>
</li>
</ul>
#nav, #nav ul{ /* all lists */
padding: 0;
margin: 0;
list-style: none;
line-height: 1;
}
#nav li{ /* all list items */
float: left;
width: 10em;
}
#nav li ul{ /* second-level lists */
position: absolute;
background: orange;
width: 10em;
left: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers 這里用left:-999em的也行,用display:none的也行,看您喜歡用啥 */
}
*+ html #nav li ul{margin: 16px 0 0 -95px;} /* 二級菜單顯示位置調(diào)整IE7 */
*html #nav li ul{margin: 16px 0 0 -95px;} /* 二級菜單顯示位置調(diào)整 IE6 */
#nav li:hover ul, #nav li.sfhover ul{
left: auto;/* 如果上面用left的了,那么這就不用改,最多改個數(shù),如果用display:none了,那么這里改成display:block*/
}
由于ie6不支持li:hover ,所以#nav li:hover ul,失效,必須使用js控制樣式sfhover,需要在頭部添加以下js代碼:
<script type="text/javascript"><!--//--><![CDATA[//><!--
sfHover =function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//--><!]]>
</script>
]]>
<ul id="nav">
<li><a href="<?url ctrl=home?>">首 頁</a></li>
<li><a href="#">|</a></li>
<li><a href="#">關(guān)于我們</a>
<!-- 下拉部分-->
<ul><li><a href="#">公司簡介</a></li>
<li><a href="#">總經(jīng)理致辭</a></li>
</ul></li>
<!-- 下拉部分-->
</ul>
js就幾行代碼:
<script type=text/javascript><!--//--><![CDATA[//><!--
function menuFix() {
var sfEls = document.getElementById("nav").getElementsByTagName("li");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMouseDown=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMouseUp=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),
"");
}
}
}
window.onload=menuFix;
//--><!]]></script>
css代碼:
#nav {
line-height: 24px; list-style-type: none;
}
#nav a {
display: block; text-align:center;
}
#nav a:link {
color:#a6ce38; text-decoration:none;
}
#nav a:visited {
color:#a6ce38;text-decoration:none;
}
#nav a:hover {
color:#F00; text-decoration:none;;
}
#nav li {
float: left; padding-left:15px; font-family:"微軟雅黑"; font-size:14px;
}
#nav li a:hover{
color:#F00;
}
#nav li ul {
line-height:18px; list-style-type: none;text-align:left;
left: -999em; width:120px; position: absolute;
}
#nav li ul li{
background: #FFF;/*沒有背景在ie6下會有一點小問題*/
float:left; width:100px;
font-family:"微軟雅黑"; font-size:12px; color:#F00;
margin:0px;padding:0;
clear:both;
}
#nav li ul a{
display: block; width:100px;text-align:left;
}
#nav li ul a:link {
color:#a6ce38; text-decoration:none;
}
#nav li ul a:visited {
color:#a6ce38; text-decoration:none;
}
#nav li ul a:hover {
color:#FFF; text-decoration:none;
background:#F00;
}
#nav li:hover ul {
left: auto;
}
#nav li.sfhover ul {
left: auto;
}
以下代碼可以使input框變成只讀且禁用模式
<input name="demo" type="text" disabled value="value" readonly="true" />
CSS控制字數(shù)多,隱藏多余字
text-overflow:ellipsis;word-break:keep-all;overflow:hidden; white-space:nowrap;
顯示豎的滾動條
overflow-y:auto;height:220px;
//表格不被撐開,換行
style="word-break:break-all"
控制input或者textarea背景透明的樣式
background-color: transparent;
實現(xiàn)細邊的表格
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<tr bgcolor="#eff3ff">
<td>標題:用戶:</td>
</tr>
<tr bgColor="#ffffff">
<td>內(nèi)容:</td>
</tr>
</table>
或者簡單通過這個屬性控制
style="border-collapse:collapse"