input:invalid {
    border: 1px solid red;
    background-color: beige;
}
<form>
    <fieldset>
        <legend>사용자 정보 입력 확인</legend>
        <p>
            <label for="username">이름</label>
            <input id="username" type="text" value="홍길동">
        </p>
        <p>
            <label for="useremail">이메일</label>
            <!-- 이메일 형식을 올바로 입력하지 못한 상태의 요소: 유효성 검사를 충족하지 못 함-->
            <input id="useremail" type="email" value="account@@@exmaple.com">
        </p>
        <p>
            <button type="submit">확인</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습 이메일 형식을 올바르게 고쳐보세요.
잘못된 이메일 주소(account@@@exmaple.com)를 account@example.com처럼 올바른 형식으로 수정하면, 이메일 입력 필드의 스타일이 바뀌고 유효성 검사가 통과할 것입니다.
:invalid {
    /* ... */
}
input:invalid {
    border: 1px solid red;
    background-color: beige;
}
<form>
    <label for="email">이메일 (required, 즉시 검사)</label>
    <input id="email" type="email" required value="잘못된값@@@example.com">
</form>
실제 적용된 모습
input:invalid {
    border: 1px solid red;
    background-color: beige;
}
<form>
    <label for="maxlength">최대 글자수 (수정 시점)</label>
    <input id="maxlength" type="text" maxlength="5" value="123456">
    <small>최대 5글자</small>
</form>
실제 적용된 모습
form:invalid {
    border: 1px solid red;
    background-color: beige;
}
form {
    padding: 1em;
}
<form>
    <fieldset>
        <legend>사용자 정보 입력 확인</legend>
        <p>
            <label for="username">이름</label>
            <input id="username" type="text" value="홍길동">
        </p>
        <p>
            <label for="useremail">이메일</label>
            <!-- 이메일 형식을 올바로 입력하지 못한 상태의 요소: 유효성 검사를 충족하지 못 함-->
            <input id="useremail" type="email" value="account@@@exmaple.com">
        </p>
        <p>
            <button type="submit">확인</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습 이메일 형식을 올바르게 고쳐보세요.
잘못된 이메일 주소(account@@@exmaple.com)를 account@example.com처럼 올바른 형식으로 수정하면, 이메일 입력 필드의 스타일이 바뀌고 유효성 검사가 통과할 것입니다.
fieldset:invalid {
    border: 1px solid red;
    background-color: beige;
}
form {
    padding: 1em;
}
<form>
    <fieldset>
        <legend>사용자 정보 입력 확인</legend>
        <p>
            <label for="username">이름</label>
            <input id="username" type="text" value="홍길동">
        </p>
        <p>
            <label for="useremail">이메일</label>
            <!-- 이메일 형식을 올바로 입력하지 못한 상태의 요소: 유효성 검사를 충족하지 못 함-->
            <input id="useremail" type="email" value="account@@@exmaple.com">
        </p>
        <p>
            <button type="submit">확인</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습 이메일 형식을 올바르게 고쳐보세요.
잘못된 이메일 주소(account@@@exmaple.com)를 account@example.com처럼 올바른 형식으로 수정하면, 이메일 입력 필드의 스타일이 바뀌고 유효성 검사가 통과할 것입니다.
input:invalid {
    border: 1px solid red;
    background-color: beige;
}
<form>
    <fieldset>
        <legend>웹사이트 등록 정보 확인</legend>
        
        <p>
            <label for="sitename">사이트명(필수):</label>
            <input type="text" id="sitename" required>
        </p>

        <p>
            <label for="siteurl">사이트 주소:</label>
            <input type="url" id="siteurl" value="www.example.com">
        </p>

        <p>
            <label for="rating">추천 점수(1~5):</label>
            <input type="number" id="rating" min="1" max="5" value="10">
        </p>
        <p>
            <button type="submit">확인</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습