CSS控制input樣式和懸停交互
本文向大家描述一下用CSS控制輸入框input樣式和懸停交互的方法,直接在CSS文件中寫入懸停交互效果的小腳本,不但實現(xiàn)了內(nèi)容與表現(xiàn)分離,而且使xhtml代碼減小,促進了代碼重用、更加的優(yōu)化。
用CSS控制輸入框input樣式和懸停交互
我們在制作表單的時候,往往希望有鼠標(biāo)懸停交互效果。實現(xiàn)這樣的效果,我們有多種方法:
1、在xhtml中直接寫入onmouseover、onmouseout腳本就可以實現(xiàn)了,但這樣就違背了web標(biāo)準(zhǔn)所倡導(dǎo)的內(nèi)容、表現(xiàn)相分離的原則。以后若要對此進行修改也將會很繁瑣。這樣直接寫入xhtml也會讓頁面代碼增加,如果只是一個input輸入框或許是無所謂的,如果是幾十個幾百個,增加的字節(jié)數(shù)就很寵大了。
2、在xhtml中加入小腳本,鼠標(biāo)經(jīng)過時可以切換CSS。具體內(nèi)容請看這篇文章。雖然實現(xiàn)了內(nèi)容、表現(xiàn)相分離,以后的修改也會很方便。但同樣會讓頁面代碼增加。
我們有沒有更好的辦法來實現(xiàn)輸入框input樣式懸停交互的效果呢?
我們今天就討論這樣的方法,直接在CSS文件中寫入懸停交互效果的小腳本。不但實現(xiàn)了內(nèi)容與表現(xiàn)分離,而且使xhtml代碼減小,促進了代碼重用、更加的優(yōu)化。
這一方法的原理,主要是應(yīng)用CSS的expression,關(guān)于expression的更多介紹,請看這篇文章。我們看下面的CSS代碼:
ExampleSourceCode
- input{star:expression(
- onmouseover=function(){this.style.borderColor="#060"},
- onmouseout=function(){this.style.borderColor="#c00"})}
上面的代碼,聲明了,當(dāng)鼠標(biāo)移上去的時候,邊框的顏色是#060,當(dāng)鼠標(biāo)移除的時候邊框的顏色是#c00。我們看一下運行效果:
SourceCodetoRun
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"
- content="text/html;charset=utf-8"/>
- <title>52css.com</title>
- <styletypestyletype="text/css">
- <!--
- input{border:1pxsolid#c00;}
- input{star:expression(
- onmouseover=function(){this.style.borderColor="#060"},
- onmouseout=function(){this.style.borderColor="#c00"})}
- -->
- </style>
- </head>
- <body>
- 姓名:<inputtypeinputtype="text"/><br/>
- 年齡:<inputtypeinputtype="text"/><br/>
- 性別:<inputtypeinputtype="text"/><br/>
- 手機:<inputtypeinputtype="text"/><br/>
- 地址:<inputtypeinputtype="text"/><br/>
- </body>
- </html>
[可先修改部分代碼再運行查看效果]
在定義輸入框input樣式懸停交互效果的同時,你可以單獨的為input輸入框另外定義class類,用類與expression同時控制input輸入框。更多的東西需要你自己多思考,多試驗了。:)
【編輯推薦】