Как расположить мои h1(меня зовут..) и <p>( A ср...) рядом с моим изображением, справа от изображения

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

Я хочу расположить или выделить свой h1 и p справа от моего изображения, как мне это сделать? А также центрировать мое изображение и текст посередине страницы. Я очень смущен. Я сдался через некоторое время и попросил Я узнал о flexbox много месяцев назад и забыл об этом, часть кода здесь была предоставлена ​​

Я не пишу на Stack Overflow, потому что беспокоюсь и нервничаю из-за общественного мнения. Пожалуйста, простите меня за любые ошибки.

Ниже мой код HTML и CSS. Я все еще борюсь с Bootstrap, поэтому я не использую его в этом проекте.

.my-info {
  display: flex;
  align-items: center;
}

.my-info img {
  border-radius: 50%;
  width: 25%;
  height: auto;
  margin-right: 20px;
}

.my-info div {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

h1 {
  color: #f1efe8;
  font-family: 'Droid serif', serif;
  font-size: 36px;
  font-weight: 400;
  font-style: italic;
  line-height: 44px;
  margin: 0 0 12px;
  text-align: center;
}

.heading {
  background-image: url("https://mcdn.wallpapersafari.com/medium/50/40/Tnh47t.jpg");
  background-size: cover;
  width: 100vw;
  height: 50vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.name {
  font-size: 36px;
  font-weight: 400;
  color: black;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  margin: 0;
}

.job {
  font-size: 26px;
  font-weight: 400;
  color: black;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  text-align: center;
  margin: 0;
}
<div class = "heading">
  <h1>The World of me: Portfolio</h1>
</div>

<div class = "my-info">
  <div>
    <img class = "me" src = "CSS/images/me.jpg" alt = "Nevin">
  </div>
  <div class = "personal">
    <h1 class = "name">My name is <strong>Nevin Dabechuran</strong></h1>
    <p class = "job"><em>A Web designer</em></p>
  </div>
</div>

Я хочу, чтобы это выглядело примерно так:Изображение с текстом рядом с ним

Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
0
66
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

во-первых, не будь таким. у тебя две проблемы, да.

1. сделайте h1 и p справа от изображения. для этого просто измените порядок элементов html:

<div class = "my-info">
    <div class = "personal">
        <h1 class = "name">My name is <strong>Nevin Dabechuran</strong></h1>
        <p class = "job"><em>A Web designer</em></p>
</div>
<div>
        <img class = "me" src = "CSS/images/me.jpg" alt = "Nevin">
</div>
  1. центрируя их,

     .my-info {
         display: flex;
         justify-content:center;
     }
    

это иг. просто не стесняйтесь задавать дополнительные сомнения. ведь это место построено из сомнений и вопросов😂

вы указали ширину изображения в %, поэтому он занимает так много места. Также я добавил код для выравнивания содержимого

<div class = "heading">
  <h1>The World of me: Portfolio</h1>
</div>

<div class = "my-info">
  <div>
    <img class = "me" src = "https://png.pngtree.com/element_pic/17/09/23/fa56a61d288b1922002f4f7edf5ce3e6.jpg" alt = "Nevin">
  </div>
  <div class = "personal">
    <h1 class = "name">My name is <strong>Nevin Dabechuran</strong></h1>
    <p class = "job"><em>A Web designer</em></p>
  </div>
</div>
.my-info {
  display: flex;
  align-items: center;
  justify-content: start;
  
}

.my-info img {
  border-radius: 50%;
  width: 70px;
  height: auto;
  margin-right: 20px;
}

.my-info div {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

h1 {
  color: #f1efe8;
  font-family: 'Droid serif', serif;
  font-size: 36px;
  font-weight: 400;
  font-style: italic;
  line-height: 44px;
  margin: 0 0 12px;
  text-align: center;
}

.heading {
  background-image: url("https://mcdn.wallpapersafari.com/medium/50/40/Tnh47t.jpg");
  background-size: cover;
  width: 100vw;
  height: 50vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.name {
  font-size: 36px;
  font-weight: 400;
  color: black;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  margin: 0;
}

.job {
  font-size: 26px;
  font-weight: 400;
  color: black;
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  text-align: center;
  margin: 0;
}
.personal{
  align-items:start;
}

Ваш css размещает ваше имя и элементы работы справа от вашего изображения, но чтобы переместить его вправо от родительского div, используйте display:block и margin-left:auto. Кажется, вы также хотите правильное поле, чтобы мы могли установить оба с помощью margin-inline.

Чтобы центрировать ваш .my-info div, все, что вам нужно сделать, это уменьшить его до ширины содержимого (по умолчанию это 100% ширины экрана, так что он уже, так сказать, «в центре»). Затем мы используем margin: auto, чтобы применить поля одинакового размера с обеих сторон.

Центрирование вещей исторически было PITA в веб-разработке. Вот статья от w3c , чтобы помочь вам. Также есть хорошая утилита под названием howtocenterincss, которую вы можете использовать для автоматической генерации CSS для достижения того, что вы ищете.

У вас также есть несколько лишних css. Я прокомментировал это и аннотировал, чтобы объяснить, как это работает.

Также рекомендуется добавить сброс CSS в ваш код, например. добавление margin:0 к вашему элементу body. Он устраняет некоторую непредсказуемость из таблицы стилей пользовательского агента . Вот короткое видео от Кевина Пауэлла, чтобы объяснить это (если вы еще не подписаны на него, он отлично подходит для начинающих разработчиков и новичков — его курсы того стоят). Удачи в вашей карьере.

P.S. просто прокомментируйте, если у вас есть какие-либо вопросы, и я отвечу на них.

body {
  /* you use this in a few elements so we'll set this as the default in your body, then you only need to add font-family if you need to change away from this */
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  color:black;
}

* { 
  /* css reset - set margin to 0. It means you can remove margin:0 from your h1 and p classes below */
  margin:0;
}

.my-info {
  display: flex;
  align-items: center;
  /*To center your info container, set the width to shrink to the content and then use margin:auto to add space evenly left and right.*/
  width: fit-content;
  margin:auto;
}

.my-info img {
  border-radius: 50%;
  width: 25%;
  /* height: auto; not needed - height: auto is the default */
  display:block;  /*this allows us to position the image. Setting images to block level elements is recommended imho*/
  margin-inline: auto 20px;
  /*margin-right: 20px; deleted this, already declared in margin-inline */
}

.my-info div {
  /* Not needed - so deleted it my.info h1 already aligns your text in the center so you don't need to do this here. It's already covered
  display: flex;
  flex-direction: column;
  justify-content: center; 
  */
}

/* changed this from h1 to .heading-title and added the class to your html - this is because it's also styling the h1 in your 'my-info' div so we end up styling that one twice */
.heading-title {
  color: #f1efe8;
  font-family: 'Droid serif', serif;
  font-size: 36px;
  line-height: 44px;
  margin: 0 0 12px;
  /* text-align: center; not needed as we've used place-items:center in the .heading div which automatically centers the content */
}

.heading {
  background-image: url("https://mcdn.wallpapersafari.com/medium/50/40/Tnh47t.jpg");
  background-size: cover;
  /*width: 100vw; you don't need this as block level elements are 100% of the width of the viewport by default */
  height: 50vh;
  /*display: flex;
  justify-content: center;
  align-items: center; use grid here, you can save yourself a line of CSS :-) */
  display:grid;
  place-items:center;
}

.name {
  font-size: 36px;
}

.job {
  font-size: 26px;
  text-align: center;
}

.name, .job, .heading-title {
  /* we keep repeating this in your css above. Just declare it in one line so if you need to change it, you only need to change it once */
  font-style: italic;
  font-weight: 400;
}
<div class = "heading">
  <h1 class = "heading-title">The World of me: Portfolio</h1>
</div>
<div class = "my-info">
  <div>
    <img class = "me" src = "https://picsum.photos/id/433/200/200" alt = "Nevin">
  </div>
  <div class = "personal">
    <h1 class = "name">My name is <strong>Nevin Dabechuran</strong></h1>
    <p class = "job"><em>A Web designer</em></p>
  </div>
</div>
Ответ принят как подходящий

Вы можете добиться этого, используя float (по-старому) или flexbox.

Вот пример flexbox, основанный на вашем

Я хочу, чтобы это выглядело примерно так

.profile {
            display: flex;
            align-items: center;
            column-gap: 10px;
            margin: 20px;
            border: 1px solid black;
            padding: 5px;
            width: 300px;
            background: #eaeaea;
        }
        
        .profile .thumb {
            width: 100px;
            height: 100px;
            
        }
        .profile .thumb img {
            width: 100%;
            height: auto;
        }

        .profile .name {
            margin: 0;
            font-family: serif;
            font-weight: bold;
            font-size: 18px;
            color: black;
        }
        .profile .job {
            margin: 0;
            font-family: sans-serif;
            font-size: 14px;
            color: black;
        }
<div class = "profile">
    <div class = "thumb">
        <img src = "https://randomuser.me/api/portraits/lego/1.jpg" alt = "Nevin">
    </div>
    <div class = "info">
        <h1 class = "name">Nevin Dabechuran</h1>
        <p class = "job">Web designer</p>
    </div>
</div>

Большое спасибо всем за вашу помощь. Буду следить и редактировать код. Очень признателен. Я знаком с курсами Кевина Пауэллса. Я снова пройду курс повышения квалификации, чтобы вернуться к этому.

Nevz 15.04.2023 01:45

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