DEV Community

Cover image for 10 HTML Attributes that Make Things a Lot Easier
Ryan
Ryan

Posted on • Edited on

10 HTML Attributes that Make Things a Lot Easier

With over a 100 HTML attributes available, it's almost impossible to remember them all. While we are already aware of several such attributes, there are a few we usually tend to forget or probably haven't heard of yet. At times we end up using JavaScript to add a specific functionality only to later realize that there is an HTML attribute for the same.

In this short article I've tried to list down a few HTML attributes that can in fact make things a lot simple. No doubt, you may have come across, or in fact used, some of them before. But, you are sure to find a few that can be added to your current list of 'favourite' HTML attributes.

1. high / low

You may have used the min and 'max' attributes on the meter element. But, there are two more attributes that can help you add more information to the element - the high and the low attributes. These attributes help you specify a range as shown below:

<label for="wed">Inventory on Wednesday</label>
<meter id="wed" min="0" low="45" high="95" max="100" value="70"></meter>
<br>
<label for="thu">Inventory on Thursday</label>
<meter id="thu" min="0" low="45" high="95" max="100" value="98"></meter>
Enter fullscreen mode Exit fullscreen mode

In the above code, the low and the high attributes specify a range. If the value is within the range, the meter displays a green colour, and if the value is below or above the set range, the meter turns yellow.

Image of the meter HTML attribute

2.type="search"

We've been using the type attribute in almost every other project, while working on forms. But, have you heard about the 'search' attribute value? Well, at least I haven't, or probably I have been living under a massive rock πŸ˜‚.

<label for="website-search">Search this Website:</label>
<input type="search" id="website-search">
Enter fullscreen mode Exit fullscreen mode

This value was designed for users to enter search queries. It is recommended to use it with a label tag for accessibility purposes.

Image displaying the 'search' value for type attribute
Also, notice that as you start typing, the search box displays a 'X' button at the extreme right that allows you to delete the search term you are currently typing.

3. maxlength

If you've been using JavaScript to restrict the user-input to a specific number of characters, here's an attribute that can make things easy for you. Simply add the 'maxlength' attribute to your input or the textarea element and specify the number of maximum character the user can input.

<label for="name">Name</label>
<input type="text" id="name" name="name" maxlength="12">
Enter fullscreen mode Exit fullscreen mode

Below is how the attribute restricts the user-input to a certain character-length.

Image displaying the maxlength HTML attribute

4. open

You've probably used the details element to create a simple accordion menu. In some cases you might want to display the contents of one of the accordion menu items even before the user clicks on it. All you need to do is simply add the 'open' attribute to the menu item that you wish to display the contents of.

<div class="accordion">
  <details open>
     <summary>First Section</summary>
     <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus reiciendis nisi harum temporibus, velit a earum
      dignissimos sapiente quae quidem!</p>
  </details>

  <details>
     <summary>Second Section</summary>
     <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus reiciendis nisi harum temporibus, velit a earum
      dignissimos sapiente quae quidem!</p>
  </details>

   <details>
     <summary>Third Section</summary>
     <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus reiciendis nisi harum temporibus, velit a earum
      dignissimos sapiente quae quidem!</p>
  </details>
</div>
Enter fullscreen mode Exit fullscreen mode

In the above code, the open attribute is applied to the first details element, and therefore, in the image below, you can see that the content of the first accordion menu item is displayed.

Image showing the 'open' HTML attribute in action

5. readonly

You can use the readonly attribute if you want to display a default value in an input field and prevent the user from changing the same. At times, you may confuse the readonly attribute with the disabled attribute.

<label for="readonly">Readonly:</label>  
<input type="text" id="readonly" name="fruits" value="apples" readonly>
<br>
<br>
<label for="readonly">Disabled:</label>  
<input type="text" id="readonly" name="fruits" disabled>
Enter fullscreen mode Exit fullscreen mode

As you can see in the image below, the readonly attribute usually has a defined value. However, the disabled attribute, on the other hand may or may not have a value. Also, a disabled input field can be recognized by its grey background.

Image displaying the readonly and disabled HTMl attributes in action

6. selected

You may have used the checked attribute to display a 'checkbox' or a 'radio' button in a checked state. Here's a similar attribute meant for displaying a selected option within the select element.

<select id="fruits">
  <option value="apple">Apple</option>
  <option value="banana">Banana</option>
  <option value="mango" selected>Mango</option>
  <option value="orange" >Orange</option>
</select>
Enter fullscreen mode Exit fullscreen mode

Here's how it looks like on the screen:

Image of the selected HTML attribute in action

7. download

If you have downloadable resources on your website, you can use the download attribute on your download links. When clicked, the resource will instantly be downloaded to the users system.

 <a href = "https://images.pexels.com/photos/268533/pexels-photo-268533.jpeg?cs=srgb&dl=pexels-pixabay-268533.jpg&fm=jpg" download>Download Image </a>
Enter fullscreen mode Exit fullscreen mode

Here's a .gif image showing the download attribute in action:

.gif image displaying the download HTML attribute in action

8. step

If you want a user to input only a specific increment of a number, you can use the step attribute and set its value to the desired number. For instance, if you want your users to input a number that's not an odd number, you can set it to an even number, let's say 2.

<label for="units">Units Purchased:</label>
<input type="number" id="units" name="units" step="2" min="0">
Enter fullscreen mode Exit fullscreen mode

Below is the step attribute in action:

.gif image displaying the step HTML attribute in action.

9. contenteditable

If you want certain sections of your website to be editable, you can use the contenteditable attribute on the elements in those sections.

<p contenteditable>This content is editable. All you need to do is simply click on this paragraph and start editing</p>
Enter fullscreen mode Exit fullscreen mode

Note that the content is not permanently edited by adding the contenteditable attribute alone.

.gif image showing the  raw `contenteditable` endraw  HTML attribute in action

10. title

If you do not want to spend too much of time creating a custom, beautiful-looking tooltip, you can use the title attribute which does pretty much the same thing but without all the jazz.

<p title="Free High Quality Images">Unsplash</p>
Enter fullscreen mode Exit fullscreen mode

Here's how the title attribute displays the tooltip:

A .gif image displaying the 'title' HTML attribute in action

So, this was a short list of 10 HTML attributes that I feel can make your task a lot easier. In case you know of any such attributes that are equally or more useful, would love to know about them in the comment section below. Thanks for reading. Have a beautiful day.

Top comments (0)