CSS-стиль ввода - PullRequest
       40

CSS-стиль ввода

157 голосов
/ 13 июля 2009

Любой стиль для input влияет на каждый элемент ввода. Есть ли способ указать стиль для применения только к флажкам без применения класса к каждому элементу флажка?

Ответы [ 9 ]

272 голосов
/ 13 июля 2009

С помощью CSS 2 вы можете сделать это:

input[type='checkbox'] { ... }

Это должно быть достаточно широко поддержано. Чтобы увидеть поддержку браузеров, перейдите по ссылке: https://webdesign.tutsplus.com/articles/quick-tip-easy-css3-checkboxes-and-radio-buttons--webdesign-8953

21 голосов
/ 24 февраля 2012

Что-то, что я недавно обнаружил для стилизации кнопок радио и флажков. Раньше мне приходилось использовать jQuery и другие вещи. Но это глупо просто.

input[type=radio] {
    padding-left:5px;
    padding-right:5px;
    border-radius:15px;

    -webkit-appearance:button;

    border: double 2px #00F;

    background-color:#0b0095;
    color:#FFF;
    white-space: nowrap;
    overflow:hidden;

    width:15px;
    height:15px;
}

input[type=radio]:checked {
    background-color:#000;
    border-left-color:#06F;
    border-right-color:#06F;
}

input[type=radio]:hover {
    box-shadow:0px 0px 10px #1300ff;
}

Вы можете сделать то же самое для флажка, очевидно, изменив input[type=radio] на input[type=checkbox] и изменив border-radius:15px; на border-radius:4px;.

Надеюсь, это вам пригодится.

8 голосов
/ 05 декабря 2011

Классы также хорошо работают, такие как:

<style>
  form input .checkbox
  {
    /* your checkbox styling */
  }
</style>

<form>
  <input class="checkbox" type="checkbox" />
</form>
5 голосов
/ 28 декабря 2017

Я создаю свое собственное решение без метки

input[type=checkbox] {
         position: relative;
	       cursor: pointer;
    }
    input[type=checkbox]:before {
         content: "";
         display: block;
         position: absolute;
         width: 16px;
         height: 16px;
         top: 0;
         left: 0;
         border: 2px solid #555555;
         border-radius: 3px;
         background-color: white;
}
    input[type=checkbox]:checked:after {
         content: "";
         display: block;
         width: 5px;
         height: 10px;
         border: solid black;
         border-width: 0 2px 2px 0;
         -webkit-transform: rotate(45deg);
         -ms-transform: rotate(45deg);
         transform: rotate(45deg);
         position: absolute;
         top: 2px;
         left: 6px;
}
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
4 голосов
/ 13 июля 2009
input[type="checkbox"] {
 /* your style */
}

Но это будет работать только для браузеров, кроме IE7 и ниже, для тех, кому придется использовать класс.

4 голосов
/ 13 июля 2009

Вы можете применить только к определенному атрибуту, выполнив:

input[type="checkbox"] {...}

Это объясняет это здесь .

2 голосов
/ 29 января 2014

Trident предоставляет псевдоэлемент ::-ms-check для флажков и переключателей. Например:

<input type="checkbox">
<input type="radio">

::-ms-check {
    color: red;
    background: black;
    padding: 1em;
}

Это отображается следующим образом в IE10 в Windows 8:

enter image description here

2 голосов
/ 13 июля 2009

Поскольку IE6 не понимает селекторы атрибутов, вы можете комбинировать сценарий, видимый только IE6 (с условными комментариями) и jQuery или IE7.js Дином Эдвардсом. *

IE7 (.js) - это библиотека JavaScript, позволяющая Microsoft Internet Explorer вести себя как браузер, соответствующий стандартам. Он исправляет многие проблемы с HTML и CSS и обеспечивает прозрачную работу PNG в IE5 и IE6.

Выбор использования классов, jQuery или IE7.js зависит от ваших симпатий и антипатий и других ваших потребностей (возможно, прозрачность PNG-24 по всему сайту без необходимости полагаться на PNG-8 с полной прозрачностью, которая отступает до 1-битной прозрачность в IE6 - создается только Fireworks, pngnq и т. д.)

1 голос
/ 13 июля 2009

Несмотря на то, что CSS предоставляет способ для выполнения стиля, определенного для типа флажка или другого типа, будут проблемы с браузерами, которые не поддерживают это.

Я думаю, что единственным вариантом в этом случае будет применение классов к вашим флажкам.

просто добавьте флажок class = "checkbox" к вашим флажкам.

Затем создайте этот стиль в своем CSS-коде.

Одна вещь, которую вы могли бы сделать, это:

main.css

input[type="checkbox"] { /* css code here */ }

ie.css

.checkbox{ /* css code here for ie */ }

Затем используйте специфичные для IE CSS:

<!--[if lt IE 7]>
   <link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

Вам все равно нужно будет добавить класс, чтобы он работал в IE, и он не будет работать в других браузерах, отличных от IE, которые не поддерживают IE. Но это сделает ваш веб-сайт более дальновидным с помощью кода CSS, и, когда IE получит поддержку, вы сможете удалить, т.е. конкретный код CSS, а также классы CSS из флажков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...