Кто-нибудь делал CSS snap to grid?
У меня тут задача возникла очень нетривиальная — сделать CSS snap to grid. Если не получится, сделаю через JavaScript. С ходу вчера мне не удалось придумать как это сделать по горизонтали (а мне надо именно так), только по вертикали возникли
Комментарии 17
(Вот, вспомнил — это в Виндовсе можно «выровнять значки по сетке». Всеравно не понятно, что требуется.)
Viperet, это «привязать к сетке», функция выравнивания по сетке, есть почти во всех графических редакторах.
На заднем фоне —
http://img-fotki.yandex.ru/get/4411/354194 … D0#400x400
Надо сделать так, чтобы сетка была фоном страницы, а при изменении размеров шарики были точно в сетке и по центру страницы, то есть перескакивали рывком.
Для браузеров, которые считают относительные размеры в пикселях (webkit, opera, ie6), сработает контейнер с шириной 100%/ширину клетки + вложенный контейнер 100%*ширину клетки — он будет увеличиваться по ширине с шагом в клетку. Относительно него уже можно позиционировать
Расскажите, как вы решили по вертикали?
Попробуйте сверстать? А то может я рассказал что не так.
Я не решил мысли возникли, не уверен, что сработает. Но по вертикали мне не нужно :)
А код вот такой:
Похоже, что с CSS такое не делается, только через JS.
Комментарий для agonych.livejournal.com:
Да, похоже это выход. Можно отказаться от идеи snap to grid и сделать так. Спасибо!
Правда, в FF 3.5+ не будет работать.
Если коротко, то суть такова. Делаешь два блока, один вложен в другой. Причём ширина внутреннего блока должна быть в N раз больше, где N — шаг сетки в пикселях. Например, если тебе нужен шаг в 5 пикселей, то контейнер должен быть шириной 100/5 = 20%, а внутренний — 100*5 = 500%. За счёт того, что ширина внутреннего блока будет считаться относительно округлённой ширины контейнера, получится изменение ширины внутреннего блока с шагом в 5 пикселей.
А в FF это не сработает, потому что он шибко умный и не округляет внутри себя дробные пиксели.
Крутое решение, спасибо, но FF 3.5+ мне нужен.
На всякий случай: в FF4 и IE9 есть метод calc: https://developer.mozilla.org/en/CSS/-moz-calc
Ну, мне ж кроссбраузерно :)
Про calc я знаю,
Вот: /all/2644