Урок 184 із 239
77%
← Назад

Плаваючі елементи під тегами в CSS

Розбираємо, які елементи обтікають float-елементи та чому обтікання працює тільки для елементів, які знаходяться після них у HTML.

Плаваючі елементи під тегами в CSS

При роботі з float важливо розуміти порядок HTML-елементів. Плаваючий елемент впливає тільки на ті елементи, які знаходяться після нього в коді.

Картинка всередині першого абзацу

Спочатку розглянемо випадок, коли картинка знаходиться всередині першого абзацу та має float: right.

<div>
  <p>
    <img src="img.png" alt="">
    Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
  </p>

  <p>
    some long text
  </p>
</div>
div {
  border: 1px solid red;
  text-align: justify;
}

p {
  border: 1px solid green;
}

img {
  float: right;
  opacity: 0.5;
}

Картинка між абзацами

Тепер винесемо картинку після першого абзацу.

<div>
  <p>
    Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
  </p>

  <img src="img.png" alt="">

  <p>
    some long text
  </p>
</div>

Картинка після всього тексту

Якщо перемістити картинку після другого абзацу, жоден текст не буде її обтікати.

<div>
  <p>
    Lorem ipsum dolor sit amet,
    consectetur adipiscing elit.
  </p>

  <p>
    some long text
  </p>

  <img src="img.png" alt="">
</div>

Головне правило float

  • Елементи після float-елемента можуть його обтікати.
  • Елементи перед float-елементом не реагують на нього.
  • Порядок HTML-коду впливає на поведінку обтікання.
  • float не повертає елемент назад у нормальний потік документа.
❗ Важливо:

Якщо потрібно, щоб певний блок не обтікав float-елемент, використовуйте властивість clear.

Практичне завдання

📌 Завдання:
  1. №1. Створіть два абзаци та картинку.
  2. №2. Додайте картинці float: right.
  3. №3. Перевірте поведінку, коли картинка знаходиться всередині першого абзацу.
  4. №4. Перемістіть картинку між абзацами.
  5. №5. Перемістіть картинку після другого абзацу та порівняйте результат.
💡 Показати підказку

float впливає тільки на елементи, які знаходяться нижче нього в HTML-структурі.

✅ Показати відповідь
img {
  float: right;
}