How to Style a Disabled Form Input with CSS

Introduction

When working with forms, you might need to disable certain input fields to prevent user interaction temporarily. By default, disabled form inputs look different, but you can further style them to fit the design of your form. In this guide, you'll learn how to style disabled form input fields using CSS.

Development Steps

  1. Create Basic HTML Structure: Set up a form with disabled input fields.
  2. Style the Disabled Input Fields with CSS: Use CSS to modify the appearance of disabled input fields.

Step 1: Create a Basic HTML Structure

We will create a simple form structure with fields for name and email. We will disable one of the input fields to demonstrate how to style a disabled input.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Disabled Input Styling</title>
</head>
<body>

    <!-- Step 1: Simple form with a disabled input -->
    <div class="form-container">
        <form class="styled-form">
            <div class="input-group">
                <label for="name">Name</label>
                <input type="text" id="name" placeholder="Enter your name">
            </div>
            <div class="input-group">
                <label for="email">Email (disabled)</label>
                <input type="email" id="email" placeholder="Enter your email" disabled>
            </div>
            <button type="submit" class="btn">Submit</button>
        </form>
    </div>

</body>
</html>

Explanation:

  • We created a basic form with two input fields: one for the name and one for the email. The email field is disabled to demonstrate how to style disabled inputs.

Step 2: Style the Disabled Input Fields with CSS

Now, let's style the disabled input field to look distinct but still fit into the form's overall design.

<head>
    <style>
        /* General form styles */
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f4f4f4;
        }

        .form-container {
            background-color: white;
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 400px;
        }

        .styled-form {
            display: flex;
            flex-direction: column;
        }

        .input-group {
            margin-bottom: 20px;
        }

        .input-group label {
            margin-bottom: 5px;
            font-size: 14px;
            color: #333;
        }

        .input-group input {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 16px;
            transition: border-color 0.3s ease;
        }

        .input-group input:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
        }

        /* Style for disabled input fields */
        .input-group input[disabled] {
            background-color: #e9ecef;
            color: #6c757d;
            cursor: not-allowed;
            border-color: #ccc;
        }

        /* Style the submit button */
        .btn {
            padding: 12px;
            background-color: #3498db;
            color: white;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        .btn:hover {
            background-color: #2980b9;
        }
    </style>
</head>

Explanation:

  • Disabled Input Styling: The input[disabled] selector targets disabled input fields and applies the following styles:
    • Background Color: #e9ecef, a light gray to indicate the field is inactive.
    • Text Color: #6c757d, a muted gray color for the text.
    • Cursor: not-allowed to make it clear that the field cannot be interacted with.
    • Border Color: A soft border color #ccc to show that the field is disabled but still in place.

Complete Example

Here’s the complete code for the form with styled disabled input fields:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Disabled Input Styling</title>
    <style>
        /* General form styles */
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f4f4f4;
        }

        .form-container {
            background-color: white;
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 400px;
        }

        .styled-form {
            display: flex;
            flex-direction: column;
        }

        .input-group {
            margin-bottom: 20px;
        }

        .input-group label {
            margin-bottom: 5px;
            font-size: 14px;
            color: #333;
        }

        .input-group input {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 16px;
            transition: border-color 0.3s ease;
        }

        .input-group input:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
        }

        /* Style for disabled input fields */
        .input-group input[disabled] {
            background-color: #e9ecef;
            color: #6c757d;
            cursor: not-allowed;
            border-color: #ccc;
        }

        /* Style the submit button */
        .btn {
            padding: 12px;
            background-color: #3498db;
            color: white;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        .btn:hover {
            background-color: #2980b9;
        }
    </style>
</head>
<body>

    <!-- Step 1: Simple form with a disabled input -->
    <div class="form-container">
        <form class="styled-form">
            <div class="input-group">
                <label for="name">Name</label>
                <input type="text" id="name" placeholder="Enter your name">
            </div>
            <div class="input-group">
                <label for="email">Email (disabled)</label>
                <input type="email" id="email" placeholder="Enter your email" disabled>
            </div>
            <button type="submit" class="btn">Submit</button>
        </form>
    </div>

</body>
</html>

Output

You can play with the above HTML in Online HTML Editor and Compiler. Here is the output of the above HTML page.:

Conclusion

In this guide, you learned how to style disabled form input fields using CSS. By customizing the appearance of disabled fields with different background colors, text colors, and borders, you can make your forms more consistent with the rest of your design while clearly indicating that certain fields are inactive.

Comments