#javascript #html #css
Собственно, речь о стилизации радиобаттонов и чекбоксов. Радиобаттон должен быть круглым, но в IE8 border-radius не работает. Вариант включать обводку в фоновую картинку не подходит, поскольку нужны обводки разных цветов в зависимости от условий. Какие есть альтернативы? input[type="radio"], input[type="checkbox"] { display: none; } input[type="radio"] + label, input[type="checkbox"] + label { border: 1px solid green; display: inline-block; cursor: pointer; width: 1em; height: 1em; } input[type="radio"] + label { border-radius: 50%; } input[type="checkbox"] + label { border-radius: .25em; } input:checked + label { background: silver; /* На самом деле тут фоновая картинка, разная */ }
PS: Вместо :checked скрипт вешает соответствующий класс.
Ответы
Ответ 1
Дикая, конечно, идея: в IE8 прекрасно работает vml. Можно внутрь label поместить vml:shape и стилизовать уже его.Ответ 2
Для IE8 должен действовать принцип деградации! Не нужно пытаться сделать пиксель перфект в этом древнем браузере, это лишняя и никому не нужная работа. Если у вас включен IE8 в список поддерживаемых продуктов, то это означает что в нем просто должно всё работать, пусть и без экстра красивостей, но просто должно. Поймите так же следующее, попытки все красиво стилизовать в IE8 приведут только к тому, что этот браузер (и так медленный и древний) получит еще одну тормозящую фичу. Так же вспомните что в 99% случаев, IE8 запускается отнюдь не в вашей быстрой виртуальной машине, а на каком-то древнем, даже реликтовом компе, который и одну вкладку еле тянет. Пользователи таких компов сегодня радуются просто тому, что сайт вообще открылся как-то, и им даже можно пользоваться. UPD. Если всё же очень нужно нарисовать, то всё равно, лучше делать это картинкой. Я помню что у вас несколько цветов, но тут можно схитрить, скажем сделав одну белую прозрачную картинку с круглой дырочкой в центре. Это позволит менять цвета через CSS.
Комментариев нет:
Отправить комментарий