JS властивість CSSStyleDeclaration.clear


Загальний опис

element.style.clear - це властивість CSS, яка встановлює або змінює поведінку елемента щодо очищення плаваючих елементів навколо нього. Властивість clear зазвичай використовується для того, щоб уникнути обтікання плаваючих елементів (які використовують властивість float), що може порушити макет сторінки.

Значення властивості clear можуть бути наступними: none, left, right, both, а також inherit та initial. Кожне з цих значень має своє застосування. Значення none (за замовчуванням) означає, що елемент не буде очищати плаваючі елементи і вони можуть обтікати його з обох сторін. Значення left очищає плаваючі елементи зліва від елемента, значення right - справа, а значення both очищає плаваючі елементи з обох сторін.

Ось приклад, як встановити очищення плаваючих елементів з обох сторін для конкретного елемента:

let element = document.getElementById('myElement');
element.style.clear = 'both';

У цьому прикладі елемент з ідентифікатором myElement більше не буде обтікатися плаваючими елементами з обох сторін, гарантуючи, що він почнеться з нової лінії.

Корисність властивості clear проявляється в складних макетах, де плаваючі елементи використовуються для розташування блоків на сторінці. Наприклад, можна використовувати плаваючі елементи для створення колонок, а потім використовувати властивість clear, щоб розташувати наступний елемент під цими колонками:

let column1 = document.getElementById('column1');
let column2 = document.getElementById('column2');
let footer = document.getElementById('footer');

column1.style.float = 'left';
column2.style.float = 'left';
footer.style.clear = 'both';

У цьому прикладі footer буде розташований під обома колонками, оскільки він очищає плаваючі елементи з обох сторін.

Ще один важливий аспект використання clear - це забезпечення правильного відображення елементів, що можуть накладатися один на одного через використання float. Наприклад, якщо у вас є плаваючий елемент всередині контейнера, і ви хочете, щоб наступний елемент не перекривався плаваючим елементом, ви можете використати clear:

let floatingElement = document.getElementById('floatingElement');
let nonFloatingElement = document.getElementById('nonFloatingElement');

floatingElement.style.float = 'left';
nonFloatingElement.style.clear = 'left';

У цьому прикладі nonFloatingElement буде відображатися під floatingElement, а не обтікати його з правого боку.

Таким чином, властивість element.style.clear є важливим інструментом для управління макетом сторінки, особливо при роботі з плаваючими елементами. Вона допомагає забезпечити правильне відображення елементів, уникнути накладань і зберегти структуру сторінки, що робить її корисною для створення адаптивних та складних веб-дизайнів.

автор: Bond

Порада

Іноді буває корисно встановити element.style.clear за допомогою JavaScript в залежності від умов, що змінюються динамічно. Наприклад, можна змінювати поведінку очищення в залежності від кількості дитячих елементів у контейнері або їх розміру. Це дозволяє створювати гнучкіші та динамічніші інтерфейси:

let dynamicElement = document.getElementById('dynamicElement');
if (dynamicElement.children.length > 3) {
  dynamicElement.style.clear = 'both';
}

автор: Bond
Порада

При створенні макетів з плаваючими елементами, спробуйте використовувати clear на псевдоелементах ::after або ::before для автоматичного очищення плаваючих елементів всередині контейнера. Це дозволяє уникнути додавання додаткових чистих елементів у HTML-код і зберегти його чистоту. Наприклад:

let container = document.getElementById('container');
container.style.cssText = "::after { content: ''; display: block; clear: both; }";

автор: Bond

Синтаксис

element.style.clear

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 3 8 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі при натисканні на кнопку в контейнер додається новий плаваючий елемент. Одразу після цього додається елемент для очищення плаваючих елементів, що гарантує правильне розташування наступних елементів у контейнері. Це корисно для динамічного додавання контенту на сторінку, зберігаючи макет у належному стані.

HTML

<div id="container">Демонстраційний елемент</div>
<button id="toggleButton">Перемкнути</button>

JS

let container = document.getElementById('container');
let toggleButton = document.getElementById('toggleButton');

toggleButton.addEventListener('click', function() {
  let newElement = document.createElement('div');
  newElement.style.float = 'left';
  newElement.style.width = '100px';
  newElement.style.height = '100px';
  newElement.style.backgroundColor = 'blue';
  container.appendChild(newElement);

  let clearElement = document.createElement('div');
  clearElement.style.clear = 'both';
  container.appendChild(clearElement);
});
автор: Bond

У цьому прикладі використовується ResizeObserver для спостереження за зміною розміру контейнера. Якщо ширина контейнера менша за 500 пікселів, елемент з ідентифікатором clearElement очищає плаваючі елементи з обох сторін, щоб забезпечити коректне відображення на вузьких екранах. Це корисно для створення адаптивних веб-дизайнів, які автоматично підлаштовуються під різні розміри екранів, забезпечуючи зручність користування.

HTML

<div id="clearElement">Демонстраційний елемент</div>
<div id="responsiveContainer">Демонстраційний елемент</div>

JS

let resizeObserver = new ResizeObserver(entries => {
  entries.forEach(entry => {
    let containerWidth = entry.contentRect.width;
    let clearElement = document.getElementById('clearElement');

    if (containerWidth < 500) {
      clearElement.style.clear = 'both';
    } else {
      clearElement.style.clear = 'none';
    }
  });
});

let container = document.getElementById('responsiveContainer');
resizeObserver.observe(container);
автор: Bond

Цей код створює три елементи на сторінці. Два з них плавають ліворуч і праворуч відповідно, а третій – clearableBox – знаходиться між ними. За допомогою кнопки користувач може перемикати властивість clear між значеннями "both" (очищення обтікання з обох сторін) і "none" (без очищення), що демонструє вплив цієї властивості на розташування елемента.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід