CSS, как уменьшить определение стиля? - PullRequest
1 голос
/ 25 июня 2010

У меня есть определение стиля css, подобное следующему:

input[type=email], input[type=tel], input[type=url], input[type=text], input[type=password], input[type=file], textarea { ... }

Может ли это быть уменьшено до чего-то более короткого?

Примечание: я не хочу применять стиль к, например, input[type=checkbox], input[type=radio] или input[type=image].

Ответы [ 3 ]

2 голосов
/ 10 июля 2010

Вы должны сделать общее объявление, а затем обработать исключения.

input {
    p: v1;
}

input[type=checkbox], input[type=radio], input[type=image] {
    p: v2;
}

, где v2 отменяет v1;

1 голос
/ 10 июля 2010

Если вы знаете, что эти типы будут отображаться только в элементах input, то вы можете сделать это:

*[type="email"],
*[type="tel"],
*[type="url"],
*[type="text"],
*[type="password"],
*[type="file"],
textarea {
  border: 1px solid red;
}

Firefox 3.6.6, Iron 5.0.380 и Opera 10.60 не имели проблем, но IE не замечает. Это относится и к селекторам, используемым в вопросе. Единственный ответ, который обеспечивает кросс-браузерное решение - это ответ Люка Бернса.

0 голосов
/ 25 июня 2010

Вы можете присвоить всем полям один и тот же класс, чтобы они могли иметь одинаковый стиль:

html:

<input class="inputClass" type="tel" /> <input class="inputClass" type="url" />

css:

.inputClass { ... }

Если по какой-то причине вы не можете и должны обходиться без классов, то единственный способ сделать это - то, что у вас есть.

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