тут вже зроблено хороші моменти, але хоча у веб-переглядачі є багато інформації про те, як рендеринг рентабельності здійснюється, чому ще не відповіли:
"Чому margin-top: -8px не те саме, що margin-top: 8px?"
що ми також могли запитати:
Чому позитивна нижня маржа не піддається "попереднім елементам", тоді як позитивна нижня межа "нахиляється" наступними елементами?
тому, що ми бачимо, є різниця у відображенні полів залежно від сторони, до якої вони застосовуються - верхня (та ліва) поля відрізняються від нижньої (та правої).
все стає зрозумілішим, коли ми (спрощено) подивимось на те, як стилі застосовуються браузером: елементи відображаються зверху вниз у вікні перегляду, починаючи з верхнього лівого кута (давайте зараз дотримуватимемося вертикальної візуалізації, маючи на увазі, що горизонтальну обробляють однаково).
врахуйте наступний html:
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
аналогічно їхньому положенню в коді, ці три поля виглядають складеними "зверху вниз" у веб-переглядачі ( просто, прості речі, ми не будемо розглядати тут order
властивість модуля css3 "flex-box" ). тому, коли стилі застосовуються до вікна 3, положення попередніх елементів (для вікон 1 і 2) вже визначені, і їх більше не слід змінювати задля швидкості візуалізації.
тепер, уявіть верхню межу -10px для вікна 3. замість того, щоб зміщувати всі попередні елементи, щоб зібрати простір, браузер просто натисне вікно 3 вгору, тому він відображається вгорі (або під ним, залежно від z-індексу ) будь-які попередні елементи. навіть якщо продуктивність не була проблемою, переміщення всіх елементів вгору може означати зміщення їх із вікна перегляду, таким чином, поточне положення прокрутки повинно бути змінено, щоб все було знову видно.
те саме стосується нижньої межі для поля 3, як негативного, так і позитивного: замість впливу на вже оцінені елементи визначається лише нова «відправна точка» для майбутніх елементів. таким чином встановлення позитивного нижнього запасу давить наступні елементи вниз; негативний підштовхне їх.
onset
таoffset
. Це правда, тому багато людей завжди використовують словоoffset
( негатив ), коли вони означаютьonset
( позитив ). Це повідомлення самознищиться, якщо ви оновите свою відповідь. Ура!