Ответ 1
Вы не можете сделать флажок неопределенным через HTML по дизайну. См. Эту статью в css-tricks.com, в которой подробно обсуждается тема.
Что касается "почему" в вашем вопросе, есть информация о списках рассылки W3C, которые могут быть полезны:
- Похоже, что идея присвоения флажков значения трех состояний (по-видимому, проверенных, непроверенных, неопределенных) считалась, но не реализована из-за проблем с обратной совместимостью
- Единственное упоминание истинного атрибута
indeterminate
HTML "content", как показано в вашем примере, которое я мог найти, было здесь:- В этом сообщении
- И ответ
- Вы можете обратиться к тем, кто участвует в этом потоке, для получения дополнительной информации.
Для того, что стоит, на самом деле существует селектор :indeterminate
CSS (он, как представляется, рассматривается как другие псевдоклассы CSS, такие как :visited
, которые также невозможно установить через HTML напрямую, так что, возможно, это еще одна причина indeterminate
тоже не может быть). В своей демонстрации селектора CSS сам W3C использует тот же подход, что и вы: демоверсия демонстратора CSS W3C. В свете этого я бы сказал, что вы используете лучший метод, доступный для установки неопределенного состояния флажка