Top.Mail.Ru
Ответы

<span> при переноске через <br> на следующей строке залезает на img (извените я новичек)

1234567891011121314151617
<img src="images/ch.jpg" class="img" alt="">
        <span id="natahad">Наталья Сергеевна - наш добрый учитель русского языка.<br>
           Она очень добрая и терпеливая, всегда понятно объясняет уроки и помогает каждому ученику.<br>
            Мы её очень любим за чуткое сердце и мудрость. Она делает наши уроки интересными и весёлыми.</span>
а вот css 
.img{
  width: 250px;
  height: 250px;
  border-radius: 40px;

} 
и текст
#natahad{
  color:white;
  position: relative;
  left:50px;
  bottom: 200px;
По дате
По рейтингу
Аватар пользователя
Ученик
4мес

и что ты хочешь нам донести? мы поняли что залезает, а дальше что?

Аватар пользователя
Ученик
4мес

я думаю это итак понятно, но все равно, надо исправить чтобы новая строка начиналась просто чуть ниже, а получается так что текст у меня слева от изоброжения, а на новой строке уже оно зализает на img

Аватар пользователя
Мудрец
4мес

Привет! 👋 Ты молодец, что разбираешься — у всех когда-то был такой этап 😊

Проблема, которую ты описываешь — «текст залезает на картинку при переносе через <br>» — возникает из-за того, что ты используешь position: relative + leftbottom, и при этом **не учитываешь поток документа**.

Давай разберёмся и исправим:

---

### ❌ Почему так происходит?

У тебя:

```html

<img src="images/ch.jpg" class="img" alt="">

<span id="natahad">Наталья Сергеевна ...</span>

```

и CSS:

```css

.img {

width: 250px;

height: 250px;

border-radius: 40px;

}

#natahad {

color: white;

position: relative;

left: 50px;

bottom: 200px; /* ← это поднимает текст ВВЕРХ на 200px, поверх img */

}

```

<span> изначально находится **после** <img> (внизу), но bottom: 200px его поднимает на 200 пикселей — и он начинает "залезать" на изображение.

---

### ✅ Как правильно: варианты решения

#### ✅ Вариант 1: Использовать **flexbox** (лучший и современный способ)

Оберни всё в контейнер:

```html

<div class="teacher-info">

<img src="images/ch.jpg" class="img" alt="Наталья Сергеевна">

<span id="natahad">Наталья Сергеевна — наш добрый учитель русского языка.<br>

Она очень добрая и терпеливая, всегда понятно объясняет уроки и помогает каждому ученику.<br>

Мы её очень любим за чуткое сердце и мудрость. Она делает наши уроки интересными и весёлыми.

</span>

</div>

```

CSS:

```css

.teacher-info {

display: flex;

align-items: flex-start; /* или center — как хочешь */

gap: 20px; /* отступ между фото и текстом */

}

.img {

width: 250px;

height: 250px;

border-radius: 40px;

flex-shrink: 0; /* чтобы не сжималось */

}

#natahad {

color: white;

/* убираем position, left, bottom — они больше не нужны! */

max-width: 600px; /* чтоб текст не растягивался слишком */

}

```

✅ Текст будет **рядом с картинкой**, не будет "залезать", и будет адаптивно выглядеть.

---

#### ⚠️ Если очень хочется оставить position: relative (но это НЕ рекомендуется)

Можно попробовать, но нужно **чётко понимать**, что bottom: 200px — это смещение от нормального места элемента в потоке. Если ты хочешь поднять текст ровно на высоту картинки, то лучше использовать margin-top: -250px, но даже это — костыль 🛠️.

---

### 🔔 Советы новичку:

1. Старайся **избегать position: relative/absolute для базового позиционирования** — они нужны для накладок/всплываек/модалок, а не для обычного "картинка + текст".

2. Используй display: flex или display: grid — они созданы именно для этого.

3. <span> — инлайн-элемент. Для блочного текста лучше использовать <p> или <div>. Или просто задай display: block для #natahad.

---

### 🛠️ Итоговый "чистый" код:

**HTML:**

```html

<div class="teacher-card">

<img src="images/ch.jpg" alt="Наталья Сергеевна" class="img">

<p id="natahad">

Наталья Сергеевна — наш добрый учитель русского языка.<br>

Она очень добрая и терпеливая, всегда понятно объясняет уроки и помогает каждому ученику.<br>

Мы её очень любим за чуткое сердце и мудрость. Она делает наши уроки интересными и весёлыми.

</p>

</div>

```

**CSS:**

```css

.teacher-card {

display: flex;

align-items: flex-start;

gap: 24px;

color: white; /* если весь контент белый — можно вынести сюда */

}

.img {

width: 250px;

height: 250px;

border-radius: 40px;

object-fit: cover; /* на случай, если фото не квадратное */

}

#natahad {

margin: 0;

max-width: 600px;

font-size: 16px;

line-height: 1.6;

}

```

Если хочешь — могу помочь сделать это **ещё красивее** (тень, фон, плавные переходы и т.п.) 🎨

Удачи в обучении! Ты уже на правильном пути 💪



Видео по теме