Масштабируйте кусок html с помощью трансформации и корректируйте высоту

Если вы масштабируете кусок html, это не влияет на компоновку окружения, как показано в этот код.

body {
  font-family: system-ui;
}

.item {
  border: 1px solid #ccc;
  transform-origin: 0 0;
  transform: scale(2);
}
<div class = "item">Item</div>
<div>What comes after</div>

Мне интересно, есть ли общий способ исправить высоту макета масштабированного html, чтобы следующие элементы имели правильное положение и, в частности, не перекрывались.

Под общим я подразумеваю, что это должно быть решение, которое

  • независимо от содержимого масштабированного html - изменение содержимого должно работать,
  • работает с html-контентом, который зависит от устройств px и rem и
  • тот, который позволяет использовать разные коэффициенты масштабирования.

Я подозреваю, что это невозможно (относительные единицы, такие как 100%, относятся к элементу в transforms, но к родительскому элементу в heights), но я хочу уточнить у экспертов.

Реальную проблему, вызвавшую этот вопрос, можно обойти в любом случае, но было бы более элегантно, если бы в обходном пути не было необходимости.

Можно использовать font-size! .item { border: 1px solid #ccc; font-size: 35px; }

Manas Khandelwal 30.03.2021 13:19
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
1
25
1

Ответы 1

font-size: 200%;

Добавьте это в .item и получите тот же результат, и проблема будет решена.

Я добавил требование, чтобы это работало с контентом, использующим устройства, отличные от em - в противном случае не было бы необходимости использовать transform, поскольку font-size будет выполнять все масштабирование. Извините за неточный вопрос.

John 30.03.2021 13:31

@John, ты можешь вместо этого просто использовать font-size: 2em;? (если, конечно, размер шрифта по умолчанию 1em).

aflyzer 30.03.2021 14:08

Другие вопросы по теме