CSS top — зсув елемента від верхнього краю


Властивість top визначає відстань від верхнього краю батьківського елементу до верхнього краю дочірнього елемента.

Властивість top

Відлік координат залежить від значення властивості position. Якщо воно дорівнює absolute, як батька виступає вікно браузера і положення елемента визначається від його верхнього краю. Якщо значення relative, top відраховується від верхнього краю вихідного положення елемента. Якщо для батьківського елемента задано position: relative, то абсолютне позиціонування дочірніх елементів визначає їхнє положення від верхнього краю батька.

Коли вказані властивості top і bottom й висота невизначена, дорівнює auto або 100%, вгорі та знизу відстані дотримуються. В усіх інших ситуаціях, якщо висота обмежена, властивість top сильніше, і bottom ігнорується.

Як значення приймаються будь-які одиниці довжини, прийняті в CSS - наприклад, пікселі (px), дюйми (in), пункти (pt) та ін. Значення властивості top може бути і негативним, в цьому випадку можливі накладення різних елементів один на одного. При завданні значення у відсотках, положення елемента обчислюється залежно від висоти батьківського елементу.

автор: Svitlana

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

автор: NagarD

Нотатка

В IE до 7 версії, якщо вказані top і bottom одночасно, top має перевагу в будь-якому випадку, отримує значення від bottom, а власне ігнорує.

автор: Svitlana
Нотатка

Якщо position:static, тоді властивість top не має ніякого ефекту.

автор: Svitlana
Нотатка

Елемент буде позиціонуватися, якщо значення його властивості position не дорівнює static.

автор: Svitlana
Нотатка

Якщо елемент з position:absolute не має батьків, він використовує в якості батька вікно браузера, і рухається разом з прокруткою сторінки.

автор: Svitlana

Синтаксис

top: auto|length|initial|inherit|%;

Властивість top може отримувати 5 значень:

auto

Браузер самостійно розрахує велечину відступа. Без задання.

автор: Svitlana

length

В якості значення приймаються будь-які одиниці довжини, прийняті в CSS - наприклад, пікселі (px), дюйми (in), пункти (pt) та ін. Значення можуть бути від'ємними.

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

автор: Svitlana

initial

Встановлює цю властивість в значення без задання

автор: Svitlana

inherit

Успадкує значення властивості від свого батьківського елемента

автор: Svitlana

%

Встановлює відстань відступу в %. Від'ємні значення дозволяються.

автор: Svitlana

Значення без задання: auto
Наслідує: Ні
Анімується: Так
JavaScript синтаксис: object.style.top="100px"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 6 12 5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

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

Контейнер позиціонований, тож абсолютний блок відлічує top від його верхнього краю: рамка стоїть на 80 пікселів нижче.

HTML

<div class="area">
    <div class="absolute">top: 80px</div>
</div>

CSS

.area {
    position: relative;
    height: 220px;
    background: #eee;
}

div.absolute {
    position: absolute;
    top: 80px;
    width: 200px;
    height: 100px;
    border: 3px solid #8AC007;
}
автор: Svitlana

Три однакові блоки з top: 30px: у static властивість ігнорується, у relative блок зсувається, лишаючи по собі порожнє місце, у absolute — рахує від позиціонованого контейнера.

HTML

<div class="area">
    <div class="box st">position: static</div>
    <div class="box rel">position: relative</div>
    <div class="box abs">position: absolute</div>
</div>

CSS

body {
    font-family: monospace;
    font-size: 14px;
    padding: 16px;
}

.area {
    position: relative;
    height: 260px;
    background: #eee;
    border: 2px solid #bbb;
    padding: 10px;
}

.box {
    top: 30px;
    width: 200px;
    padding: 8px;
    margin-bottom: 10px;
    border: 2px solid #888;
    background: #fff;
}

.st {
    position: static;
}

.rel {
    position: relative;
    background: rgba(255, 215, 0, .55);
    border-color: #c9a227;
}

.abs {
    position: absolute;
    left: 230px;
    background: rgba(120, 200, 255, .55);
    border-color: #3b8ec2;
}
автор: NagarD

Динамічний приклад

HTML

<div class="box">

<p>У цьому прикладі, Ви можете змінювати значення для властивості <strong>top</strong>.</p>

<p>Вона встановлює зміщення позиціонованого елемента щодо верхнього краю.</p>

<strong>top: </strong>
<input type="number" class="input" id="num" value="24">px
<strong>;</strong>
  
</div>

<div id="block">24px</div>

CSS

* {
  box-sizing: border-box;
}

body {
  font-family: monospace;
  font-size: 16px;
  line-height: 1.45;
  height: 100vh;
  padding: 16px;
}

.box {
  background-color: #f7f7f7;
  padding: 16px;
}

.input {
  margin-bottom: 36px;
  width: 75px;
}

#block {
  background-color: rgba(255, 215, 0, .45);
  padding: 16px;
  position: absolute;
  top: 24px;
  left: 16px;
}

JS

document.querySelectorAll('.input').forEach((el) => el.addEventListener('change', function () {
  var num = document.querySelector('#num').value;
  document.querySelectorAll('#block').forEach((n) => n.style.setProperty('top', num + 'px'));
  document.querySelectorAll('#block').forEach((n) => n.innerHTML = num + 'px');
}));
автор: Svitlana

Приклад використання властивості

HTML

<div class="info">
	<p>За допомогою властивості <code>top</code> ми можемо вказати зміщення позиціонованого елемента щодо верхнього краю.</p>
	<p>Перший елемент зміщений на <em>16px</em>, другий - <em>40%</em>.</p>
</div>

<div class="wrapper">
	<div class="block one"><div class="child"><span>16px</span></div></div>
	<div class="block two"><div class="child"><span>40%</span></div></div>
</div>

CSS

* {
	box-sizing: border-box;
}

body {
	font-family: monospace;
	font-size: 17px;
}

.info {
	padding: 16px;
}

code {
	font-weight: 700;
	color: #444;
	border-bottom: 2px solid #666;
}

.wrapper {
	display: flex;
	justify-content: space-around;
}

.block {
	width: 25%;
	height: 150px;
	background-color: gold;
	position: relative;
}

.block .child {
	background-color: #222;
	display: inline-block;
	color: #fff;
	position: absolute;
	left: 0;
	padding: 12px;
}

.block.one .child {
	top: 16px;
}

.block.two .child {
	top: 40%;
}
автор: Svitlana

Позиціонування елементу відносно body за допомогою top.

HTML

<div class="block">Відстань від гори, задана за допомогою top</div>

CSS

.block {
  width: 250px;
  height: 100px;
  padding: 25px;
  border: 2px solid orange;
  position: absolute;
  top: 10em;
 }
автор: Svitlana

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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