Как я могу разместить этот текст в этом <span>, чтобы он отображался в строке

У меня есть это <span>, которое создает вывод изображения ниже:

        <li>
            <a onClick = {onSearchPageClick} role = "presentation">
                <span className = "icon is-medium">
                    <i className = "fas fa-search" />
                </span>{' '}
                Search
            </a>
        </li>

Вывод изображения:

Затем у меня есть этот код с использованием span, но текст находится под значком:

<li>
    <a onClick = {onProfilePageClick} role = "presentation">
        <span className = "icon is-medium">
            <i className = "fas fa-user" />
        </span>{' '}
        <div>
            {authUser && Array.isArray(authUser.roles) && authUser.roles.includes(ROLES.USER) ? (
                <div>Dashboard</div>
            ) : (
                <div>Sign in</div>
            )}
    </div>
        </a>
</li>

Пожалуйста, посоветуйте, как это сделать, я пытался часами

Попробуйте убрать <div> после <span>.

Lal 23.12.2020 20:34
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
1
105
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Тег <span> отображается встроенным, а тег <div> — нет. Вы можете использовать <span> или стилизовать <div>, например:

<div style = {{display: 'inline'}}>
   // your code goes here
</div>

Ничего не меняйте в своем коде. Просто добавьте эти свойства CSS flexbox в тег привязки.

li a{
    display:flex;
    align-items:center;
    justify-content:center;
}

На самом деле это выровняет ваш текст icon и sign in точно по центру как по горизонтали, так и по вертикали.

Ответ принят как подходящий

вот рабочий пример: https://codesandbox.io/s/zen-sky-zh5tg?file=/src/App.js:0-531

Чтобы создать рабочий пример, я удалил часть логики, опубликованной в исходном коде.

код просто использует flex box:

   <li style = {{ listStyleType: "none" }}>
      <a onClick = {() => console.info("clicked")} style = {{ display: "flex", alignItems: "center" }}>
        <span className = "icon is-medium">
          <div style = {{ marginRight: 5 }}>avatar</div>
        </span>
        <div>{authUser ? <div>Dashboard</div> : <div>Sign in</div>}</div>
      </a>
    </li>

Другие вопросы по теме