минимальное отрицательное значение отступа текста
-
12-12-2019 - |
Вопрос
Что минимально допустимый отрицательное значение для text-indent
свойство?
На своем сайте я использовал невероятно большое значение (что-то вроде text-indent: -99999999px
), и он перестал работать с последним обновлением Google Chrome.IE по-прежнему работает нормально, но мне, возможно, придется удалить оттуда пару девяток, чтобы он снова работал с Chrome.
Отказ от ответственности:да, это значение слишком параноидальное, я использовал его для развлечения и совершенно забыл о нем, пока сегодня на экране не появился текст.Но обычно предлагается text-indent: -9999px
может легко потерпеть неудачу в какой-то момент (не такого уж) отдаленного будущего?
Решение
Безопасное значение — это вероятно -32768px
, однако это не часть спецификации, а скорее наблюдение (возможно, устаревшего) устаревшего ограничения, специфичного для реализации.
Прежде чем значения свойств CSS можно будет применить к элементам во время рендеринга, эти объявления должны быть преобразованы во что-то более функциональное и абстрактное, чем, по сути, строка.Я имею в виду, ты можешь тип почти что угодно в качестве стоимости недвижимости:
.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}
Первый пример, скрестив пальцы, будет правильно проанализирован;последний недействителен и будет проигнорирован (поскольку средний картофель в настоящее время не является частью спецификации w3c CSS);но средний был бы причудливым, если бы он переполнение (не «умещается» в памяти, выделенной браузером).Я собрал скрипку, и это text-indent
значения, при которых браузеры «задохнулись» и по умолчанию обнулились:
#On OSX 10.8 Lion 64bit:
Safari 6 -2^31
Chrome 22 -2^26 #your original -99999999px would have failed here
Firefox 14 -2^70
Opera 12 -2^70
#On Win Server 2008 64bit:
Firefox 13 -2^70
Chrome 21 -2^70
IE 9 -2^70
Это вызвало у меня любопытство, завтра я проведу дополнительные тесты на другом компьютере. Результаты выше обновлены, ничего особенного. Вы также можете запустить свой собственный тест, используя эту скрипту - первый элемент, который останется видимым, будет отображать примененное значение, которое было проигнорировано. Я предполагаю, что значения будут различаться в зависимости от используемого браузера/ОС, а также от возможно аппаратное обеспечение.
Я помню, как впервые увидел практичный ссылка на такое ограничение в статья о стилизации искусственных столбцов^ это предложило консервативное ограничение - это 16-битное целое число со знаком (от -32768 до +32767), которое применимо к не только отступы текста, но другие значения длины.Я не знаю, насколько единообразно это значение в разных браузерах и их версиях, а также насколько оно применимо к дробям или значениям, выраженным в разных единицах.
Другие советы
Нет минимального текста.- Используйте прокладки и позиции полей, если вы все еще хотите увидеть текст и используете для стилизации.
У меня есть проблемы в iPad Safari, используя ряд 9999999, исправленные для меня, установив его до 9999ЕМ. Так что, возможно, нет ограничения, но должен быть один для избежать этих ошибок.