Вероятно, две из наиболее распространенных проблем с макетированием CSS:
- Центрирование по горизонтали и вертикали.
- Автоматическое масштабирование изображений до размера области просмотра (с сохранением соотношения сторон и без переполнения по вертикали или горизонтали).
Индивидуально, есть хорошие решения для обоих:
- Используйте
display: table
на внешнем элементе контейнера и display: table-cell
, vertical-align: middle
и text-align: center
на внутреннем.
- Используйте
max-height: 100%
и max-width: 100%
для элемента img
.
Но объединение обоих делает только центрирование , даже при использовании height: 100%
и width: 100%
на всех элементах, окружающих img
.
Как я могу достичь обеих целей одновременно, не поддаваясь жестко заданным значениям высоты и ширины или JavaScript?