- HTML type Attribute
- Definition and Usage
- Browser Support
- Syntax
- Attribute Values
- More Examples
- Input type: button
- Input type: checkbox
- Input type: color
- Input type: date
- Input type: datetime-local
- Input type: email
- Input type: file
- Input type: hidden
- Input type: image
- Input type: month
- Input type: number
- Input type: password
- Input type: radio
- Input type: range
- Input type: reset
- Input type: search
- Input type: submit
- Input type: tel
- Input type: text
- Input type: time
- Input type: url
- Input type: week
- 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 type Attribute
An HTML form with two input fields; one text field and one submit button:
More «Try it Yourself» examples below.
Definition and Usage
The type attribute specifies the type of element to display.
If the type attribute is not specified, the default type is «text».
Browser Support
Syntax
Attribute Values
Value | Description |
---|---|
button | Defines a clickable button (mostly used with a JavaScript to activate a script) |
checkbox | Defines a checkbox |
color | Defines a color picker |
date | Defines a date control (year, month, day (no time)) |
datetime-local | Defines a date and time control (year, month, day, time (no timezone) |
Defines a field for an e-mail address | |
file | Defines a file-select field and a «Browse» button (for file uploads) |
hidden | Defines a hidden input field |
image | Defines an image as the submit button |
month | Defines a month and year control (no timezone) |
number | Defines a field for entering a number |
password | Defines a password field |
radio | Defines a radio button |
range | Defines a range control (like a slider control) |
reset | Defines a reset button |
search | Defines a text field for entering a search string |
submit | Defines a submit button |
tel | Defines a field for entering a telephone number |
text | Default. Defines a single-line text field |
time | Defines a control for entering a time (no timezone) |
url | Defines a field for entering a URL |
week | Defines a week and year control (no timezone) |
More Examples
Input type: button
A push button that activates a JavaScript when it is clicked:
Input type: checkbox
Checkboxes let a user select one or more options of a limited number of choices:
Input type: color
Select a color from a color picker:
Input type: date
Input type: datetime-local
Define a date and time control (no time zone):
Input type: email
Define a field for an e-mail address (will be automatically validated when submitted):
Input type: file
Define a file-select field and a «Browse. » button (for file uploads):
Input type: hidden
Define a hidden field (not visible to a user).
A hidden field often stores what database record that needs to be updated when the form is submitted:
Input type: image
Define an image as a submit button:
Input type: month
Define a month and year control (no time zone):
Input type: number
Define a field for entering a number (You can also set restrictions on what numbers are accepted):
Use the following attributes to specify restrictions:
- max — specifies the maximum value allowed
- min — specifies the minimum value allowed
- step — specifies the legal number intervals
- value — Specifies the default value
Input type: password
Define a password field (characters are masked):
Input type: radio
Radio buttons let a user select only one of a limited number of choices:
Input type: range
Define a control for entering a number whose exact value is not important (like a slider control). Default range is 0 to 100. However, you can set restrictions on what numbers are accepted with the min, max, and step attributes:
Use the following attributes to specify restrictions:
- max — specifies the maximum value allowed
- min — specifies the minimum value allowed
- step — specifies the legal number intervals
- value — Specifies the default value
Input type: reset
Define a reset button (resets all form values to default values):
Tip: Use the reset button carefully! It can be annoying for users who accidentally activate the reset button.
Input type: search
Define a search field (like a site search, or Google search):
Input type: submit
Input type: tel
Define a field for entering a telephone number:
Input type: text
Define two single-line text fields that a user can enter text into:
Input type: time
Define a control for entering a time (no time zone):
Input type: url
Define a field for entering a URL:
Tip: Safari on iPhone recognizes the url input type, and changes the on-screen keyboard to match it (adds .com option).
Input type: week
Define a week and year control (no time zone):
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: