Атрибут CSS '' background-color '' не работает над флажком внутри <div>
Заголовок в значительной степени объясняет это. У меня есть пара флажков внутри прокручиваемого div. Но по некоторым причинам атрибут "background-color" не работает. Хотя "margin-top", похоже, работает...
Просто озадачиваю меня, как один атрибут может работать, а другой нет. Это также не похоже на то, что у div есть собственный набор атрибутов фона, которые могут потенциально превышать атрибуты флажков.
В любом случае, ниже мой HTML (который генерируется JSP):
<div class="listContainer">
<input type="checkbox" class="oddRow">item1<br/>
<input type="checkbox" class="evenRow">item2<br/>
<input type="checkbox" class="oddRow">item3<br/>
<input type="checkbox" class="evenRow">item4<br/>
...
</div>
И вот мой CSS:
.listContainer {
border:2px solid #ccc;
width:340px;
height: 225px;
overflow-y: scroll;
margin-top: 20px;
padding-left: 10px;
}
.oddRow {
margin-top: 5px;
background-color: #ffffff;
}
.evenRow{
margin-top: 5px;
background-color: #9FFF9D;
}
Заранее благодарим всех, кто может указать мне в правильном направлении!
Ответы
Ответ 1
Флажок A не имеет цвета фона,
то, что вы, возможно, захотите сделать, это обернуть каждый флажок с помощью div, который имеет цвет.
ваш результат должен быть примерно таким:
<div class="evenRow">
<input type="checkbox" />
</div>
<div class="oddRow">
<input type="checkbox" />
</div>
<div class="evenRow">
<input type="checkbox" />
</div>
<div class="oddRow">
<input type="checkbox" />
</div>
Ответ 2
В дополнение к принятому в настоящее время ответу: вы можете установить границу и фон флажка/радиообмена, но то, как оно отображается в конце, зависит от браузера. Например, если вы установите красный фон на флажке
- IE покажет красную рамку
- Opera покажет красный фон, как предполагалось
- Firefox, Safari и Chrome ничего не сделают
В этой статье сравнивается несколько браузеров и объясняется, по крайней мере, поведение IE. Это может быть немного старше (все еще в том числе Netscape), но когда вы проверяете вокруг, вы заметите, что мало что изменилось. Другое сравнение можно найти здесь.
Ответ 3
Вы можете использовать такие псевдо-элементы:
input[type=checkbox] {
width: 30px;
height: 30px;
margin-right: 8px;
cursor: pointer;
font-size: 27px;
}
input[type=checkbox]:after {
content: " ";
background-color: #9FFF9D;
display: inline-block;
visibility: visible;
}
input[type=checkbox]:checked:after {
content: "\2714";
}
<label>Checkbox label
<input type="checkbox">
</label>
Ответ 4
Мое решение
Изначально размещено здесь.
input[type="checkbox"] {
cursor: pointer;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: 0;
background: lightgray;
height: 16px;
width: 16px;
border: 1px solid white;
}
input[type="checkbox"]:checked {
background: #2aa1c0;
}
input[type="checkbox"]:hover {
filter: brightness(90%);
}
input[type="checkbox"]:disabled {
background: #e6e6e6;
opacity: 0.6;
pointer-events: none;
}
input[type="checkbox"]:after {
content: '';
position: relative;
left: 40%;
top: 20%;
width: 15%;
height: 40%;
border: solid #fff;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
display: none;
}
input[type="checkbox"]:checked:after {
display: block;
}
input[type="checkbox"]:disabled:after {
border-color: #7b7b7b;
}
<input type="checkbox"><br>
<input type="checkbox" checked><br>
<input type="checkbox" disabled><br>
<input type="checkbox" disabled checked><br>
Ответ 5
Лучшее решение для изменения цвета фона флажка
input[type=checkbox] {
margin-right: 5px;
cursor: pointer;
font-size: 14px;
width: 15px;
height: 12px;
position: relative;
}
input[type=checkbox]:after {
position: absolute;
width: 10px;
height: 15px;
top: 0;
content: " ";
background-color: #ff0000;
color: #fff;
display: inline-block;
visibility: visible;
padding: 0px 3px;
border-radius: 3px;
}
input[type=checkbox]:checked:after {
content: "✓";
font-size: 12px;
}
<input type="checkbox" name="vehicle" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle" value="Car" checked> I have a car<br>
<input type="checkbox" name="vehicle" value="Car" checked> I have a bus<br>
Ответ 6
После стольких неприятностей я получил это.
.purple_checkbox:after {
content: " ";
background-color: #5C2799;
display: inline-block;
visibility: visible;
}
.purple_checkbox:checked:after {
content: "\2714";
box-shadow: 0px 2px 4px rgba(155, 155, 155, 0.15);
border-radius: 3px;
height: 12px;
display: block;
width: 12px;
text-align: center;
font-size: 9px;
color: white;
}
Это будет так при проверке с этим кодом. ![enter image description here]()
Ответ 7
Улучшение другого ответа здесь
input[type=checkbox] {
cursor: pointer;
margin-right: 10px;
}
input[type=checkbox]:after {
content: " ";
background-color: lightgray;
display: inline-block;
position: relative;
top: -4px;
width: 24px;
height: 24px;
margin-right: 10px;
}
input[type=checkbox]:checked:after {
content: "\00a0\2714";
}
Ответ 8
Когда вы вводите тег body, нажмите пробел только один раз, не закрывая тег, и введите bgcolor="red"
, например. Затем выберите цвет шрифта для вашего шрифта.