【问题标题】:CSS of a asp textbox controlasp文本框控件的CSS
【发布时间】:2011-08-02 09:31:34
【问题描述】:

我有一个 ASP 文本框控件。当用户关注文本框时,我想将文本框的背景颜色从灰色更改为白色。

这里是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;
} 

【问题讨论】:

    标签: asp.net css textbox stylesheet


    【解决方案1】:

    编辑:我看到你更新了你的帖子,所以澄清一下:ASP 创建了一个input HTML 元素(如果我错了,请纠正我),你总是可以通过 @987654322 设置它的样式CSS中的@选择器,不需要Javascript,还要加上input.textbox:active来抓IE的一些bug...

    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.textbox 时,为什么突然使用input_text 类?你的两个选择器不匹配...

    【讨论】:

    • 我只想问一件事,为什么当我手动将样式添加到 aspx 页面而不是样式表时突出显示有效?
    • 这可能是来自其他样式表的其他样式...尝试使用background-color: #ffffc0 !important;...
    • 好吧,我刚刚在我的页面中引用了 1 个样式表。我只在我的项目中使用 1
    • 我还没有使用过 ASP,所以我不能告诉你它是否会自己生成一些默认样式表。要考虑的另一件事是浏览器具有默认样式表,请尝试包含reset.css(google it ;)。内联样式(直接在您的页面中输入)有效,因为它们更“具体”,如果您的表单包含在 ID 为 content 的 div 中,您还可以尝试添加更多选择器,例如 #content form input.textbox:focus...
    【解决方案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>
    

    【讨论】:

      【解决方案3】:
        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;
        } 
      

      【讨论】:

      • 就我所知,答案很好,但总的来说,您应该尝试留下评论来解释您所做的事情......纯代码的答案是不受欢迎的。
      • 老我知道,但这比使用 JavaScript 设置焦点要好得多。使用伪类。
      【解决方案4】:

      你不能仅仅使用 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:

      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;
      }  
      

      您可以在以下位置找到一些很好的示例:
      http://www.codeproject.com/KB/aspnet/inputBgOnFocus.aspx
      http://viralpatel.net/blogs/2009/09/change-form-input-textbox-style-focus-jquery.html
      http://forums.asp.net/t/1134964.aspx/1

      【讨论】:

      • 我已经按照你说的做了,但是没有用……我已经编辑了主帖中的代码……
      • 对不起。忘记更改 css 类名。更新了答案,看看 CSS 类名。应该是focus
      • 同样类型应该是text/javascript。我的错!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多