Итак, я знаю, что на это уже много раз отвечали, но я чувствую, что у меня есть более элегантное решение, чем те, которые уже были предоставлены. И не только 1 элегантное решение, но и 2 отдельных решения для щекотки. С учетом всего сказанного, все, что вам нужно знать и видеть, содержится в 2 JS Fiddle's с комментариями.
Решение № 1 опирается на собственный «флажок» данного браузера, хотя и с изюминкой ... Он содержится в div, который легче позиционировать в кросс-браузерном режиме, с переполнением: скрыт, чтобы разбить избыток Растянутый флажок на 1 пиксель (это так, что вы не можете видеть уродливые границы FF)
Простой HTML: (перейдите по ссылке, чтобы просмотреть css с комментариями, блок кода должен удовлетворить стекопоток) http://jsfiddle.net/KQghJ/
<label><div class="checkbox"><input type="checkbox" /></div> Label text</label>
Решение № 2 использует «Переключатель флажков», чтобы переключать состояние CSS DIV, который был правильно расположен в браузере, и настраивается с помощью простого спрайта для состояний флажков, не отмеченных и отмеченных. Все, что нужно, это отрегулировать положение фона с помощью флажка Toggle Hack. Это, на мой взгляд, более элегантное решение, поскольку у вас больше контроля над флажками и радиоприемниками, и вы можете гарантировать, что они выглядят одинаково в браузере.
Простой HTML: (перейдите по ссылке, чтобы просмотреть CSS с комментариями, блок кода должен удовлетворить StackOverflow) http://jsfiddle.net/Sx5M2/
<label><input type="checkbox" /><div class="checkbox"></div>Label text</label>
Если кто-то не согласен с этими методами, пожалуйста, оставьте мне комментарий, я хотел бы услышать некоторые отзывы о том, почему другие не сталкивались с этими решениями, или если у них есть, почему я не вижу здесь ответов относительно них? Если кто-то увидит, что один из этих методов не работает, было бы неплохо это увидеть, но они были протестированы в последних браузерах и полагаются на методы HTML / CSS, которые являются довольно старыми и универсальными, насколько я видел.