Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 37
1

Переопределение стилей родительского и родственного элементов

22.03.2018, 18:12. Показов 1602. Ответов 4

Author24 — интернет-сервис помощи студентам
Есть такая структура:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="content">
<div class="left-block">
<ul class="output">
<li class="about" style="display: none;">...</li>
<li class="gallery" style="display: none;">...</li>
<li class="configurator" style="display: list-item;">
<iframe height="530px" width="670px" src="https://..."></iframe>
</li>
</ul>
</div>
<div class="right-block">
<ul class="tabs">
<li class="featureList tab-about">...</li>
<li class="featureList tab-gallery">...</li>
<li class="featureList tab-configurator current">
<a href="#configurator" onclick="return false">Конфигуратор</a></li>
</ul>
</div>
</div>
Нужно переопределять стили элементов <div id="content">, <div class="left-block"> и <div class="right-block"> тогда, когда содержимое элемента <li class="configurator" style="display: list-item;"> видимо.
Я вижу два варианта:
1. Проверить на наличие в dom-дереве элемента <li class="featureList tab-configurator current"> с помощью
Javascript
1
$("li").is(".featureList configurator current")
и если есть, то переопределять стили.
2. Переопределять стили при клике на ссылку <a href="#configurator">.

После того, как пользователь кликает на другие ссылки из списка, например, gallery или about, стили должны возвращаться обратно.

Вопрос в том, какой из этих вариантов оптимальный или есть какие-то другие решения?

Добавлено через 57 минут
Оказывается, на jQuery можно проверить видимость элемента. Пока получается так:

Javascript
1
2
3
4
5
6
7
8
9
10
if ($("li.output.configurator").is(":visible"))
{
    content.style.width="1300px";
    left-block.style.width="1038px";
    right-block.style.cssText="float: right; \
    width: 262px;"
}
else {
    ;
}
Помогите пожалуйста, какие тут есть ошибки?

Добавлено через 2 часа 47 минут
Очень нуждаюсь в любой подсказке, векторе, куда копать
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2018, 18:12
Ответы с готовыми решениями:

Переопределение стилей Bootstrap 4
Здравствуйте, как я могу изменить bootstrap 4 стили? В частности мне необходимо изменить текст на...

Переопределение CSS стилей компонента в Joomla 2.5.?
Всем Привет! Хочу изменить CSS стили непосредственно в компоненте Joomla 2.5. C...

Указатель на функцию родственного класса
Есть два класса: class Base { public: Base(); ~Base(); void (Base::*SomeF1)(); };

Чем отличается импорт стилей от подключения связанных стилей css?
чем отличается импорт стилей от подключения связанных стилей css? &lt;link rel=&quot;stylesheet&quot;...

4
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 37
22.03.2018, 18:36  [ТС] 2
Вот визуально, что нужно...
Миниатюры
Переопределение стилей родительского и родственного элементов  
0
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
23.03.2018, 10:23 3
не ясна сама логика работы твоих блоков, в левом у тебя фрейм, а в правом у тебя список выбора? и когда щелкаешь по спискам что должно происходить?
1
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 37
23.03.2018, 11:58  [ТС] 4
В правом список выбора, когда щелкаешь по пунктам меню в левом блоке меняется содержимое.
При нажатии на пункт galery слева отображаются фотки, при нажатии на configurator - фрейм. И вот при выборе пункта configurator необходимо менять размеры и позиционирование общего (content), левого и правого блоков, а при нажатии на другие пункты списка возвращать стили обратно

Добавлено через 25 минут
Думается, легче и очевиднее всего повесить на нужный пункт списка событие, при котором будут меняться классы у нужных мне элементов
0
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
23.03.2018, 12:05 5
Лучший ответ Сообщение было отмечено Цитадель как решение

Решение

а зачем переопределять стили если ты можешь сразу написать правильные у каждого блока, когда их не видно не все равно ли какие там стили? И зачем их в списке держать, если можно просто в дивах?
1
23.03.2018, 12:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2018, 12:05
Помогаю со студенческими работами здесь

Изменение стилей элементов
Здравствуйте, у меня такая задача: есть код HTML &lt;span &gt;&lt;input type=&quot;checkbox&quot; value=&quot;1&quot;...

Скругленные углы у родительского блока и позиционирование дочерних элементов
Доброго времени суток Есть две проблемы. 1. На зеленом блоке не работает закругление углов. Хотя...

Выборка родительского элемента и его дочерних элементов в дереве
День добрый Ломаю голову над вопросом. Как сделать выборку родительского элемента и его...

Изменение стилей для элементов showDialog
Здравствуйте. Как изменить стили элементов showDialog? Есть элементы диалога, в виде кнопок(скрин...

Изменение стилей элементов с помощью hover
Доброй ночи. Есть следующий блок: &lt;div class='main-block'&gt; &lt;div class='block-1'&gt; ...

Приоритет CSS-стилей для элементов
Здравствуйте.Подскажите пожалуйста разобраться с заданием на HTMLBOOK. Вот само задание. 1....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru