1. Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с Правилами раздела
    Скрыть объявление

[Помогите] Почему так нельзя???

Тема в разделе "Вёрстка (HTML, CSS)", создана пользователем Vimperno, 6 июн 2019.

  1. Vimperno

    Vimperno

    Регистрация:
    11 мар 2019
    Сообщения:
    10
    Симпатии:
    0
    Доброго всем времени суток! Возникла непонятная ситуация.Я учусь,поэтому прошу строго не судить. У меня есть блок в котором необходимо расположить определенным образом ряд элементов,должно быть как на картинке:[​IMG]
    Каждый элемент у меня является li, все они соответственно закинуты в ul, а тот в свою очередь в div контейнер.
    div li {display:inline-block;} выстраиваю всех в ряд,получается так:
    [​IMG]
    Вопрос: из этого положения я пытался выровнять каждую по высоте примерно так div li:nth-child(5) {margin-top:75px;}
    но они выравниваются всей линией, но не как не по отдельности! Почему так происходит??? Я уже выровнял все с помощью position, но хотелось бы понять почему не получилось с помощью margin-top???
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это как? position отвечает за способ размещения элемента на странице, но не за конкретное положение.

    Не видя весь код я могу только гадать.
    Предполагаю, что стили могли применится не к самим кружкам, а к их обёртке. Либо есть какая-то ошибка в остальных свойствах, которая не даёт позиционировать эти блоки поодиночке.
     
  3. Vimperno

    Vimperno

    Регистрация:
    11 мар 2019
    Сообщения:
    10
    Симпатии:
    0
    Прошу прощения,что не выложил сразу код.

    HTML:

    [​IMG]

    CSS(в advatages_item указал position:relative для последующего позиционирования,изначально пытался выровнять все блоки по типу: advatages_item li{margin-top:.....;})

    [​IMG]

    Как реализовано сейчас:

    [​IMG]
     
    Последнее редактирование: 7 июн 2019
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вам нужно было задать размеры и display для advatages_item. Соответственно, его высота должна быть достаточной, чтоб уместить дугу кружков.
    И обязательно overflow:hidden, чтоб точкой отсчёта для отступов была именно граница блока.

    И зачем такой огромный line-height у li? Вы пытаетесь его использовать вместо задания высоты?

    Вообще, вёрстку надо смотреть вживую. Об этом и в правилах раздела сказано (и указано, куда её можно выложить, если нет хостинга).
     
  5. Vimperno

    Vimperno

    Регистрация:
    11 мар 2019
    Сообщения:
    10
    Симпатии:
    0
    Спасибо вам большое за совет, буду пробовать.

    line-height использовал для вертикального выравнивания текста внутри кружков.

    На счет правильного размещения кода в разделе, учту.Спасибо.
     
    Последнее редактирование: 7 июн 2019
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Я уже и забыл об этих хитростях.
    Используйте флексбокс - https://css-tricks.com/snippets/css/a-guide-to-flexbox/ он существенно упрощает жизнь верстальщика и все браузеры уже давно это нормально поддерживают.
     
  7. Vimperno

    Vimperno

    Регистрация:
    11 мар 2019
    Сообщения:
    10
    Симпатии:
    0
    Ок,попробую,спасибо!
     
  8. alextg

    alextg

    Регистрация:
    29 июл 2019
    Сообщения:
    2
    Симпатии:
    0
    Зачем вообще подкладывать картинку в background? Все это можно тоже стилями сделать.
     
  9. urbanoidSPB

    urbanoidSPB

    Регистрация:
    7 авг 2019
    Сообщения:
    2
    Симпатии:
    0
    Отвечая на Ваш вопрос - так нельзя, потому что когда вы задаёте свойство display:inline-block тегам LI - они воображают себя текстом и очень старательно выстраиваются в линию относительно параметра свойства vertical-align
    Решение -
    ul - display:block; position:relative;
    li - display:block; position:absolute;
    и задаёте значение top разное для каждого элемента.
    Либо да, flexbox контейнер + position:relative для элементов
    По-моему так корректнее всего, хотя могу и врать где-то, много лет версткой не занимался