2011-04-10 25 views
4

我有一個ASP文本框控件。當用戶專注於文本框時,我想將文本框的背景顏色從灰色更改爲白色。asp文本框控件的CSS

這裏是css文件,但其重點放在文本框後沒有改變顏色。

 <script language="javascript" type="text-javascript"> 
    function DoFocus(txt) 
    { 
     txt.className = 'focus'; 
    }  
    </script> 

文本框

<asp:TextBox ID="txtFirstName" runat="server" 
     CssClass="textbox" MaxLength="50" Width="188px" onfocus="DoFocus(this)"> 

CSS

input.textbox, select, textarea 
{ 
    font-family : verdana, arial, snas-serif; 
    font-size  : 11px; 
    color   : #000000; 

    padding  : 3px; 
    background  : #f0f0f0; 
    border-left : solid 1px #c1c1c1; 
    border-top  : solid 1px #cfcfcf; 
    border-right : solid 1px #cfcfcf; 
    border-bottom : solid 1px #6f6f6f; 
} 

input.textbox:focus, input.input_text_focus 
{ 
    border-color:#646464; 
    background-color:#ffcf03; 
} 

回答

7

編輯:我看到你更新你的帖子,所以要澄清:ASP創建一個input HTML元素(糾正我,如果我米錯),你總是可以通過CSS中的:focus選擇器來設置樣式,不需要Javascript,但也可以添加input.textbox:active來捕捉一些車IE瀏覽器...

input.textbox:focus, input.textbox:active { 
    /* everything you put here will be aplied to ANY focused input element */ 
} 

從粘貼代碼來判斷,而不是

.input_text:focus, input.input_text_focus { 
    border-color:#646464; 
    background-color:#ffffc0; 
} 

使用

input.textbox:focus, input.input_text_focus { 
    ... 
} 

或者你爲什麼突然用類input_text當你第一手有input.textbox?你的兩個選擇器不匹配...

+0

只是有一件事我要問,爲什麼強調工作時,我手動添加樣式到aspx頁面,而不是樣式表? – user478636 2011-04-10 08:39:35

+0

這可能是其他樣式來自其他樣式表...嘗試使用'background-color:#ffffc0!important;'... – 2011-04-10 08:49:14

+0

以及我剛剛在我的頁面中引用了1個樣式表。我只在我的項目中使用了1 – user478636 2011-04-10 09:12:31

1

你不能通過使用CSS來做到這一點。你也必須使用JavaScript。例如:

<asp:TextBox runat="server" id="myTextbox" onfocus="DoFocus(this)" onblur="DoBlur(this)"></asp:TextBox> 

JavaScript部分:

<script language="javascript" type="text/javascript"> 
    function DoFocus(txt) 
    { 
     txt.className = 'focus'; 
    }   

    function DoBlur(txt) 
    { 
     txt.className = 'unfocus'; 
    } 
</script> 

和CSS:
http://www.codeproject.com/KB/aspnet/inputBgOnFocus.aspx
http://viralpatel.net/blogs/2009/09/change-form-input-textbox-style-focus-jquery.html

input.textbox, select, textarea, unfocus 
{ 
font-family : verdana, arial, snas-serif; 
font-size  : 11px; 
color   : #000000; 
padding  : 3px; 
background  : #f0f0f0; 
border-left : solid 1px #c1c1c1; 
border-top  : solid 1px #cfcfcf; 
border-right : solid 1px #cfcfcf; 
border-bottom : solid 1px #6f6f6f; 
} 

.focus 
{ 
    border-color:#646464; 
    background-color:#ffffc0; 
} 

你可以找到一些很好的例子

+0

我已經做了你說的,但它不工作...我已經編輯了主帖中的代碼.... – user478636 2011-04-10 08:18:40

+0

對不起。忘了更改css類名稱。更新了答案,查看了CSS類的名稱。它應該是'focus' – Kamyar 2011-04-10 08:26:45

+0

也應該是'text/javascript'類型。我的錯! – Kamyar 2011-04-10 08:32:13

2

這裏通過JavaScript的規定,使用分離的CSS類的方法:

<style type="text/css"> 
    input.FocusedStyle 
    { 
     background-color:#ffffc0; 
     border-color:#646464; 
    } 
</style> 

<script type="text/javascript"> 
    function OnBlur(textBox) { 
     textBox.className = ''; 
    } 
    function OnFocus(textBox) { 
     textBox.className += ' FocusedStyle'; 
    } 
</script> 

<asp:TextBox ID="txt" runat="server" onblur="OnBlur(this);" onfocus="OnFocus(this);"></asp:TextBox> 
2
TEXTAREA, INPUT[type="text"] 
    { 
    font-family : tahoma, arial, snas-serif; 
    font-size  : 11px; 
    color   : #000000; 

    padding  : 3px; 
    background  : #EEEfff; 
    border-left : solid 1px #c1c1c1; 
    border-top  : solid 1px #cfcfcf; 
    border-right : solid 1px #cfcfcf; 
    border-bottom : solid 1px #6f6f6f; 
    } 

    INPUT[type="text"]:focus, INPUT[type="text"]:active 
    { 
     border-color:#646464; 
     background-color:#ffcf03; 
    } 
+1

對於我所知道的所有人來說,這是一個很好的答案,但總的來說,您應該嘗試並留下評論來解釋您所做的事情......只有代碼才能回答的問題依然存在。 – McGarnagle 2012-10-06 04:58:11

+0

老我知道,但這比使用JavaScript設置焦點要好得多。使用僞類。 – ste2425 2016-02-05 14:15:00