Стиль CSS, специфичный для идентификатора в flex

Я пытаюсь изменить цвет границы нескольких вкладок в TabNavigator на основе некоторой логики. Я делаю это с помощью следующего ответа:
Изменение цвета границы вкладки во время выполнения в Flex

var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".MyTabs");
                cssStyle.setStyle("borderColor", "red");

Но теперь цвет границы меняется для всех вкладок с классом MyTabs. Я хочу указать это на нескольких вкладках с определенными идентификаторами.

Я пробовал получить доступ только к одной вкладке по ее идентификатору, но у меня это не работает.

1. var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration("#myTabId.MyTabs");

2. var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".MyTabs#myTabId");

3. var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration("#myTabId");

4. cssStyle.setStyle("#myTabId.borderColor", "red");

Есть ли способ этого добиться?


person Himanshu Yadav    schedule 19.03.2012    source источник
comment
№3 должен работать. Это имело какой-то эффект?   -  person Sam DeHaan    schedule 20.03.2012


Ответы (1)


Чтобы применить css к объекту с определенным идентификатором во flex, вы можете использовать расширенный селектор идентификаторов css: #objectid или MyTabs#objectid. См. этот ресурс Adobe.

person Sam DeHaan    schedule 19.03.2012
comment
Селектор ID - это базовый строительный блок в селекторах, и он далеко не продвинутый. Глупая Adobe и их глупые вводящие в заблуждение названия статей: P - person BoltClock; 20.03.2012
comment
@BoltClock Истинно, но если OP захочет поискать дополнительную информацию по нему, ему будет намного больше повезло с продвинутым ключевым словом там. - person Sam DeHaan; 20.03.2012
comment
@SamDeHaan Согласно JavaDocs StyleManager, он принимает только точку (.) И селекторы типа. Он не поддерживает селектор идентификаторов. - person Himanshu Yadav; 20.03.2012
comment
@HimanshuYadav Хм. Рассматривали ли вы изменение свойства styleName вкладок, которые необходимо изменить? иметь стиль .redBorder (или как бы вы его назвали) в своем блоке Style или таблице стилей, а затем изменить на него соответствующие элементы styleName? - person Sam DeHaan; 20.03.2012
comment
@SamDeHaan Хорошо. Навигатор My Tab содержит VBox. И есть разные классы css для VBox и Tab Navigator. Когда я говорю this.myTabId.styleName, он возвращает мне класс VBox. - person Himanshu Yadav; 20.03.2012