Строительство домов по канадской каркасной технологии, строительство домов в Киеве - Будинок у задоволення

Наверняка многие знают, что такие элементы формы как select, file, checkbox, radio не поддаются стилизации средствами CSS. Но как же быть, если нерадивый дизайнер в макете дизайна нарисовал поле checkbox в форме стилизировным под общий дизайн сайт, а заказчик на отрез не хочет принимать дизайн без формы ввода данных идентичной макету дизайна.

Вот здесь и пригодиться описанный ниже метод. Суть метода состоит в том, что элемент checkbox делается невидимым, но невидимым не простым присвоением display:none, а через свойство opacity:0 (подробней об этом свойстве можно прочитать в заметке «Создание модульного окна с прозрачной подложкой«).

Таким образом, элемент находиться на странице, остается кликабельным, но полностью прозрачный, таким образом, невидимый. А в блоке, в котором находиться checkbox задается бекграунд с картинкой, на которой изображено, как должен выглядеть измененный checkbox и при клике на checkbox скриптом у блока меняется класс стиля, чтоб поменялся бекграунд на картинку с измененным чекбоксом в другом состоянии.

  
/*---------- Стили классов -----------*/
input {
margin:0;padding:0;
opacity:0;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
}
.checkboxOn {
background:url(f_logincheckbox_on.png) no-repeat 0 3px;
}
.checkboxOff {
background:url(f_logincheckbox_off.png) no-repeat 0 3px;
}

/*---------- Скрипт изменения класса-----------*/

function logincheckboxCheck () {
  if (document.getElementById("checkbox1").checked) {
	document.getElementById("checkboxDiv").className="checkboxOn";
   }
	else {
	 document.getElementById("checkboxDiv").className="checkboxOff";
	}
}

/*---------- Верстка-----------*/

<div id="checkboxDiv" class="checkboxOn">
	<input type="checkbox" id="checkbox1" onclick="logincheckboxCheck();" class="checkboxOn" checked="checked"/> <label for="checkbox1">Запомнить меня</label>
</div>

Пример полностью кроссбраузерный. Посмотреть реализация можно по ссылке Пример стилизации Chebox

В дополнение, стоит отметить что картинку чекбокса лучше делать спрайтом из двух картинок чтоб избежать эффекта мерцания при подргрузке картинки.

Геологические инженерные изыскания помогают выявить потенциально опасные моменты строительства, например, коррозийную активность к стали и бетону, что немаловажно при закладке фундамента.

