После двухчасовых поисков я должен выбросить полотенце и задать вопрос самому.
Как мне оформить поле выбора, используя только CSS (не Javascript), чтобы, если выбор не был сделан, непрозрачность была установлена на 0,5, но после того, как выбор сделан, поле выбора имеет непрозрачность 1?
Я вижу много вопросов и ответов об изменении определенных цветов опций и т. д., Но я хочу повлиять на само поле выбора. Вроде очень просто:
Еще ничего не выбрано? непрозрачность: .5;
Что-нибудь выбрано из раскрывающегося списка? непрозрачность: 1;
Кажется, я не могу найти триггер, чтобы узнать, выбрано ли что-то, и да, я пробовал использовать: отмечен в поле выбора и в опции.
Любая помощь была бы замечательной, но я думаю, что это ограничение самого CSS и не может быть сделано без вмешательства Javascript. Спасибо, парни!






Это возможно только путем установки атрибута required на ваш выбор. Он работает, проверяя правильное значение этого выбора. Если вы выберете вариант с пустым значением, он будет помечен как недопустимый. Вы можете скрыть эту опцию и использовать ее в качестве заполнителя. Он исчезнет, как только пользователь сделает выбор.
select:invalid
{
opacity: 0.5;
}<select required>
<option value = "" selected disabled hidden>Please select an option</option>
<option>123</option>
<option>123</option>
<option>123</option>
</select>Это именно тот угол, который мне нужен. Единственная загвоздка, которую я мог предвидеть, - это то, если вы действительно не хотите, чтобы параметры выбора требовались для отправки формы. Но для моих целей это было идеально, и я заставил его работать именно так, как я хотел. Большое спасибо!
Я почти уверен, что для этого вам понадобится JS