Как использовать «обратный процент»/безразмерный расчет в CSS-calc()?

Я хотел бы использовать следующий расчет в width и height элемента:

(1 / 0.65) * 100, then the % sign

Итак, ширина и высота установлены на 153,85%.

Однако я считаю, что первое число должно содержать единицы или проценты, чтобы calc работал.

Как я могу установить это в calc, а не жестко запрограммировать его в 153.85%?

153,85% — это обратный процент 65% — согласно этому вопросу Math.SE.

Я попробовал calc(100% / 65%), но это было отмечено как неверный синтаксис.

Может быть, попробуйте так: calc((100% * 100) / 65);

l'L'l 21.04.2024 19:14

@l'L'l Отлично, это работает, спасибо! Хотите опубликовать ответ, и я приму? Еще раз спасибо! ....вообще-то я только что понял, что calc(100% / 0.65) тоже работает 🙈

Danny Beckett 21.04.2024 19: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 сценарий полностью изменился.
1
2
74
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете попробовать использовать 100vh/vw вместо 100%:

height: calc(100vh / 0.65);
width: calc(100vw / 0.65);

Возможно transform: scale(calc(1/0.65),calc(1/0.65)) Я обновил свой комментарий.

Matheaus Pessoa 21.04.2024 18:57

На самом деле это работает, прошу прощения, спасибо! (часть 100vw, а не часть transform)

Danny Beckett 21.04.2024 19:24
Ответ принят как подходящий

Вы можете преобразовать процент в «необработанную» форму, а затем выполнить расчет:

calc((100% * 100) / 65);

(100% * 100) / 65 ведет себя последовательно и правильно в CSS, потому что правильно манипулирует единицами измерения в соответствии с правилами CSS. (100% / 0.65) использует прямое деление процента на безразмерное число и может не всегда поддерживаться разными браузерами. Кроме того, использование метода, показанного выше, сохраняет процент на протяжении всего расчета, тогда как последний — нет.

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