Пошаговый расчет на основе ширины окна в CSS

Мне нужно рассчитать, что каждые 100 пикселей ширины окна + 2% css увеличиваются в левом %:

Примеры:

  • ширина > 700 пикселей:left: 30%
  • ширина > 800 пикселей:left: 32%

Как я могу это сделать?

используйте vw единицу, которая зависит от ширины экрана

Temani Afif 15.03.2022 20:32

@TemaniAfif Это кажется невозможным с vw. Можете ли вы уточнить?

Sean 15.03.2022 20:38

@ Шон, в вопросе не хватает контекста, чтобы узнать, возможно это или нет. Я просто дал подсказку, так как vw уже зависит от ширины экрана

Temani Afif 15.03.2022 20:40

@TemaniAfif Лучше попросить разъяснений, чем отправить кого-то по ложному пути

Sean 15.03.2022 20:40

@ Шон, ты пришел к выводу, что это неверный путь. Я не дал никакого пути. Я дал CSS информацию, которую он может не знать. В этом нет ничего неправильный.

Temani Afif 15.03.2022 20:42

@TemaniAfif То, о чем они просят, невозможно с vw. Вы явно сказали им использовать vw в этом случае; вы не просто дали им понять, что он существует — это было бы прекрасно.

Sean 15.03.2022 20:44

@ Шон, насколько я знаю, я волен говорить, что хочу;) и я не задал этот вопрос отвечать (в противном случае вы можете понизить его, потому что думаете, что это неправильный). Я никогда не говорю, что это возможно или невозможно, это только вывод ваш. Поле для ответа находится ниже, вы можете уточнить ответ и указать правильный метод.

Temani Afif 15.03.2022 20:51

@TemaniAfif Просто пытаюсь дать конструктивный отзыв, который принесет пользу другим пользователям. Вы, конечно, вольны поступать, как хотите.

Sean 15.03.2022 20:56
Приемы 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
8
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В настоящее время невозможно написать единый набор правил CSS, который увеличивает свойство ступенчатый каждые 100 пикселей ширины окна во всех основных браузерах. Вам нужно будет написать отдельный медиа-запрос для каждого интервала.

В SCSS это можно сделать с помощью цикла. Это создаст медиа-запрос для $number-of-intervals количества шагов, начиная с $base-width ширины и $base-percentage процента:

$base-width: 600px;
$base-percentage: 30%;
$number-of-intervals: 6;
@for $i from 1 through $number-of-intervals {
  @media screen and (min-width: #{$base-width + (($i - 1) * 100)}) {
    .my-class {
      left: #{$base-percentage + (($i - 1) * 2)};
    }
  }
}

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