Що auto
робити в margin:0 auto;
?
Я не можу зрозуміти, що auto
робить. Я знаю, що іноді впливає на центрування об'єктів. Дякую.
Що auto
робити в margin:0 auto;
?
Я не можу зрозуміти, що auto
робить. Я знаю, що іноді впливає на центрування об'єктів. Дякую.
Відповіді:
Коли ви вказали width
на об’єкт, до якого ви застосували margin: 0 auto
, об'єкт буде розташовуватися центрально в його батьківському контейнері.
Вказуючи auto
як другий параметр, в основному вказує браузер автоматично визначати сам лівий і правий поля, що він робить, встановлюючи їх однаково. Це гарантує, що лівий і правий поля будуть встановлені однакового розміру. Перший параметр 0 вказує, що і верхній, і нижній поля будуть встановлені як 0.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
Тому, щоб навести приклад , якщо батько 100px, а дитина 50px, auto
властивість визначатиме, що вільний простір 50px для спільного доступу між margin-left
і margin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
Що б дало:
margin-left:25;
margin-right:25;
Погляньте на цей jsFiddle . Не потрібно вказувати батьківську ширину, лише ширину дочірнього об'єкта.
%
? Я маю на увазі, чи є в CSS якесь інше властивість, яке може дати такий же результат, як лівий і правийauto
margin:auto 0
умови?
З специфікації CSS щодо обчислення ширини та меж для блокового рівня, незамінені елементи в нормальному потоці :
Якщо і "margin-left", і "margin-right" є "auto", використовувані значення їх рівні. Це горизонтально центрує елемент відносно країв блоку, що містить.
margin:0 auto;
0
- зверху вниз і auto
для ліворуч праворуч. Це означає, що лівий і правий запас прийматимуть автоматичний запас відповідно до ширини елемента та ширини контейнера.
Як правило, якщо ви хочете поставити будь-який елемент в центрі положення, то це margin:auto
працює чудово. Але він працює лише в блокових елементах.
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0 - вгорі-вниз, а автоматично - вліво-вправо. Браузер встановлює маржу.
З деяким поясненням того, як працюють ці два значення, стає зрозуміліше.
Властивість поля є скороченим для:
margin-top
margin-right
margin-bottom
margin-left
То звідки тільки два значення?
Ну, ви можете виразити маржу за допомогою чотирьох таких значень:
margin: 10px, 20px, 15px, 5px;
що означатиме 10 пікс. верх, 20 пікс. праворуч, 15 пікс. знизу, 5 пікс. ліворуч
Так само ви можете висловити два значення, як це:
margin: 20px 10px;
Це дасть вам поле 20px верх і низ і 10px зліва і справа.
І якщо ви встановите:
margin: 20px auto;
Тоді це означає верхній і нижній запас у 20 пікселів і лівий і правий край авто. А автоматично означає, що лівий / правий край автоматично встановлюється на основі контейнера. Якщо ваш елемент - це елемент типу блоку, тобто він є полем і займає всю ширину подання, то автоматично встановлюється однаковий лівий і правий край, а значить, елемент по центру.
body
і ми завжди даємоwidth
іmargin:0 auto
до#wrapper