Подтвердить что ты не робот

Атрибут 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;
        }

Заранее благодарим всех, кто может указать мне в правильном направлении!

4b9b3361

Ответ 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", например. Затем выберите цвет шрифта для вашего шрифта.