|
|
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Имею разметку и css: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. Цель: Сделать так, чтобы span с id="something" отображался постоянно, а блок IconsDiv с картинкой внутри — только при наведении курсора. Вопрос: Что не так в моём коде? (При наведении на li, его класс меняется, но блок IconsDiv остаётся невидимым). Я так понимаю, что почему-то значения дочерних стилей не пересчитываются при изменении класса. Так? Как этого избежать? Корни проблемы: изначально код работал, но оочень медленно в IE (с применением js и DOM): Код: plaintext 1. 2. Заранее прошу прощения, если такое уже было. Не нашёл поиском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:21 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
потому что стиль, прописанный в аттрибуте, в любом случае сильнее, чем из css ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:24 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeper Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:25 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечKeyKeeper Код: plaintext Т.е. достаточно его убрать и усё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:28 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperЯростный МечKeyKeeper Код: plaintext Т.е. достаточно его убрать и усё?И назначить для li изначально класс bg_na ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:29 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечИ назначить для li изначально класс bg_naА. Ну, да, это конечно вы правы. Исправил. Работает. Это решение однозначно лучше чем с javascript. Но, к сожалению, оно работает так же медлено в IE... :( И это при всего лишь 109-ти таких li на страничке (в трёх разных ul). У вас есть идеи, как ускорить? Или это уже только от браузера зависит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:33 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Кстати, спасибо вам, Яростный Меч! Я бы сам долго ковырялся с отладкой css... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:34 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Для начала попробуйте Код: plaintext 1. 2. Просто убрали ul li. Где-то читал, что так будет быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:37 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
А непроще использовать hover в стилях и там всякие хитрые псевдо стили и селекторы ? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:42 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечДля начала попробуйте Код: plaintext 1. 2. Просто убрали ul li. Где-то читал, что так будет быстрееТо же самое. На глаз никаких отличий нема. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:44 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
mahouneА непроще использовать hover в стилях и там всякие хитрые псевдо стили и селекторы ? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:45 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечЕсли учитывается IE6, то надо будет помещать <li> в <a>, а для а уже прописывать, псевдоклассы только для а работают в ИЕ6IE6 учитывается. Не совсем догнал как применять... Так?: Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:49 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Люблю такой брутальный способ: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:50 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperТо же самое. На глаз никаких отличий нема. :(Попробуйте тогда через ДОМ, но вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Элементам пришлось немного "уплотниться" в ХТМЛ, чтоб firstChild.nextSibling четко работали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:53 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
AntonariyЛюблю такой брутальный способ: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Jah loves you. Спасибо. Сейчас тоже попробую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 14:54 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечKeyKeeperТо же самое. На глаз никаких отличий нема. :(Попробуйте тогда через ДОМ, но вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Элементам пришлось немного "уплотниться" в ХТМЛ, чтоб firstChild.nextSibling четко работалиЭээм... А если у меня IconsDiv не первый блок внутри ul после "Какой-то текст..." ? Надо тогда не nextSibling брать, а "докапываться" до него, да? Либо несколько раз nextSibling. Либо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:02 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperа "докапываться" до него, да? Либо несколько раз nextSibling. ЛибоТам да. Смотря по ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:03 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечKeyKeeperа "докапываться" до него, да? Либо несколько раз nextSibling. ЛибоТам да. Смотря по ситуации.Либо юзать this.childNodes[x], где х - номер чилда. Но чилд в свою очередь может быть не в LI, а в другом чилде, тогда комбинорованно... Если выражение получится совсем сложным, то в LI при первом обращении можно сохранить ссылку на необходимый элемент, потом обращаться по этой ссылке, так будет быстрее всего. Если вариант Antonariy достаточный по скорости, то лучше всего на нем остановиться и дальше не копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:18 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечЛибо юзать this.childNodes[x], где х - номер чилда. Но чилд в свою очередь может быть не в LI, а в другом чилде, тогда комбинорованно... Если выражение получится совсем сложным, то в LI при первом обращении можно сохранить ссылку на необходимый элемент, потом обращаться по этой ссылке, так будет быстрее всего. Если вариант Antonariy достаточный по скорости, то лучше всего на нем остановиться и дальше не копать.К сожалению, мне пока не удалось реализовать его. Общую таблицу стилей писал не я, так что просто что-то мешается, видимо. То есть проблема решается его способом по вашему мнению? А чем вообще можно объяснить тормознутость? Только реализацией IE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:26 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperА чем вообще можно объяснить тормознутость? Только реализацией IE?Скорее всего. По идее прямое указание стиля должно давать бОльшую производительность, чем переназначение класса (ведь придется просматривать таблицу стилей, делать какие-то выводы...). ДОМ в первом посте мог тормозить из-за getElementById (да и переназначение классов там тоже есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:34 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperК сожалению, мне пока не удалось реализовать его.Хмм... А почему? Вариант готовый, рабочий. Если добавить стили прямо в ХТМЛ, после других элементов <style>. На всякий случай выставить !important ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:38 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечСкорее всего. По идее прямое указание стиля должно давать бОльшую производительность, чем переназначение класса (ведь придется просматривать таблицу стилей, делать какие-то выводы...). ДОМ в первом посте мог тормозить из-за getElementById (да и переназначение классов там тоже есть)Понятненько... ) В моём варианте я больше всего грешил на getElementById. Порноподход, имхо. Яростный МечKeyKeeperК сожалению, мне пока не удалось реализовать его.Хмм... А почему? Вариант готовый, рабочий. Если добавить стили прямо в ХТМЛ, после других элементов <style>. На всякий случай выставить !important Потому что есть ещё дела... Невнимательность, возможно. Сейчас попробую ще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:41 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Яростный МечKeyKeeperК сожалению, мне пока не удалось реализовать его.Хмм... А почему? Вариант готовый, рабочий. Если добавить стили прямо в ХТМЛ, после других элементов <style>. На всякий случай выставить !important Вот снова написал, не пашет. Отображается только блок, который должен быть скрыт по умолчанию. Остальное скрыто. Перемещение курсора не меняет ничьей видимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:53 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
KeyKeeperВот снова написал, не пашет. Отображается только блок, который должен быть скрыт по умолчанию. Остальное скрыто. Перемещение курсора не меняет ничьей видимости.Упс, моя лажа. Тегом <a> обернул не тот кусок, а всё... Но hider не скрывает ни фига в ie... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 15:58 |
|
||
|
Про изменение дочерних стилей при изменении родительского класса
|
|||
|---|---|---|---|
|
#18+
Способ с <a class="hider"> показал ту же низкую производительность, что и остальные... Кроме того, он не подходит мне, т.к. помимо картинок оборачиваются и другие теги <a>, что некорректно. Придётся использовать способ Яростного меча Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 16:28 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=279&tid=1454235]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 353ms |

| 0 / 0 |
