Центрируйте текст и поместите значок справа с помощью CSS попутного ветра

#html #css #tailwind-css

Вопрос:

Я пытаюсь создать боковое меню с помощью CSS Tailwind. Но я не могу центрировать значок на той же высоте, что и текст LI-тега.

 
    <ul id="sidemenu" class="text-center border-b-2 border-gray-200">
      <li class="border-t-2 border-gray-200">
        <div href="#" class="block cursor-pointer block py-3 relative">
          <span class="">Title 1</span>
          <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 absolute right-1 top-1/2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
          </svg>
        </div>
        <ul class="bg-gray-50 border-t-2 border-gray-100">
          <li class="py-2">Sub-Item-1</li>
          <li class="py-2">Sub-Item-2</li>
          <li class="py-2">Sub-Item-3</li>
        </ul>
      </li>
      <li class="border-t-2 border-gray-200">
        <span class=" block py-3 cursor-pointer">Title 2</span>
      </li>
      <li class="border-t-2 border-gray-200">
        <span class=" block py-3 cursor-pointer">Title 3</span>
      </li>
    </ul>

 

Вот пример того, как это выглядит сейчас: https://jsfiddle.net/j6y3sznq/

Ответ №1:

В классе .top-1/2 отсутствует свойство transform, которое можно добавить transform: translateY(-50%) , чтобы выровнять его по центру.

 .top-1/2 {
  transform: translateY(-50%);
} 

Обновленная скрипка здесь

Решение второе: имя класса попутного ветра. Просто добавьте transform -translate-y-2/4 в элемент svg.

 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.15/tailwind.min.css">
<ul id="sidemenu" class="text-center border-b-2 border-gray-200">
  <li class="border-t-2 border-gray-200">
    <div href="#" class="block cursor-pointer block py-3 relative">
      <span class="">Title 1</span>
      <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 absolute right-1 top-1/2 transform -translate-y-2/4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
      </svg>
    </div>
    <ul class="bg-gray-50 border-t-2 border-gray-100">
      <li class="py-2">Sub-Item-1</li>
      <li class="py-2">Sub-Item-2</li>
      <li class="py-2">Sub-Item-3</li>
    </ul>
  </li>
  <li class="border-t-2 border-gray-200">
    <span class=" block py-3 cursor-pointer">Title 2</span>
  </li>
  <li class="border-t-2 border-gray-200">
    <span class=" block py-3 cursor-pointer">Title 3</span>
  </li>
</ul> 

Обновленная скрипка здесь

Комментарии:

1. Спасибо! Это работает. Но это невозможно решить, используя только классы попутного ветра?

2. Почему нет. Я обновлю скрипку, просто дай мне минуту

3. Очень приятно, спасибо за решение с попутным ветром! Теперь я пойду и попытаюсь понять, почему это работает. 🙂

4. Всегда пожалуйста.. Попробуйте официальные документы для получения более подробной информации tailwindcss.com/docs/transform

5. Документы для перевода свойств tailwindcss.com/docs/translate