Learn HTML Forms by Building a Registration Form - Step 18

Tell us what’s happening:
I can’t seem to understand the id and for elements being used together. It would be very kind if someone tells me what to do

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <title>Registration Form</title>
    <link rel="stylesheet" href="styles.css" />
    <h1>Registration Form</h1>
    <p>Please fill out this form with the required information</p>
    <form method="post" action='https://register-demo.freecodecamp.org'>

<!-- User Editable Region -->

        <label>Enter Your First Name: <input id="first-name" for="first-name" /></label>
        <label>Enter Your Last Name: <input id="last-name" for="last-name" /></label>
        <label>Enter Your Email: <input id="email" for="email" /></label>
        <label>Create a New Password: <input id="new-password" for="new-password" /></label>

<!-- User Editable Region -->

/* file: styles.css */
body {
  width: 100%;
  height: 100vh;
  margin: 0;
  background-color: #1b1b32;
  color: #f5f6f7;

label {
  display: block;
  margin: 0.5rem 0;

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36

Challenge: Learn HTML Forms by Building a Registration Form - Step 18

Link to the challenge:

Welcome to our community!

The ‘for’ attribute goes into the opening <label> tag. The corresponding ‘id’ attribute goes into the <input> tag. Those values are the same:


“smth” is the same for the both attributes.

Welcome to the community :smiley:

It can be a bit tricky to rap your head around at the beginning.

The way the for attribute is used with an ID is similar to saying:
This label is ‘for’ the element with this ‘id’

The more you use them the easier it will be to understand the relationship.
Remember that IDs are case sensitive