Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Аргументы в url() #6

Closed
FarSeeing opened this issue Apr 6, 2011 · 6 comments
Closed

Аргументы в url() #6

FarSeeing opened this issue Apr 6, 2011 · 6 comments

Comments

@FarSeeing
Copy link

Согласно пункту 4.3.4 (http://www.w3.org/TR/CSS21/syndata.html#uri), можно вырезать кавычки и пробелы в аргементах у url().

В качестве бонуса -- padding не группируется :-)

@afelix
Copy link
Contributor

afelix commented Apr 6, 2011

Можно, но страшно. :)
Дык а как именно не группируется?

@afelix
Copy link
Contributor

afelix commented Apr 6, 2011

Хотя уже вижу. Вы про .test { padding: 1px; padding-top: 2px } => .test { padding: 2px 1px 1px }?
Update: дык так и надо. Уточните, пожалуйста, ибо не понять.

@FarSeeing
Copy link
Author

Про url() -- а что там страшного? Триммим аргумент, потом смотрим на 1 символ -- если кавычка (одинарная или двойная) и равен последнему символу -- триммим и их тоже.

Про padding -- да. У меня кроме как на веб-страничке нет возможности проверить, там точно не группируется.

@afelix
Copy link
Contributor

afelix commented Apr 6, 2011

А если внутри URI окажется закрывающая скобка? Убрать кавычки — совершенно не проблема, правда. :) Проблема в том, что иногда их ставят именно потому, что без кавычек этот URI сломает CSS.

Уточним: почему вы считаете, что такой padding может группироваться? Вот описание (для padding те же правила): http://www.w3.org/TR/CSS21/box.html#margin-properties
В схеме T R B L (top, right, bottom, left) в варианте T RL B убрать B можно лишь в том случае, если B == T. Т.е. { padding: 1 2 1 } => { padding: 1 2 }, но в { padding: 2px 1px 1px } так не получится.

@kizu
Copy link

kizu commented Apr 6, 2011

Что касается кавычек в урле —можно проверять на то есть ли в кавычках скобки или другие «опасные» символы (если такие есть), и если их нет — убирать кавычки.

Очень часто кавычки вставляются какими-нибудь автоматическими тулзами и не всегда вычищаются.

@FarSeeing
Copy link
Author

Простите, что торможу :-)

С url вопрос таки остаётся открытым: если кавычки убирать, то скобки, пробелы и кавычки надо экранировать (') или "эскейпить". Понятно, что выигрыш от убирания кавычек будет только в том случае, когда в url будет не более 1 такого символа. Наверное, нет смысла заморачиваться за подсчёт.

С padding вопрос снят, каким-то кривым способом я проверял на неправильном примере.

В качестве компенсации за неправильное замечение -- точно правильное:
-0 = 0
:-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants