Нет.
Через CSS
- только невозможно достичь результата без изменения разметки или javascript в коде , если только
1) метка и ввод находятся в одной строке, рядом и
2) фон имеет solid цвет
, как в примере ниже, поэтому вы можете обмануть по всегда добавляя звезду, но если родной брат input
не [required]
, тогда накрыть звезду, используя box-shadow
.
input { border: 1px #ccc solid }
label::after {
content: "*";
width: 1.5em;
margin-right: 1.5em;
}
label + input:not([required]) {
box-shadow: -3.2em 0 0 #fff;
}
<label>Username</label>
<input name='username' required />
<br /><br />
<label>Username</label>
<input name='username' />
Но я бы посоветовал хотя бы изменить порядок элементов в разметке (и показать их в правильном порядке с display:flex
и flex-direction: row-reverse
)