32 Отзывов to “Как изменить внешний вид checkbox”

  1. milax:

    Спасибо за способ.

    P.S. У тебя на блоге сапы кривая кодировка :Р

  2. Kitich:

    В избранное ;)

  3. Bueno:

    имхо розрачность тоже js’ом ставить надо – оставить шанс посетителям с отключеным js..

  4. milax:

    В топку юзеров с отключенным js :)

  5. Bueno:

    в топку или нет, не важно – профи всегда найдет способ позаботиться о всех малой кровью.. это как раз тот случай..

  6. milax:

    ну да, вспомните еще про ие5
    ведь не исключено, что и его где-то юзают

  7. Bueno:

    это уже просто не по теме.. если js можно заблокировать практически в любом браузере, firewall’е, проксе и т.п., (причем некоторые так делают, в офисах, напр) + разность используемых разными браузерами версий и спецификаций js + мобильные устройства – очень много «но», то ie > 6 уже просто практически никто не пользуется..

  8. Zodios:

    2vdorr
    Мои контакты на странице http://zodios.net/ob-avtorakh
    2Bueno
    Дельное замечание. Обратная совместимость конечно важна, но какой процент пользователей серфит с отключенными скриптами? К тому же, мне кажется, тот кто умышлено отключил скрипты догадывается о том что это и какие будут последствия.

  9. Bueno:

    ну тут можно долго обсуждать, соглашаться, не соглашаться, считать проценты и прочее.. но думаю меньше времени займет просто вписать 2 строчки не в css, а в js и значительно улучшить совместимость.. ))

  10. milax:

    Олег, сотри коммент Ausima – там ссылку этот сраный спамер припрятал.

  11. Ivanna:

    А что Вы скажете, еси я скажу, что все Ваши посты, не более чем выдумка?

  12. Нестор:

    Что-то не получается зарегистрироваться у Вас на Блоге. Email не приходит. Проверьте пожалуйста!

  13. Endgegner:

    Все класс конечно, но мне например понадобилось, чтобы был не один чекбокс, а три и более. Приципить скрипт ко всем чекбоксам так что бы они все работали у меня не получилось!
    Может преределаете пример где чекбоксов будет несколько,а не один. Или напишите, что нужно сделать что бы это работало если на странице несколько чекбоксов.

  14. Анонимно:
  15. Анонимно:

    alert(»спасибо за сатью)»);

  16. Masha:

    Ponravilos

  17. Евгений:

    Спасибо большое, но не подскажете какой размер у стандартного checkbox 5х5?

  18. Alex:

    >>Спасибо большое, но не подскажете какой размер у стандартного checkbox 5х5?
    Сделай страницу с обычным checkbox, ее скриншот и померяй :-)

  19. Виталий:

    Не люблю привязку к id

    В этом случае можно использовать такую функцию

    function checkboxCheck(el)
    {
    if(el.checked)
    el.parentNode.className=’checkboxOn’;
    else
    el.parentNode.className=’checkboxOff’;
    }

    Запомнить меня

  20. Romul:

    Весьма простой и полезный метод.

  21. Влад:

    очень классно придумано.

  22. megaTweetDeck:

    Почему мои комментарии не публикуются кто нибудь мне ответит ???

  23. John:

    Полезная вещь, спасибо за пример !!!

  24. MichaelGO:

    seniors rates hong kong hotels
    staples center los angeles ca
    singapore hotels
    shasta travel trailer parts
    southwest airlines online reservations

    discounts for budget car rentals
    discount flight tickets
    discount las vegas hotel rooms
    discount air tickets australia
    discount boston hotel booking

    top gun tom cruise clip
    travel trade magazines in poland
    train travel in italy
    travel south america
    travel boat cover

    california beach hotels
    biloxi mississippi hotels
    canadian discount airline tickets
    best western park place inn anaheim
    best credit card for airline points on mileage

    indianapolis airport car rental
    lodging in branson missouri
    las vegas nevada vacation packages
    jacksonville beach hotels
    land cruise vacation to alaska

    audiovox aftermarket cruise control unit
    american asia travel
    arizona hotels for sale
    auto rental software
    american hawaii cruise

    hotels in downtown los angeles
    hotel discounts disney world
    home based travel agents
    hotels in san francisco
    hotel in charlotte street

    holiday inn sunspree panama city beach
    holiday inn express tampa
    hertz rent a car addresses in uk
    gatwick airport car rental
    government employee travel opportunities

    los angeles airport parking
    marathon travel shops
    map of downtown chicago hotels
    los angeles map
    midtown sundries

    free india travel pdf
    grand canyon vacation packages
    grand canyon vacation tours
    holiday inn mission bay
    french quarter discount hotels

    car rental california
    cervia hotel italy
    car rental in uk
    car rentals shannon airport
    car rentals new york

    double delta airline mileage credit card
    disney world park tickets
    dog clothes and accessories and travel accessories
    discount one way car rentals
    discounted cruises to hawaii

    vaccinations required for travel to china
    walt disney world for travel agents
    vacation rentals in michigan
    w hotel in san diego
    venice italy 4 star hotels

    rental cars in spain
    rental cars new zealand
    rent car in europe
    royal star tour deluxe
    rental cars denver co

    rent a car in france
    rental cars in maui
    savoy hotel florence italy
    royal carribean bermuda cruises
    riviera hotel and casino

    norwegion cruise
    online discount hotel booking
    one tree hill tour
    new york times square hotels
    new world renaissance hotel hong kong

    windsor casino hotel
    wyndham el conquistador hotel
    wyoming travel and tourism
    wedding night hotel package philadelphia wilmington
    who has the best car rental rates

    5 star hotels in rome
    airline flight trackers
    adoption travel to china
    alaska cruise norwegian vancouver via
    adobe village graham inn

    china tours beijing xian guilin hong kong
    choice hotels newcastle
    cruise to the end of the world
    cruise ship photo
    coupons for budget car rental

    cheap nyc hotels
    cheap hotels downtown chicago
    cheap airline ticket to las vegas
    cheap hotels in singapore
    cheap car rentals ft lauderdale florida

    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map
    Site Map

  25. Frost:

    Дибилизм. Если поставить несколько чекбоксов на странице с таким способом, то при нажатии на один чекбокс меняться будут все.

  26. Radoss:

    Ничего, что обращение идет по айдишникам элементов?.. Или Вы собрались элементов с одинаковыми айдишниками понатыкать на форму?

  27. RuCoder,net:

    Способ действительно очень не плохой, но только в том случае если это касается 1-2 чекбоксов, но если это скажем селкты и т.д. и не один а полный набор то на помощь как всегда приходит JQuery с плагином jqTransform, ему замены я еще не нашел, уж поверьте было дело, делал собственный select и после вопросов заказчика почему он не закрывается при любом крике и т.д. я юзайю только его и это уже готовое отличное решение с неплохой документацией;
    Но повторюсь, в случае с 1-2 чекбоксами отличное решение.

  28. bea:

    А можно обойти как-то:

    input {
    margin:0;padding:0;
    opacity:0;
    filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
    }

    ?

    Выключаются все остальные элементы на странице из-за этого :( А их там гора от разных модулей…. не хотелось бы для них отдельно классы прописывать…

  29. Электрика:

    А что, прием интересный, для многих вещей такая методика подойдет

  30. RomaArt:

    To bea:
    очень просто решается этот вопрос: в css удаляем
    ————————————————————
    1)input и его настройки которые написанны в этой статье
    ————————————————————
    2)его настройки добавляем уже в фому на сайте таким образом:
    style=»margin:0;padding:0;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);»

    Этот стиль будет применен конкретно к тому ЧекБоксу в которым ты прописал =)
    все остальные формы метода Input не будут тронуты)
    ————————————————————

  31. kaa:

    чего раскричались? кто мешает привязываться не к ID а к классу, и использовать jQuery, передавая this?

  32. maftrealt:

    промышленные роботы : оборудование : техника : книги : www

Оставить отзыв


Последние записи

Real Time Web Analytics