[CSS] Как задать стиль по пользовательскому атрибуту

mist

Вот очередной ламерский вопросик: если у меня есть тэги с заданным мною атрибутом, типа <DIV MyLevel=2>, то могу ли я именно для них задавать свой стиль? И какой будет при этом синтаксис?

skvoria

А не проще этим тегам привязать id какой-нибудь и сделать стандартными методами? #myid {... }

mist

Оно-то, конечно, проще , но мне хочется id использовать для других вещей (т.е. он будет разным)

mist

И вот ещё, вдогонку, вопрос появился (не буду уж отдельный тред делать) - можно ли мне как-нибудь одним махом изменить свойство у всех элементов, содержащихся в элементе-контейнере? Т.е., например, есть у меня что-нибудь такое:


<DIV class="parent" id="parent1">Parent text 1
<DIV class="child1">Child1 text1</DIV>
<DIV class="child1">Child1 text2</DIV>
</DIV>
<DIV class="parent" id="parent2">Parent text 2
<DIV class="child1">Child1 text1</DIV>
<DIV class="child1">Child1 text2</DIV>
</DIV>

и я хочу, к примеру, поменять цвет у всех child1, которые внутри parent2. Пытался играть с object.children, но там придётся прогонять их всех в цикле object.children[indx], а хочется сделать что-то вроде object.children.all.style.color=red.
...кто-нибудь понял, чего я тут пытался выразить?

skvoria

Вроде понял
кажется красивыми методами не получится... только в цикле. Не припомню я, чтобы подобная коллекция существовала.
А вообще порой МСДН. Там можно много интересного накопать.

dedwowan


<DIV MyLevel=2 class="MyLevel2">


Если ты хочешь сделать это в html
Вообще по спецификации CSS можно обращаться к элементу с определенным набором атрибутом - синтаксис выглядит так:

E[foo] - Сопоставляется любому элементу E с набором атрибутов "foo" (независимо от значения).
E[foo="warning"] - Сопоставляется любому элементу E, у которого значение атрибута "foo" в точности равно "warning".
E[foo~="warning"] - Сопоставляется любому элементу E, у которого значением атрибута "foo" является список значений,
разделенных пробелами, и одно из этих значений в точности равно "warning".


IE данные свойства CSS не поддерживает.

dedwowan


#parent2 .child1 {
color:red;
}

mist

"#parent2 .child1" - это хорошо, но беда в том что мне надо это менять динамически из javascript'а: по клику на любом из parent'ов должны поменяться свойства у всех вложенных <DIV>'ов, т.е. я отслеживаю по event.srcElement, а дальше нужно что-то типа event.srcElement.child1.style, но такая фишка не проходит.
А то что было в предыдущем посте (про обращение по атрибутам) - это было бы как раз идеальным решением, но раз IE не поддерживает - увы...

mist

И, кстати: #parent2.child1{color:red;} - у меня не работает!

dedwowan

пробел поставить забыл
там есть возможность переопределять атрибут класс у тега, непомню только как
Оставить комментарий
Имя или ник:
Комментарий: