askvity

How to Add a Border to a Form in HTML

Published in HTML CSS Styling 4 mins read

You can add a border to an HTML form element using CSS or JavaScript. The most common and recommended method for static styling is CSS.

HTML forms, like other block-level elements such as <div>s, can be styled with CSS properties including border. Alternatively, you can use JavaScript to dynamically set the border style, which aligns with the pattern shown in the provided references for styling elements like <div>s.

Using CSS (Recommended Approach)

CSS is the standard way to style HTML elements, including adding borders. You can apply styles using an inline style attribute, an internal <style> block in the <head>, or an external CSS file (best practice).

You'll typically target the <form> element directly or assign it a class or id to apply styles.

<form id="myForm">
  <!-- Form elements go here -->
  <label for="name">Name:</label>
  <input type="text" id="name" name="name"><br><br>

  <input type="submit" value="Submit">
</form>

Applying a Basic Border with CSS

The border shorthand CSS property is the most convenient way to set the width, style, and color of a border in one declaration.

/* Style for the form with id="myForm" */
#myForm {
  border: 2px solid #ccc; /* Sets a 2-pixel wide, solid, light grey border */
  padding: 20px;         /* Add some padding so content doesn't touch the border */
}

In this example:

  • 2px: Sets the border width.
  • solid: Sets the border style (other options include dashed, dotted, double, groove, ridge, inset, outset).
  • #ccc: Sets the border color (using a hexadecimal color code).

Individual Border Properties

You can also control the width, style, and color using separate properties:

  • border-width: Sets the thickness (e.g., 1px, medium, thick).
  • border-style: Sets the style (e.g., solid, dashed).
  • border-color: Sets the color (e.g., #333, blue, rgba(0,0,0,0.5)).

You can also set borders on specific sides (border-top, border-right, border-bottom, border-left) and their corresponding individual properties (e.g., border-top-width).

Here's an example using individual properties:

#myForm {
  border-width: 3px;
  border-style: dashed;
  border-color: blue;
  padding: 20px;
}

Using JavaScript

JavaScript can be used to add or change border styles dynamically after the page has loaded, often in response to user actions or other events.

As demonstrated in the provided references for adding borders to elements like <div>s using JavaScript (e.g., getElementById('myDiv').style.border = 'thick solid #0000FF';), you can directly set the style.border property of a form element. This method allows you to change the width, style, and color (referencing reference 2 implicitly, which mentions changing these) dynamically.

First, ensure your form has an id so JavaScript can select it:

<form id="myDynamicForm">
  <!-- Form elements -->
</form>

Then, use JavaScript to access the form element and modify its style.border property:

// Get the form element by its ID
const formElement = document.getElementById('myDynamicForm');

// Check if the element exists before trying to style it
if (formElement) {
  // Set the border property directly (similar to reference 1 pattern)
  formElement.style.border = "thick solid #0000FF"; // Example from reference 1 adapted for form

  // You can also set individual properties via style object (related to reference 2 concept)
  // formElement.style.borderWidth = "5px";
  // formElement.style.borderColor = "green";
  // formElement.style.borderStyle = "dotted";
}

This JavaScript code finds the form with the ID myDynamicForm and applies a "thick solid blue" border to it, mirroring the structure shown in reference 1. JavaScript can also be used to retrieve border property values if needed (as suggested by reference 3's example showing alert(document.getElementById("myDiv")...)).

Summary

For static styling, CSS is the preferred method to add a border to an HTML form, offering clear separation of structure and style. Use the border shorthand or individual border-width, border-style, and border-color properties.

Use JavaScript when you need to dynamically control the border based on user interaction or application logic, applying styles via the element's style property.

Related Articles