开发者

Input width defined at css level and at the element level

<style>

input[type="text"] 
{
    width: 200px;
    border: 1px solid #CCC;
}

</s开发者_运维问答tyle>
<body>

<input type="text" name="test" value="test" size="5" />
</body>

When this is viewed on browser (Firefox 5), the "size" it appears is a fixed 200px. It seems the size I specified is completely ignored.

This is from a MVC project, and that is the default style css that comes with it. For the time being, I took off the width: 200px. But is there a way to keep it there, and override it at the "input" level?

I also tried

<input type="text" name="test" value="test" width="50px" />

It did not override at all.


If you want to override the CSS width at the element level, try applying the style tag to the element directly:

<input type="text" name="test" value="test" style="width: 50px;" />

This works for me:

<html>
   <style>

      input[type="text"] 
      {
         width: 200px;
         border: 1px solid #CCC;
      }
</style>
<body>
      <input type="text" name="test" value="test" style="width: 50px;" />
</body>
</html>

Edited to Add:

Yes, mixing HTML w/CSS is considered a no-no, so the proper solution would be to extract it out to a class in the end:

.my_text_box {
    width: 50px;
 }

Then:

<input type="text" name="test" value="test" class="my_text_box" />


Don't set display style in the HTML.

Use:

<input class="narrowInput" type="text" name="test" value="test" />

Or:

<input id="narrowInput" type="text" name="test" value="test" />

Only don't use "narrowInput". Use a name that has a business meaning, that is: one that describes the purpose of the input data.

Then the CSS is:

input.narrowInput
{
    width: 50px;
}

Or:

#narrowInput
{
    width: 50px;
}


Remove either

input[type="text"] 
{
    width: 200px; //THIS
}

or

<input type="text" name="test" value="test" size="5" <--//THIS />

Choose to style using one or the other.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