От автора: это не полное руководство по центрированию. Это всего лишь небольшое наблюдение за старым и новым. Одна из самых сложных вещей, связанных с центрированием CSS — это когда вам нужно центрировать вещи как по вертикали, так и по горизонтали, и вы не знаете ширины или высоты того, что вы центрируете. Вертикальное центрирование представляет дополнительную сложность.
Верите или нет, этот способ работает даже в IE 8. Хитрость заключается в том, чтобы воспользоваться display: table;, а таблицы имеют другое свойство, vertical-align: middle ;, которое можно было использовать для вертикального центрирования.
Скажем, все, что вам нужно — это предложение в центре окна браузера:
<body> <span> Centered vertically and horizontally. </span> </body>
Вы можете сделать это вот так:
html, body { margin: 0; height: 100%; } body { display: table; width: 100%; } body > span { display: table-cell; vertical-align: middle; text-align: center; }
Возможно, это самый старый прием в Книге по центрированию в CSS. Здесь, как это работает в IE 8:
Сегодня у нас есть более современные методы компоновки. Flexbox! CSS grid! Здесь мы выполняется то же самое с помощью самых современных методов:
body { display: grid; height: 100vh; margin: 0; place-items: center center; }
Нам даже не нужно использовать span! На самом деле, это настолько передовая техника, что Microsoft Edge, который поддерживает сетку CSS, пока не поддерживает place-items. Вам придется использовать вместо этого align-items: center; и justify-content: center;. Продолжайте совершенствоваться.
Автор: Chris Coyier
Источник: https://css-tricks.com/
Редакция: Команда webformyself.