Вопрос №55685 от пользователя Ольга Халеева в испытании «Вкладки»

Ольга Халеева

Здравствуйте, Никита. Я с некоторой периодичностью возвращаюсь к этому испытанию, но никак не могу его пройти, не понимаю механику. Я сдаюсь. Кнопка "посмотреть решение" не активна, как можно его все же посмотреть? нужно для общего развития :)

11 0

Nikita Mikhaylov

Здравствуйте

А давайте всё же попробуем решить. Поверьте — пройти через всё и решить самостоятельно намного ценнее, чем открыть решение и забыть его через пару дней.

Пришлите своё последнее код-ревью и я попробую ещё направить решение в нужное русло.

1

Ольга Халеева

Ревью https://ru.hexlet.io/code_reviews/408293

Переключение между вкладками работает только при :target при попытке подключения :hover :focus меню начинает "бегать" и не работает. Спасибо.

0

Nikita Mikhaylov

А почему вы решили использовать target? Он немножечко о другом. Он нужен именно при клике и работает только для ссылок. Да, связь обеспечивается, но немного не та.

Давайте отбросим сейчас общую картину и возьмём только вкладку HTML. Как при наведении на элемент с data-tab="html" обратиться к блоку с data-tab-content="html"? Вот посмотрите на свою структуру и прям пошагово опишите. Вспомните, что мы можем делать селекторами, а что нет.

Например, мы не можем обратиться к родителю и даже выйти за его пределы. Следовательно, селекторами мы сейчас никак не можем выйти из блока .tabs-items. Это даёт понять, что надо поменять эту структуру, чтобы ссылки и .tabs-content лежали на одном уровне. В таком случае мы станем на шаг ближе к решению.

0

Ольга Халеева

Никита, ну никак не удается выполнить это задание. Я уже попыталась закрепить шапку вкладок, но они по-прежнему пытаются прыгать и работают некорректно.

Ревью - https://ru.hexlet.io/code_reviews/408293

Ну дайте доступ к решению...

0

Nikita Mikhaylov

А почему вы пошли в сторону grid, если к этому моменту мы его ещё не изучали? И почему вы не можете увидеть решение?

0

Nikita Mikhaylov

Я бы посоветовал спокойно, используя те навыки, которые изучены к этому уроку сделать аккуратно с нуля. Сейчас есть некоторые моменты с селекторами, в которых есть небольшие ошибки. Например,

[data-tab]:focus,:hover + div

С точки зрения CSS этот селектор обозначает:

  • Выбрать элементы с data-tab на которых есть событие фокуса. Всё
  • Выбрать соседние div рядом с элементом ? с событием hover. То есть браузер здесь не очень понимает, что от него хотят. Логически вы хотите построить такой селектор
[data-tab]:focus + div, [data-tab]:hover + div {
  // Что-то
}

Но немного запутались в записи самого селектора

1

Ольга Халеева

Nikita Mikhaylov,

А почему вы пошли в сторону grid, если к этому моменту мы его ещё не изучали? И почему вы не можете увидеть решение?

Потому что за то время, что я пытаюсь сделать это испытание я прошла последующие курсы данного направления.

Увидеть решение не могу потому что кнопка "Показать решение" не активна. "Решение учителя Просмотр содержимого доступен только после прохождения соответствующего задания".

0

Ольга Халеева

Nikita Mikhaylov, селектор поправила. Визуально работает очень похоже на эталон. Но тесты не все проходит:

Ревью - https://ru.hexlet.io/code_reviews/408293

PS Раз пять перечитала темы про селекторы и псевдоклассы, но информации, на мой взгляд, все же недостаточно в этих уроках. Если начинаешь с нуля, то основной затык как раз в этих темах идет и 57% решения этого испытания - индикатор.

0

Nikita Mikhaylov

Визуально работает очень похоже на эталон

Тесты (неважно, это тесты для JS, PHP, Python, HTML/CSS) достаточно противны к таким вещам. Действительно может быть очень похожи, но это роботы и с ними особо не поспоришь. Дело в том, что сейчас, при реальной высоте таба (ссылки на него) в 70 пикселей вы задали высоту колонки 30 пикселей. Думаю именно с этим связаны ошибки и, поэтому, я обратил внимание на то, что мы не проходили Grid к этому моменту. Здесь они скорее дополнительную сложность привнесли.

После этого ещё посмотрите на отступы внутри табов. Думаю, что именно из-за того, что я написал выше и получилось такое значение, которое подобралось на глаз.

И, в конце, поработайте немного со шрифтами. Весь основной текст у вас тоже использует насыщенное начертание.

Всё это должно помочь пройти испытание

0

Ольга Халеева

Nikita Mikhaylov, спасибо за развернутые ответы. Дело в том, что проходит четыре теста из пяти. Не проходит ndex-test-js-tabs-template-template-with-a-viewport-of-1440-px-hover-css-tab-1-snap.png, различие в том, что тест отображает, будто при ховере на "CSS" вкладка не раскрывается совсем. Хотя в браузере вкладка при наведении работает.

Все, прошло. Спасибо! Я правильно понимаю, что область наведения (чувствительная для курсора) при разной высоте таба разная получается?

0

Nikita Mikhaylov

Все, прошло. Спасибо! Я правильно понимаю, что область наведения (чувствительная для курсора) при разной высоте таба разная получается?

Да, именно так. Получается, что если сама высота элемента меньше, то сокращается и область взаимодействия. А иногда она может и не очень корректно просто работать. Поэтому всегда стоит следить за тем, чтобы высота элемента в HTML соответствовала тому, что есть на самом деле

Поздравляю с выполнением!

0

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 1 июня
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 1 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 1 июня
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 1 июня
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 1 июня
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 1 июня
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 1 июня
профессия
от 10 080 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 1 июня
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 1 июня
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время
профессия
от 6 300 ₽ в месяц
новый
Автоматизированное тестирование веб-приложений на JavaScript
10 месяцев
с нуля
в разработке
дата определяется