- CSS Forms
- Styling Input Fields
- Example
- Padded Inputs
- Example
- Bordered Inputs
- Example
- Example
- Colored Inputs
- Example
- Focused Inputs
- Example
- Example
- Input with icon/image
- Example
- Animated Search Input
- Example
- Styling Textareas
- Example
- Styling Select Menus
- Example
- Styling Input Buttons
- Example
- Responsive Form
- Aligned Form
- HTML Tag
- Definition and Usage
- Tips and Notes
- Browser Support
- Attributes
- Global Attributes
- Event Attributes
- Related Pages
CSS Forms
The look of an HTML form can be greatly improved with CSS:
Styling Input Fields
Use the width property to determine the width of the input field:
Example
The example above applies to all elements. If you only want to style a specific input type, you can use attribute selectors:
- input[type=text] — will only select text fields
- input[type=password] — will only select password fields
- input[type=number] — will only select number fields
- etc..
Padded Inputs
Use the padding property to add space inside the text field.
Tip: When you have many inputs after each other, you might also want to add some margin , to add more space outside of them:
Example
Note that we have set the box-sizing property to border-box . This makes sure that the padding and eventually borders are included in the total width and height of the elements.
Read more about the box-sizing property in our CSS Box Sizing chapter.
Bordered Inputs
Use the border property to change the border size and color, and use the border-radius property to add rounded corners:
Example
If you only want a bottom border, use the border-bottom property:
Example
Colored Inputs
Use the background-color property to add a background color to the input, and the color property to change the text color:
Example
Focused Inputs
By default, some browsers will add a blue outline around the input when it gets focus (clicked on). You can remove this behavior by adding outline: none; to the input.
Use the :focus selector to do something with the input field when it gets focus:
Example
Example
Input with icon/image
If you want an icon inside the input, use the background-image property and position it with the background-position property. Also notice that we add a large left padding to reserve the space of the icon:
Example
input[type=text] <
background-color: white;
background-image: url(‘searchicon.png’);
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
>
Animated Search Input
In this example we use the CSS transition property to animate the width of the search input when it gets focus. You will learn more about the transition property later, in our CSS Transitions chapter.
Example
input[type=text] <
transition: width 0.4s ease-in-out;
>
input[type=text]:focus width: 100%;
>
Styling Textareas
Tip: Use the resize property to prevent textareas from being resized (disable the «grabber» in the bottom right corner):
Example
textarea <
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
resize: none;
>
Styling Select Menus
Example
select <
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
>
Styling Input Buttons
Example
input[type=button], input[type=submit], input[type=reset] <
background-color: #04AA6D;
border: none;
color: white;
padding: 16px 32px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;
>
/* Tip: use width: 100% for full-width buttons */
For more information about how to style buttons with CSS, read our CSS Buttons Tutorial.
Responsive Form
Resize the browser window to see the effect. When the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other.
Advanced: The following example uses media queries to create a responsive form. You will learn more about this in a later chapter.
Aligned Form
An example of how to style labels together with inputs to create a horizontal aligned form:
HTML Tag
An HTML form with three input fields; two text fields and one submit button:
Definition and Usage
The tag specifies an input field where the user can enter data.
The element is the most important form element.
The element can be displayed in several ways, depending on the type attribute.
The different input types are as follows:
Look at the type attribute to see examples for each input type!
Tips and Notes
Browser Support
Attributes
Attribute | Value | Description |
---|---|---|
accept | file_extension audio/* video/* image/* media_type | Specifies a filter for what file types the user can pick from the file input dialog box (only for type=»file») |
alt | text | Specifies an alternate text for images (only for type=»image») |
autocomplete | on off | Specifies whether an element should have autocomplete enabled |
autofocus | autofocus | Specifies that an element should automatically get focus when the page loads |
checked | checked | Specifies that an element should be pre-selected when the page loads (for type=»checkbox» or type=»radio») |
dirname | inputname.dir | Specifies that the text direction will be submitted |
disabled | disabled | Specifies that an element should be disabled |
form | form_id | Specifies the form the element belongs to |
formaction | URL | Specifies the URL of the file that will process the input control when the form is submitted (for type=»submit» and type=»image») |
formenctype | application/x-www-form-urlencoded multipart/form-data text/plain | Specifies how the form-data should be encoded when submitting it to the server (for type=»submit» and type=»image») |
formmethod | get post | Defines the HTTP method for sending data to the action URL (for type=»submit» and type=»image») |
formnovalidate | formnovalidate | Defines that form elements should not be validated when submitted |
formtarget | _blank _self _parent _top framename | Specifies where to display the response that is received after submitting the form (for type=»submit» and type=»image») |
height | pixels | Specifies the height of an element (only for type=»image») |
list | datalist_id | Refers to a element that contains pre-defined options for an element |
max | number date | Specifies the maximum value for an element |
maxlength | number | Specifies the maximum number of characters allowed in an element |
min | number date | Specifies a minimum value for an element |
minlength | number | Specifies the minimum number of characters required in an element |
multiple | multiple | Specifies that a user can enter more than one value in an element |
name | text | Specifies the name of an element |
pattern | regexp | Specifies a regular expression that an element’s value is checked against |
placeholder | text | Specifies a short hint that describes the expected value of an element |
readonly | readonly | Specifies that an input field is read-only |
required | required | Specifies that an input field must be filled out before submitting the form |
size | number | Specifies the width, in characters, of an element |
src | URL | Specifies the URL of the image to use as a submit button (only for type=»image») |
step | number any | Specifies the interval between legal numbers in an input field |
type | button checkbox color date datetime-local file hidden image month number password radio range reset search submit tel text time url week | Specifies the type element to display |
value | text | Specifies the value of an element |
width | pixels | Specifies the width of an element (only for type=»image») |
Global Attributes
Event Attributes
Related Pages
- Input Button Object
- Input Checkbox Object
- Input Color Object
- Input Date Object
- Input Datetime Object
- Input DatetimeLocal Object
- Input Email Object
- Input FileUpload Object
- Input Hidden Object
- Input Image Object
- Input Month Object
- Input Number Object
- Input Password Object
- Input Range Object
- Input Radio Object
- Input Reset Object
- Input Search Object
- Input Submit Object
- Input Text Object
- Input Time Object
- Input URL Object
- Input Week Object