2013-02-17 3 views
-4

Я хочу выбрать множество разных идентификаторов и классов. Например:css, выбирая множество классов ids

<div id="a b c d" class="e f g h i j ">Red text</div> 
#a.#b.#c.#d.e.f.g.h.i.j{color:red;} 

Также попробовал:

#a#b#c#d.e.f.g.h.i.j{color:red;} 

JSFIDDLE: http://jsfiddle.net/vHvm9/

Это не работает. Разве CSS не поддерживает такой выбор или я что-то не так?

+9

один элемент не может иметь несколько идентификаторов. –

+0

* ID * делает элемент ** уникальным **, поэтому ваш дизайн из нескольких идентификаторов не имеет смысла. В любом случае элемент can not имеет более одного * ID * – vlcekmi3

+1

И, наконец, вам не нужно указывать _all_ классы элемента для выберите его. Поэтому в вашем примере выбора, например, класса 'e', ​​было бы достаточно: '.e {color: red;}'. Более точный селектор требуется только в том случае, если вы должны быть более точным. – arkascha

ответ

3

Что касается CSS, то ваш второй селектор #a#b#c#d.e.f.g.h.i.j действителен, и вы можете теоретически соответствовать элементу с несколькими идентификаторами в CSS. Но это будет работать только в том случае, если DOM фактически позволяет элементу иметь столько идентификаторов в первую очередь. В HTML пространства не разделяют идентификационные имена, как на имена классов; HTML-элемент может иметь только не более одного идентификатора, заданного атрибутом id, и этот идентификатор не должен содержать пробелы (хотя браузер будет с удовольствием принимать его, если вы так или иначе кормите его такой плохой разметкой).

Вы по-прежнему можете назначать другие идентификаторы одному элементу другими способами (опять же, если DOM разрешает это), но нет абсолютно никакой практической причины, если вы не работаете с каким-то неясным языком разметки, где имеется несколько идентификаторов что нибудь.

Итак, чтобы ответить на ваш вопрос: что вы делаете неправильно, вы пытаетесь присвоить несколько идентификаторов элементу вообще. Просто присвойте один ID без пробелов в его значении и выберите его по этому идентификатору.

2

Как отметил Ян, один элемент не может иметь несколько идентификаторов в HTML или XML.

Но если вы найдете язык хоста (для CSS), который поддерживает несколько идентификаторов, то вы должны использовать правильный селектор CSS:

#a#b#c#d.e.f.g.h.i.j{color:red;} 
+0

Не уверен, что именно это вы действительно хотите выразить. В этом примере указано, что элемент должен иметь все идентификаторы и все классы, как указано в селекторе. – arkascha

+0

@arkascha: 'div # c', но не' div. # C' –

+0

извините, не может последовать за вами там ... – arkascha

Смежные вопросы