Как выровнять изображение и текст

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

У меня есть изображение (изображение профиля) и текст (имя пользователя) под <h1> Дома. Я пытаюсь выровнять текст точно по центру справа от изображения. пример:

[
top of image
CENTER OF IMAGE  TEXT
bottom of image
] ( what I expected/Wanted)

Я не получаю желаемого результата. Вместо изображения текст находится вверху справа от изображения. пример:

[
top of image
center of image
BOTTOM OF IMAGE TEXT
](result)

HTML:

        <div class = "sidebar">
            <h1 class = "home">Home</h1> 
            <a class = "create-button" href = "#">Create</a>

            <div class = "personnal-info">
                <img class = "sidebar-profile-picture" src = "icons\my profile.jpg">
                <p class = "my-user-name">Said User</p>
            </div>
        </div>

CSS:

.sidebar {
    position: fixed;
    left: 0;
    bottom: 0;
    top: 55px;
    background-color: white;
    z-index: 100;
    padding-top: 5px;
    background-color: white;
    width: 400px;
    margin-left: 20px;
  }

.home {
    display: inline-block;
    font-size: 35px; 
    font-family: Roboto, Arial;
}

.create-button {
    display: inline-block;
    font-size: 17px;
    color: rgb(23, 93, 255);
    text-decoration: none;
    margin-left: 220px;
}

.sidebar-profile-picture {
    height: 30px;
    border-radius: 16px;
    margin-right: 8px;
}

.my-user-name {
    display: inline-block;
    font-size: 16px; 
    font-family: Roboto, Arial;
    font-weight: bold;
}

выравнивание текста: конец; ?

Andrew Kruglik 17.09.2022 13:03

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

Emile Youssef FEGHALI EL 17.09.2022 13:05

попробуйте поплавок: влево; на картинке

Andrew Kruglik 17.09.2022 13:07
Улучшение производительности загрузки с помощью 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
3
52
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Не уверен, что правильно понял ваше требование. Вы можете использовать flex для достижения следующего результата. Дайте мне знать, если это работает

.personnal-info {
    display:flex;
    align-items: center
}
 <div class = "sidebar">
            <h1 class = "home">Home</h1> 
            <a class = "create-button" href = "#">Create</a>

            <div class = "personnal-info">
                <img class = "sidebar-profile-picture" src = "//via.placeholder.com/50x50">
                <p class = "my-user-name">Said User</p>
            </div>
        </div>

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

Emile Youssef FEGHALI EL 17.09.2022 13:15

0 Привет, Михай Т, спасибо за ответ! Это действительно сработало. Но не поставил его в идеальное положение. На самом деле я решил проблему, поставив position: relative; на личной информации. Затем я вставил свое имя пользователя position: absolute; верх: -8px; PS: Это также работало с основанием: -8px; вместо верха: -8px. Спасибо !

Emile Youssef FEGHALI EL 17.09.2022 13:18

Привет, Михай Т, спасибо за ответ! Это действительно сработало. Но не поставил его в идеальное положение. Я фактически решил проблему, поставив position: relative; в личной информации. Затем я ввел свое имя пользователя position: absolute; top: -8px; PS: Это также работало с bottom: -8px; вместо top: -8px. Спасибо !

Пожалуйста, добавьте это как комментарий к моему ответу. Не как фактический ответ :), а также оцените мой ответ как принятый, если он сработал. Спасибо !

Mihai T 17.09.2022 13:15
Ответ принят как подходящий

Flexbox идеально подходит для этих случаев. Измените div .personalInfo на flexbox, добавив свойство display: flex. Затем у вас есть доступ ко многим другим свойствам для центрирования и т. д.

.sidebar {
    position: fixed;
    left: 0;
    bottom: 0;
    top: 55px;
    background-color: white;
    z-index: 100;
    padding-top: 5px;
    background-color: white;
    width: 400px;
    margin-left: 20px;
  }

.home {
    display: inline-block;
    font-size: 35px; 
    font-family: Roboto, Arial;
}

.create-button {
    display: inline-block;
    font-size: 17px;
    color: rgb(23, 93, 255);
    text-decoration: none;
    margin-left: 220px;
}

.sidebar-profile-picture {
    height: 30px;
    width: 30px; /* demo only */
    background-color: blue; /* demo only */
    border-radius: 16px;
    margin-right: 8px;
}

.my-user-name {
    /* display: inline-block; -> not necessary anymore*/ 
    font-size: 16px; 
    font-family: Roboto, Arial;
    font-weight: bold;
}

/* FLEXBOX */
.personal-info{
  display: flex;
  flex-direction: row; /* display children in a horizontal row */
  align-items: center; /* vertically align items in the center */
}
<div class = "sidebar">
    <h1 class = "home">Home</h1> 
    <a class = "create-button" href = "#">Create</a>

    <div class = "personal-info">
        <img class = "sidebar-profile-picture">
        <p class = "my-user-name">Said User</p>
    </div>
</div>

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