Я пытаюсь сделать шрифт в div реагирующим на окно браузера. До сих пор он работал отлично, но родительский DIV имеет max-width
в 525px
. Дальнейшее изменение размера браузера не приведет к прекращению изменения размера шрифта. Это заставило меня задуматься, существует ли такая вещь, как min-font-size
или max-font-size
, и если такой вещи не существует, есть ли способ достичь чего-то подобного.
Я думал, что использование процентов в font-size
будет работать, но бит текста не будет масштабироваться в соответствии с родительским div. Вот что у меня есть:
CSS для родительского div:
.textField{
background-color:rgba(88, 88, 88, 0.33);
width:40%;
height:450px;
min-width:200px;
max-width:525px;
z-index:2;
}
CSS для рассматриваемого фрагмента текста:
.subText{
position:relative;
top:-55px;
left:15px;
font-family:"news_gothic";
font-size:1.3vw;
font-size-adjust:auto;
width:90%;
color:white;
z-index:1;
}
Я довольно долго искал в Интернете, но безрезультатно.
Ответы:
Нет, нет свойства CSS для минимального или максимального размера шрифта. В браузерах часто есть настройка минимального размера шрифта, но это находится под контролем пользователя, а не автора.
Вы можете использовать
@media
запросы для выполнения некоторых настроек CSS в зависимости от таких вещей, как экран или ширина окна. В таких настройках вы можете, например, установить размер шрифта на определенное маленькое значение, если окно очень узкое.источник
max-width:600px;
. Правильно ли я понял или неправильно понял информацию по ссылке?@media
имеется в виду окно браузера? Как он узнает, что я хочу, чтобы размер моего шрифта был, скажем, 20 пикселей, если родительский блок div или окно браузера имеют определенный размер в пикселях?@media (width:600px)
, он запустит приведенный ниже скрипт,@media
когда ширина браузера будет равна 600 пикселей?Вы можете сделать это, используя формулу и включая ширину области просмотра.
Это устанавливает минимальный размер шрифта в 7 пикселей и увеличивает его на 0,5vw в зависимости от ширины области просмотра.
Удачи!
источник
0
. Какие-то вложенныеcalc
s что ли?calc()
оператор обрабатывается, когда LESS компилируется и преобразуется в простоеpx
значение. Изменение размера не пересчитывается. Идеи или мысли?Хорошо работает с CSS.
Я прошел через те же проблемы и исправил их следующим образом.
Используйте фиксированный размер «px» для получения максимального размера при определенной ширине и выше. Затем для другой меньшей ширины используйте относительный «vw» в процентах от экрана.
Результат ниже - он настраивается на экранах ниже 960 пикселей, но сохраняет фиксированный размер выше. Напоминаем, что не забудьте добавить в html-документ в заголовок:
Пример в CSS:
Надеюсь, это поможет!
источник
Я немного опаздываю здесь, я не получаю за это столько уважения, я просто делаю сочетание ответов ниже, потому что я был вынужден сделать это для проекта.
Итак, чтобы ответить на вопрос: не существует такой вещи, как это свойство CSS . Я не знаю почему, но я думаю, что это потому, что они боятся злоупотребления этим свойством, но я не нашел ни одного варианта использования, где это могло бы стать серьезной проблемой.
Как бы то ни было, каковы решения?
Два инструмента позволят нам сделать это: медиа-запросы и свойство vw.
1) Существует "глупое" решение, состоящее в том, чтобы делать медиа-запрос для каждого шага в нашем CSS, изменяя шрифт с фиксированной суммы на другую фиксированную величину. Это работает, но это очень скучно, и у вас нет гладкого линейного аспекта.
2) Как объяснил Почти Питт, для минимумов есть блестящее решение:
Минимум здесь будет 7 пикселей в дополнение к 0,5% ширины обзора. Это уже действительно круто и в большинстве случаев работает . Для этого не требуется никаких медиа-запросов, вам просто нужно потратить некоторое время на поиск нужных параметров.
Как вы заметили, это линейная функция, базовая математика научит вас, что две точки уже находят вам параметры. Затем просто исправьте размер шрифта в пикселях, который вы хотите для очень больших экранов и для мобильной версии, а затем рассчитайте, хотите ли вы использовать научный метод. Подумал, это совершенно не обязательно и можно просто попробовать.
3) Предположим, у вас есть очень скучный клиент (вроде меня), который абсолютно хочет, чтобы заголовок состоял из одной строчки и не более. Если вы использовали решение Почти Питт, то у вас проблемы, потому что ваш шрифт будет продолжать расти, и если у вас есть контейнер с фиксированной шириной (например, начальная загрузка останавливается на 1140 пикселей или что-то в больших окнах). Здесь я предлагаю вам также использовать медиа-запрос. Фактически вы можете просто найти максимальное значение размера в пикселях, которое вы можете обработать в своем контейнере, прежде чем аспект станет нежелательным (pxMax). Это будет ваш максимум. Затем вам просто нужно найти точную ширину экрана, которую вы должны остановить (wMax). (Я позволяю вам самостоятельно инвертировать линейную функцию).
После этого просто сделай
Тогда он станет совершенно линейным, и размер вашего шрифта перестанет расти! Обратите внимание, что вам не нужно помещать ваше предыдущее свойство css (calc ...) в медиа-запрос под wMax, потому что медиа-запрос считается более важным и он перезапишет предыдущее свойство.
Я не думаю, что для этого полезно делать фрагмент, так как у вас возникнут проблемы с отображением его на весь экран, и в конце концов, это не ракетостроение.
Надеюсь, это может помочь другим, и не забудьте поблагодарить почти Питта за его решение.
источник
max(*a*px,, *b*vw)
? Потому что в моем случае я не могу терпеть наивное добавление, потому что результат слишком велик, но похоже, что вы предлагаете мне каким-то образом уменьшить a и b сверх наивных сумм - у меня проблемы с математикой, и я нужно общее решение, а не просто конкретный случай.Это фактически предлагается в CSS4
Рабочий проект на W3C
Цитата:
На самом деле это будет работать следующим образом:
Это буквально означало бы, что размер шрифта будет составлять 5% от ширины области просмотра, но никогда не меньше 10 пикселей и никогда не больше 18 пикселей.
К сожалению, эта функция еще нигде не реализована (даже на caniuse.com).
источник
Рюкзак - это великолепно, но вам не обязательно прибегать к инструментам для сборки, таким как Gulp, Grunt и т. Д.
Я сделал демонстрацию, используя настраиваемые свойства CSS (переменные CSS), чтобы легко контролировать минимальный и максимальный размер шрифта.
Вот так:
источник
Я получил гладкие результаты с ними. Он плавно перетекает между 3 диапазонами ширины, как непрерывная кусочная функция.
источник
Вы можете использовать Sass для управления минимальным и максимальным размером шрифта. Вот блестящее решение Эдуардо Букаса.
https://eduardoboucas.com/blog/2015/06/18/viewport-sized-typography-with-minimum-and-maximum-sizes.html
источник
Обратите внимание, что устанавливать размер шрифта с помощью px не рекомендуется из-за проблем с доступностью :
«определение размеров шрифта в пикселях недоступно, потому что пользователь не может изменить размер шрифта в некоторых браузерах. Например, пользователи с ограниченным зрением могут захотеть установить размер шрифта намного больше, чем размер, выбранный веб-дизайнером». (см. https://developer.mozilla.org/en-US/docs/Web/CSS/font-size )
Более доступный подход - установить
font-size: 100%
в html, который учитывает пользовательские настройки размера по умолчанию , а ЗАТЕМ использовать проценты или относительные единицы при изменении размера (em
илиrem
), например, с помощью запроса @media.(см. https://betterwebtype.com/articles/2019/06/16/5-keys-to-accessible-web-typography/ )
источник
Да, некоторые браузеры в SVG накладывают ограничения. Инструмент разработчика ограничивает его до 8000 пикселей; Следующая динамически созданная диаграмма не работает, например, в Chrome.
Попробуйте http://www.xn--dddelei-n2a.de/2018/test-von-svt/
источник