Флажки для стилизации CSS

Хорошо, поэтому я видел множество решений для создания флажков с помощью CSS в Интернете. Тем не менее, я ищу что-то немного более надежное, и мне интересно, может ли кто-нибудь помочь. В принципе, я хочу иметь это решение , но с возможностью иметь цвет с CSS, накладывающийся на серый флажок. Мне нужно это, потому что у меня будет непредсказуемое количество разных флажков, каждый из которых нуждается в другом цвете, и я не хочу создавать огромное количество разных изображений для обработки этого. У кого-нибудь есть идеи о том, как этого добиться?

Я создал прозрачный png, где внешний цвет белый, а флажок частично прозрачен. Я изменил код, чтобы поместить backgroundColor на элемент, и voila !, раскрашенный флажок.

http://sofru.miximages.com/css/raz13m.png (Он говорит jpg, но это png).

Я бы опубликовал этот пример, но я не знаю, как это показать. Какие-нибудь хорошие сайты для песочницы?

Это, конечно, зависит от поддержки png. Вы могли бы плохо сделать это с помощью gif или наложить полупрозрачный слой css над изображением, как вы и предложили, а затем использовать маску gif для маскировки кровотока из цветной коробки. Этот метод предполагает поддержку прозрачности.

Мой метод png использует css, js со страницы, с которой вы связались, с этими изменениями:

JS:

// Changed all instances of '== "styled"' to '.search(...)' // to handle the additional classes needed for the colors (see CSS/HTML below) if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className.search(/^styled/) != -1) { span[a] = document.createElement("span"); // Added '+ ...' to this line to handle additional classes on the checkbox span[a].className = inputs[a].type + inputs[a].className.replace(/^styled/, ""); 

CSS:

  .checkbox, .radio { width: 19px; height: 25px; padding: 0px; /* Removed padding to eliminate color bleeding around image you could make the image wider on the right to get the padding back */ background: url(checkbox2.png) no-repeat; display: block; clear: left; float: left; } .green { background-color: green; } .red { background-color: red; } etc... 

HTML:

 

(green)

(red)

(purple)

Надеюсь, это имеет смысл.

Редактировать:

Вот пример jQuery, который иллюстрирует принцип с помощью флажков:

http://jsfiddle.net/jtbowden/xP2Ns/

Похоже, вы уже это знаете, но решение, с которым вы связаны, фактически заменяет флажок тегом span с изображением, чтобы создать эффект «стилизованного» флажка.

Для большинства браузеров, таких как IE и Firefox, есть несколько (если есть) вариантов и очень небольшая поддержка стилей с помощью только CSS.

Ответ Джеффа на то, как отредактировать указанное решение, является правильным. Вот реализация его редактирования для решения, если кому-то нужно скопировать и вставить.

JavaScript http://pastebin.com/WFdKwdCt

CSS http://pastebin.com/TM1WwSQW

Я нашел http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/ решение javascript + css, которое работает на win, т.е. win и mac: chrome, safari, firefox, opera. iOS Safari и хром.

  • Исключить вспышку неравномерного содержимого
  • Установить проверку classа для динамического текстового поля в таблице
  • Применение стилей CSS только к определенным элементам
  • Сепараторы для навигации
  • Как использовать 3-значные цветовые коды, а не 6-значные цветовые коды в CSS?
  • CSS3 порядок преобразования имеет значение: самая правая операция сначала
  • Отображение IE: дочерний элемент таблицы-таблицы игнорирует высоту: 100%
  • В чем разница между SCSS и Sass?
  • Есть ли способ навести курсор на один элемент и повлиять на другой элемент?
  • Как я могу горизонтально выровнять свои div?
  • IE7 относительная / абсолютная ошибка позиционирования с динамически измененным содержимым страницы
  • Давайте будем гением компьютера.