Я не думаю, что это действительно может быть достигнуто с помощью CSS так, как этого хочет ОП. CSS просто так не работает.
На мой взгляд, лучший подход - отступить назад и посмотреть на картину в целом. У вас есть форма, где некоторые поля обязательны для заполнения, а некоторые нет. Рекомендуется сначала предоставить пользователю все обязательные поля или сгруппировать обязательные поля и четко отделить их от необязательных полей.
Вы можете создать такую структуру, как
<form>
<ul class="required_fields">
<li>
<label>username</label>
<input />
</li>
<li>
<label>email</label>
<input />
</li>
</ul
<ul class="optional_fields">
...
</ul>
</form>
/* CSS */
.required_fields label {font-weight: bold}
.required_fields label:after { content: "*"; color: red } /*more styles for labels*/
У этого подхода есть ряд преимуществ. Вы можете добавлять и удалять элементы из «требуемой» группы легко, не изменяя каждый из них по отдельности. Вы можете назначить «требуемый» класс так высоко, как вы хотите. Если форма имеет класс 'required', то все элементы в ней будут помечены как обязательные. Есть меньше мест для внесения изменений, если вы решили, что «требуемый» класс должен называться как-то иначе. И в целом этот подход также помогает вам лучше организовать ваши формы. Вы не должны смешивать обязательные и дополнительные поля.
Вы могли бы пойти дальше и получить некоторый javascript, который также вставит требуемый атрибут в поля ввода.
$(".required_fields input").each(function(){
this.setAttribute('required', 'required');
});