Я тут потратил часок на поиск разных твиков и тестирование разных стилей разметки, и мне кажется, я нашёл неплохое кроссбраузерное решение твоего вопроса. Кроме того, я немного расширил задачу и поставил требования таким образом:
Сначала я покажу код, а затем сделаю пояснения к нему:
<form> <div> <label><input type="checkbox" /> Label text</label> </div> </form> <style type="text/css"> label { display: block; padding-left: 15px; text-indent: -15px; } input { width: 13px; height: 13px; padding: 0; margin:0; vertical-align: bottom; position: relative; top: -1px; *overflow: hidden; } </style>
Этот код допускает использование какого-нибудь сброса CSS (например, от Эрика Маера), который не отменят внешние и внутренние отступы между элементами ввода. Конечно, в реальном проекте тебе скорее придётся их задать самостоятельно под свои нужды, а я просто хотел в своём ответе сохранить простоту.
Стоить принять во внимание следующее:
Надеюсь, это также поможет кому-то ещё. Я пока опробовал этот специфический прием только в одном проекте, над которым работал сегодня утром, так что, возможно есть и другие, возможно, более красивые решения.