Работа с текстом и иконками-маркерами в списке с Bootstrap

Подскажите, делаю тестовый проект работая на Bootstrap 5, столкнулся с проблемой, которую никак не могу решить, надеюсь подскажите в какую сторону нужна думать - пробовал разные варианты, но совсем не помогло, не понимаю как это делается. Прилагаю скриншот. Проблема в переносе текста, при создании списка большой текст переносится в нём с большими интервалами. Иконки и текст находятся внутри списка, т.к. не знаю как иначе выравнивать их, так проще всего вроде как, но проблема с текстом тогда. Код html такой:

<li class="mb-1"><img class="icon me-2" src="./Image/Icon/Sqok.svg" alt="icon">Мы согласовываем с Вами эскиз и все нюансы;</li>

Класс icon задаёт иконке просто размеры:

.icon {
   width: 48px;
   height: 48px;
}

Куда думать?

i


Ответы (1 шт):

Автор решения: Stark

Я бы советовал Вам иконки пунктов реализовать через псевдоэлемент, скажем, before элемента li. Потом Вас будет проще управлять этим через CSS. То есть, Вы сам элемент списка li позиционируете относительно через position: relative;, а его псевдоэлемент позиционируете абсоютно с левой стороны. Самому элементу li нужно будет придать некий внутренний отступ слева padding-left, чтобы избежать наложение Вашей иконки поверх текста.

Например, при такой разметке:

    <ul class="list">
        <li class="mb-1">Мы обговариваем с Вами все детали: тематику, стиль и сюжет портрета;</li>
        <li class="mb-1">Вы вносите предоплату в размере 30% от стоимости шаржа;</li>
        <li class="mb-1">Я создаю предварительный эскиз;</li>
        <li class="mb-1">Мы согласовываем с Вами эскиз и все нюансы;</li>
    </ul>

я использовал следующие стили:

.mb-1 {
    position: relative;
    padding-left: 40px; // здесь регулируется расстояние между иконкой и текстом
}

.mb-1::before {
    content: "";
    display: inline-block; // это нужно, чтобы можно было управлять шириной и высотой элемента
    width: 48px;
    height: 48px;
    background: url([= здесь Ваш путь к иконке =]) 0 0 /cover no-repeat;
    position: absolute;
    left: 0; // этими значениями выставляйте иконку относительно элемента списка
    top: -3px;
}
→ Ссылка