113

I would like to change the color background in the text and input fields of a form, but when I do this it also affects the submit button! Could it be done in some other way that does not affect the button?

I have used this code:

input, textarea {
  background-color: #d1d1d1;
}
1
  • 3
    As @Damien-at-SF said, use input[type="text"] instead of input. But also use border: none; rule to avoid default text input borders. Commented Mar 22, 2016 at 16:17

4 Answers 4

190
input[type="text"], textarea {

  background-color : #d1d1d1; 

}

Edit: working example, http://jsfiddle.net/C5WxK/

Sign up to request clarification or add additional context in comments.

6 Comments

Nice! There is a border effect in the input field, but not the textarea?
Why did you use both input[type="text"] and textarea ?
They are 2 separate tags and need to be addressed separately... input[type="text"] doesn't address textarea fields.
Chrome autofill broke it for me. This answer can fix that: stackoverflow.com/questions/2781549/…
For some reason, my input fields are only being stylized the moment the page renders. Then, it fades.
|
11

The best solution is the attribute selector in CSS (input[type="text"]) as the others suggested.

But if you have to support Internet Explorer 6, you cannot use it (QuirksMode). Well, only if you have to and also are willing to support it.

In this case your only option seems to be to define classes on input elements.

<input type="text" class="input-box" ... />
<input type="submit" class="button" ... />
...

and target them with a class selector:

input.input-box, textarea { background: cyan; }

Comments

3

You want to restrict to input fields that are of type text so use the selector input[type=text] rather than input (which will apply to all input fields (e.g. those of type submit as well)).

Comments

-1

you can simply use the button tag with type="submit"

<button type="submit">Submit</button>

besides solving your problem, now you can put HTML inside it(icons for example), rather than using the value attribute to set the text.

If you need to insert a normal button inside a form, use type="button" to prevent it submitiing the form

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.