HTML-CSS: Focus Within
HTML-CSS : Exercise-19 with Solution
Using HTML, CSS changes the appearance of a form if any of its children are focused.
- Use the pseudo-class :focus-within to apply styles to a parent element if any child element gets focused.
HTML Code:
<!--License: https://bit.ly/3GjrtVF--><!-- Comment: Indicates the license information for the code -->
<!DOCTYPE html><!-- Comment: Declares the document type and version of HTML -->
<html><!-- Comment: Indicates the start of the HTML document -->
<head><!-- Comment: Contains meta-information about the HTML document -->
<meta charset="utf-8"><!-- Comment: Declares the character encoding for the document -->
<meta name="viewport" content="width=device-width"><!-- Comment: Sets the viewport width to the width of the device -->
<title>Using HTML, CSS changes the appearance of a form if any of its children are focused</title><!-- Comment: Sets the title of the document -->
</head><!-- Comment: End of the head section -->
<body><!-- Comment: Contains the content of the HTML document -->
<form><!-- Comment: Defines a form element -->
<label for="username">Username:</label><!-- Comment: Defines a label for the username input field -->
<input id="username" type="text" /><!-- Comment: Defines an input field for entering the username -->
<br /><!-- Comment: Inserts a line break -->
<label for="password">Password:</label><!-- Comment: Defines a label for the password input field -->
<input id="password" type="text" /><!-- Comment: Defines an input field for entering the password -->
</form><!-- Comment: End of the form -->
</body><!-- Comment: End of the body section -->
</html><!-- Comment: End of the HTML document -->
Explanation:
- This HTML code creates a simple form with two input fields: one for entering a username and another for entering a password.
- Each input field is accompanied by a label for better accessibility.
- The labels are associated with the input fields using the for attribute, which matches the id of the input field.
- A <br> element is used to add a line break between the two input fields for better visual separation.
- The structure follows best practices, with proper indentation and comments for clarity.
CSS Code:
<style> /* Comment: Begins the CSS styling for the HTML document */
form {
border: 2px solid #CCBC82; /* Comment: Sets the border style for the form */
padding: 8px; /* Comment: Adds padding inside the form */
border-radius: 2px; /* Comment: Sets the border radius to create rounded corners for the form */
}
form:focus-within {
background: #7CF0BD; /* Comment: Changes the background color of the form when it or its children are focused */
}
label {
display: inline-block; /* Comment: Displays labels as blocks, allowing them to have width and height properties */
width: 72px; /* Comment: Sets the width of the labels */
}
input {
margin: 4px 12px; /* Comment: Sets margin for the input fields */
}
</style> /* Comment: End of the CSS styling */
Explanation:
- The CSS code styles the HTML form and its elements.
- form styles the form element itself, setting properties like border, padding, and border radius to give it a distinct appearance.
- form:focus-within changes the background color of the form when it or its children are focused.
- label styles the label elements associated with the form inputs, making them display as inline-blocks with a fixed width.
- input styles the input fields, setting margins to control spacing around them.
HTML-CSS Editor:
See the Pen html-css-practical-exercises by w3resource (@w3resource) on CodePen.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/html-css-exercise/html-css-practical-exercises/html-css-practical-exercise-19.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics