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

start [/forum/topic.php?fid=22&mobile=1&tid=1454235]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 498ms |

| 0 / 0 |
