GoodProject
@GoodProject
Верстальщик

Как кроссбраузерно стилизовать type="checkbox"?

Здравствуйте!

Пожалуйста, подскажите как кроссбраузерно сделать такой чекбокс:

Uh9A3AS.png

Пробовал разными способами, гуглил, но что то не очень получилось.

На странице всего 1 чекбокс, но он очень противный, поэтому ломаю голову уже не первый час! :))

Буду Вам очень благодарен за помощь! :)
  • Вопрос задан
  • 629 просмотров
Решения вопроса 1
Defman21
@Defman21
Делаете label для чекбокса, сам чекбокс скрываете, для label через :before добавляете нужные стили. (когда checkbox:checked и checkbox в обычном состоянии, но важен порядок тегов в коде). На хабрахабре описывался подобный способ.
Псевдокод:
<input type="checkbox" id="checkbox"><label for="checkbox">Test</label>
<style>
    #checkbox {
        display: none;
    }
    
    #checkbox:checked + label:before {
        content: "* ";
    }
    
    #checkbox + label:before {
        content: " ";
    }
</style>

Будет отображать звездочку для отмеченного чекбокса и галочку для пустого чекбокса. Тебе остается просто заменить это все на картинки. Клик по ним тоже будет работать, т.к. :before :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
inik23
@inik23
типа разработчик
Странно конечно что по Вашим словам у гогла сегодня выходной ).
Вот курс на правильное направление у label
<labe for="test">Test</label>
<input type="чекбокс" id="test">

есть классный атрибут "for" он привязывает поле к лейблу,
Попробуйте кастомизировать лейбл
Ответ написан
Комментировать
master2016
@master2016
Всё нормально.
Да, обычно действуют в русле, указанном Defman21. Скрытый чекбокс и связанный с ним div - а туда уже пихаете все, что хотите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы