Rails 3.1: можно ли написать функцию SASS для определения размеров изображения? - PullRequest
1 голос
/ 19 августа 2011

Я часто пишу:

background-image:url(somesweetpicture.png);
background-repeat:no-repeat;
background-position:0 0;
width: 241px (width of sweet picture)
height: 49px (height of sweet pic)

Итак, хороший кандидат на миксин SASS:

@include image-background(somesweetpicture.png, w, h)

Возможно ли получить размеры изображения в миксине с помощью кода ruby?

1 Ответ

1 голос
/ 19 августа 2011

Это, конечно, возможно. Компас делает это. Вам просто нужно написать расширение Sass, которое открывает файл и получает его размеры. Посмотрите, как они это делают:

Страница в их документах:
http://compass -style.org / ссылка / компас / хелперы / изображение-размеры / # изображение высота

Соответствующий код на Github:
https://github.com/chriseppstein/compass/blob/stable/lib/compass/sass_extensions/functions/image_size.rb

Если вы решили сами взломать его, вы можете расширить Sass, просто добавив методы в модуль Sass::Script::Functions. Хитрость без сомнения заключается в чтении соответствующих метаданных из каждого типа файла (png, jpg, gif и т. Д.) Для получения заголовков. Вы можете увидеть, как Compass делает это по ссылке выше.

Ссылка на соответствующие документы Sass:
http://sass -lang.com / Docs / yardoc / Sass / Script / functions.html # adding_custom_functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...