Главная » Статьи » Центрирование CSS: Самый крутой новый способ и самый крутой старый

Центрирование CSS: Самый крутой новый способ и самый крутой старый

Центрирование CSS: Самый крутой новый способ и самый крутой старый

От автора: это не полное руководство по центрированию. Это всего лишь небольшое наблюдение за старым и новым. Одна из самых сложных вещей, связанных с центрированием 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:

Центрирование CSS: Самый крутой новый способ и самый крутой старый

Сегодня у нас есть более современные методы компоновки. Flexbox! CSS grid! Здесь мы выполняется то же самое с помощью самых современных методов:

body { display: grid; height: 100vh; margin: 0; place-items: center center;
}

Центрирование CSS: Самый крутой новый способ и самый крутой старый

Нам даже не нужно использовать span! На самом деле, это настолько передовая техника, что Microsoft Edge, который поддерживает сетку CSS, пока не поддерживает place-items. Вам придется использовать вместо этого align-items: center; и justify-content: center;. Продолжайте совершенствоваться.

Автор: Chris Coyier

Источник: https://css-tricks.com/

Редакция: Команда webformyself.