#css #forms #css-selectors #inputbox
#css #формы #css-селекторы #inputbox
Вопрос:
У меня есть форма inputbox, и мне нужно написать хороший селектор. Мне нужно присвоить атрибуты только тому, что находится внутри inputbox. форма выглядит следующим образом:
<label></label>
<input type="text" disabled="disabled" name="xxx" size="100" value="abcd" class="yyy" />
однако у меня на странице есть больше элементов этого класса.
каков наилучший способ?
Комментарии:
1. Где находится ваш контейнер inputbox? Это самая важная часть написания селектора для отслеживания всех его потомков (зная его идентификатор / имя). Кроме того, какой атрибут всех элементов ввода будет общим?
2. <набор полей> <легенда> это мое поле ввода</legend> <p> <label></label> <тип ввода=»текст» отключен = «disabled» имя= «xxx» размер = «100» значение = «abcd» класс = «гггг» /> </fieldset>
3. Если это имя класса, о котором вы беспокоитесь, лучше, если вы назовете класс, отличный в качестве стандартного от чего-то более подходящего, если вы передадите исходный код кому-то другому, поймут ли они, чего вы пытались достичь быстро? Если нет, посмотрите на именование вещей лучше, хотя псевдокод помогает.
4. ну, я просто пишу css, поэтому я не могу редактировать html, за это отвечает кто-то другой
Ответ №1:
Поскольку вы добавили класс «yyy», вы можете просто продолжить и выполнить следующее:
<style type="text/css">
.yyy {
font-size: 14px;
font-family: Arial;
color: #FF0000;
}
</style>
Вы, конечно, можете вставить приведенный выше HTML-код и поместить его в свой HTML-документ, но лучше всего держать HTML и CSS подальше друг от друга.
Итак, добавьте этот код в свой тег head:
<link href="some/style.css" type="text/css" rel="stylesheet" />
И внутри style.css:
.yyy {
font-size: 14px;
font-family: Arial;
color: #FF0000;
}
Комментарии:
1. спасибо, но проблема в том, что у меня больше элементов класса ‘yyy’, но я хочу, чтобы они выглядели немного иначе, чем то, что будет внутри моего поля ввода
2. Хорошо, но если вы не хотите переименовывать класс, тогда прикрепите к нему другой элемент: например: <span class=»demo»><input …. class=»гггг»></span> затем измените начальную строку css на: .demo .гггг { размер шрифта: 14 пикселей;….
3. @mike Ты хочешь сказать, что у тебя есть больше элементов, не входящих в класс yyy? Если да, то почему бы не настроить таргетинг для ваших входных элементов с классом yyy. ‘ввод. гггг {}’
4. ну, нет, к сожалению, у меня есть еще пара полей ввода с тем же классом на других страницах, которые было бы неплохо выглядеть по-другому
5. есть ли какой-либо способ, которым я могу использовать имя из формы, чтобы написать селектор для этого определенного поля ввода?
Ответ №2:
Вы могли бы использовать любой из них input.yyy {}
, который будет работать во всех браузерах, но если у вас есть более одного элемента ввода на странице с классом yyy, он выберет их все.
Альтернативой является ввод [name = xxx] с использованием нового селектора CSS3, но это не будет работать в старых браузерах, поэтому зависит от того, насколько важно, чтобы стиль работал везде.
Комментарии:
1. отлично 🙂 просто имейте в виду, что это не будет работать в IE до версии 9, если вы не используете jQuery для назначения стиля вместо этого.