input:required { /*  HTML의 required 속성으로 인해 필수 상태가 된 <input> 요소를 선택 */
    background-color: gold;
    border: 1px solid red;
}
.req {
    color: red;
}
<form>
    <fieldset>
        <legend>비밀번호는 필수</legend>
        <p>
            <label for="username">이름</label>
            <input id="username" type="text">
        </p>
        <p>
            <label for="userpassword">비밀번호 <span class="req">*</span></label>
            <input id="userpassword" type="password" required> <!-- 필수 상태가 된 폼 컨트롤 요소 -->
        </p>
        <p>
            <button type="submit">제출</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습 비밀번호를 입력하지 않고 '제출'버튼을 클릭해보세요!
브라우저가 필수 입력에 대한 오류 메시지를 표시하는 것을 확인할 수 있습니다.
:required {
    /* ... */
}
[required] {
    border: 2px solid red; /* required 속성을 가진 모든 요소에 테두리 추가 */
}
:required {
    background-color: gold; /* 실제로 필수 상태가 된 폼 컨트롤 요소에 배경색 적용 */
}
<p required>required 속성이 있는 p 요소입니다.</p>
<form>
    <input id="userpassword" type="password" required> <!-- 필수 상태가 된 폼 컨트롤 요소 -->
</form>
실제 적용된 모습
/* 필수 항목 강조 */
:required { /* *:required와 동일 */
    background-color: #fff7b2; /* 은은한 황금색 배경 */
    border: 2px solid #f39c12; /* 주황색 테두리로 시각적 강조 */
    padding: 4px;
    border-radius: 4px;
}

/* 필수 표시 텍스트 스타일 */
.req {
    color: red;
    font-weight: bold;
}
<form>
    <fieldset>
        <legend>회원 정보 입력</legend>
        <p>
            <label for="name">이름 <span class="req">*</span></label>
            <input id="name" type="text" required>
        </p>
        <p>
            <label for="email">이메일 <span class="req">*</span></label>
            <input id="email" type="email" required>
        </p>
        <p>
            <label for="password">비밀번호 <span class="req">*</span></label>
            <input id="password" type="password" required>
        </p>
        <p>
            <label for="bio">자기소개</label>
            <textarea id="bio"></textarea>
        </p>
        <p>
            <button type="submit">제출</button>
        </p>
    </fieldset>
</form>
실제 적용된 모습