Это сложно сделать кросс-браузерным. Роджер Йоханссон исследовал это довольно широко.
Кристиан Либардо
Чтение всех комментариев - есть действительно простой способ сделать это без использования CSS: <input type = "checkbox" name = "checkboxName" value = "on" style = "width: 110%; height: 110%">
Williamz902
Используйте этот простой
ответ
@ Williamz902 style=тег это CSS ...
Tiebe Groosman
Ответы:
434
Это немного некрасиво (из-за увеличения), но работает на большинстве новых браузеров:
input[type=checkbox]{/* Double-sized Checkboxes */-ms-transform: scale(2);/* IE */-moz-transform: scale(2);/* FF */-webkit-transform: scale(2);/* Safari and Chrome */-o-transform: scale(2);/* Opera */transform: scale(2);padding:10px;}/* Might want to wrap a span around your checkbox text */.checkboxtext{/* Checkbox text */font-size:110%;display: inline;}
это кажется правильным ответом, так как ответ, помеченный как ответ, во многих случаях не предлагает решений (нет решения для firefox на xp? вообще нет chrome?), устарел и содержит только ссылку и комментарий небольшого значения.
nurettin
4
@jdw +1 за этот ответ, и даже мне нужно было это сделать, и ваш ответ был полезен. Но почему-то я нахожу, что «масштабированный» флажок выглядит немного искаженным. Я не знаю, так ли это с FF или моей ОС (Ubuntu 12.04). В любом случае, спасибо :)
itols
1
шкале () нужны 2 параметра для хрома, FF и IE, я думаю. Так что если вы просто измените все шкалы на шкалу (2,2), это должно работать в любом браузере.
Онур Топал
10
добавить transform: scale(2);тоже, чтобы обеспечить больше для любого браузера
Adriano Resende
8
масштабирование выглядит ужасно, в масштабе 2 вы уже видите отдельные пиксели. Я бы никогда не выбрал это решение для красивых больших флажков CSS.
@ Huangism Нет, приведенный выше код не будет иметь никакого эффекта в IE 8, который не поддерживает это transformсвойство. IE 9 поддерживает то, -ms-transformчто вы могли бы использовать, однако некоторые говорят, что оно довольно пиксельное, поэтому лучше оставить IE 9 по умолчанию.
Саймон Ист
Не является ли выше подход плохим, потому что есть предел для масштаба, так как это приводит к пикселизации флажка.
Интересно, что Mozilla препятствует этому, в то время как Firefox - почти единственный браузер, который его не поддерживает: caniuse.com/#feat=css-zoom
ndreisg
47
Версия 2020 - с использованием псевдоэлементов, размер зависит от размера шрифта.
Флажок / радио по умолчанию отображается за пределами экрана, но CSS создает виртуальные элементы, очень похожие на элементы по умолчанию. Поддерживает все браузеры, без размытия. Размер зависит от размера шрифта. Клавиатурные действия (пробел, вкладки) также поддерживаются.
Конечно, благодаря этому вы можете изменить значение в соответствии contentсо своими потребностями и использовать изображение, если хотите, или использовать другой шрифт ...
Основной интерес здесь заключается в том, что:
Размер флажка остается пропорциональным размеру текста
Вы можете контролировать аспект, цвет, размер флажка
Никакого дополнительного HTML не требуется!
Требуется всего 3 строки CSS (последняя из них просто для того, чтобы дать вам идеи)
Редактировать : как указано в комментарии, флажок не будет доступен при навигации по клавишам. Вероятно, вы должны добавить tabindex=0в качестве свойства для вашего ярлыка, чтобы сделать его фокусируемым.
@robertjd согласился, был смущен тем, зачем это нужно для простого преобразования
Нил Чоудхури
@robertjd Это даже не флажки; они переключатели
TylerH
14
Видимость флажков, кажется, исправлена по умолчанию. Но, как указывает Worthy7, это можно исправить с помощью appearanceсвойства CSS . Это сделает флажки полностью пустыми, так что вы можете определить свой собственный внешний вид. Что в этом хорошего: вы можете использовать существующий HTML-код. Недостаток: это экспериментальная технология . Edge и IE не используют пользовательский стиль.
Я думаю, что самое простое решение - изменить стиль флажка, как предлагают некоторые пользователи. CSS ниже работает для меня, требует только несколько строк CSS, и отвечает на вопрос OP:
Как уже упоминалось в этом посте, свойство масштабирования не работает в Firefox, и преобразования могут вызывать нежелательные эффекты.
Протестировано на Chrome и Firefox, должно работать на всех современных браузерах. Просто измените свойства (цвета, размер, снизу, слева и т. Д.) В соответствии с вашими потребностями. Надеюсь, поможет!
Насколько я понимаю, это не так просто сделать кросс-браузер. Вместо того чтобы пытаться манипулировать элементом управления checkbox, вы всегда можете создать собственную реализацию, используя изображения, javascript и скрытые поля ввода. Я предполагаю, что это похоже на то, что есть niceforms (из ответа Staicu lonut выше), но не будет особенно трудным для реализации. Я считаю, что в jQuery есть плагин, позволяющий также настраивать это поведение (поищите ссылку и опубликуйте здесь, если я смогу ее найти).
style=
тег это CSS ...Ответы:
Это немного некрасиво (из-за увеличения), но работает на большинстве новых браузеров:
источник
transform: scale(2);
тоже, чтобы обеспечить больше для любого браузераРабочее решение для всех современных браузеров.
Совместимость:
Внешность:
источник
transform
свойство. IE 9 поддерживает то,-ms-transform
что вы могли бы использовать, однако некоторые говорят, что оно довольно пиксельное, поэтому лучше оставить IE 9 по умолчанию.Простое решение - использовать свойство
zoom
:источник
Версия 2020 - с использованием псевдоэлементов, размер зависит от размера шрифта.
Флажок / радио по умолчанию отображается за пределами экрана, но CSS создает виртуальные элементы, очень похожие на элементы по умолчанию. Поддерживает все браузеры, без размытия. Размер зависит от размера шрифта. Клавиатурные действия (пробел, вкладки) также поддерживаются.
https://jsfiddle.net/ohf7nmzy/2/
Версия 2017 - с использованием масштаба или увеличения
Браузер будет использовать нестандартную
zoom
функцию, если она поддерживается (хорошее качество) или стандартнаяtransform: scale
(размыто).Масштабирование работает во всех браузерах, но в Firefox и Safari оно будет размыто .
https://jsfiddle.net/ksvx2txb/11/
источник
Я только что вышел с этим:
Конечно, благодаря этому вы можете изменить значение в соответствии
content
со своими потребностями и использовать изображение, если хотите, или использовать другой шрифт ...Основной интерес здесь заключается в том, что:
Размер флажка остается пропорциональным размеру текста
Вы можете контролировать аспект, цвет, размер флажка
Никакого дополнительного HTML не требуется!
Требуется всего 3 строки CSS (последняя из них просто для того, чтобы дать вам идеи)
Редактировать : как указано в комментарии, флажок не будет доступен при навигации по клавишам. Вероятно, вы должны добавить
tabindex=0
в качестве свойства для вашего ярлыка, чтобы сделать его фокусируемым.источник
display:none
ввода не позволит выбрать его с помощьюtab
клавиши, поэтому я не думаю, что это хорошая идея.Предварительный просмотр:
http://jsfiddle.net/h4qka9td/
источник
Видимость флажков, кажется, исправлена по умолчанию. Но, как указывает Worthy7, это можно исправить с помощью
appearance
свойства CSS . Это сделает флажки полностью пустыми, так что вы можете определить свой собственный внешний вид. Что в этом хорошего: вы можете использовать существующий HTML-код. Недостаток: это экспериментальная технология . Edge и IE не используют пользовательский стиль.Вот необходимые стили CSS:
Скриншоты:
Хром:
Fire Fox:
Край:
IE:
источник
Я искал флажок, который был немного больше, и посмотрел на исходный код 37Signals Basecamp, чтобы найти следующее решение:
Вы можете изменить размер шрифта, чтобы сделать флажок немного больше:
Затем вы можете правильно настроить флажок, выполнив:
источник
Вы можете увеличить флажки в Safari - который обычно устойчив к обычным подходам - с этим атрибутом:
-webkit-transform: scale(1.3, 1.3);
Источник
источник
Я думаю, что самое простое решение - изменить стиль флажка, как предлагают некоторые пользователи. CSS ниже работает для меня, требует только несколько строк CSS, и отвечает на вопрос OP:
Как уже упоминалось в этом посте, свойство масштабирования не работает в Firefox, и преобразования могут вызывать нежелательные эффекты.
Протестировано на Chrome и Firefox, должно работать на всех современных браузерах. Просто измените свойства (цвета, размер, снизу, слева и т. Д.) В соответствии с вашими потребностями. Надеюсь, поможет!
источник
Насколько я понимаю, это не так просто сделать кросс-браузер. Вместо того чтобы пытаться манипулировать элементом управления checkbox, вы всегда можете создать собственную реализацию, используя изображения, javascript и скрытые поля ввода. Я предполагаю, что это похоже на то, что есть niceforms (из ответа Staicu lonut выше), но не будет особенно трудным для реализации. Я считаю, что в jQuery есть плагин, позволяющий также настраивать это поведение (поищите ссылку и опубликуйте здесь, если я смогу ее найти).
источник
Я нашел эту библиотеку только для CSS очень полезной: https://lokesh-coder.github.io/pretty-checkbox/
Или вы можете использовать свою собственную концепцию, аналогичную той, которую написал @Sharcoux. Это в основном:
input:checked~div label
для проверенного стиля<label>
кликабелен с помощьюfor=yourinputID
источник
Проблема в том, что Firefox не слушает ширину и высоту. Отключите это, и ваш хороший идти.
источник
Другие ответы показывали пиксельный флажок, а я хотел чего-то красивого. Результат выглядит так:
Хотя эта версия более сложная, я думаю, стоит попробовать.
JSFiddle: https://jsfiddle.net/asbd4hpr/
источник
Вы можете изменить высоту и ширину в коде ниже
источник