2011-08-18 1 views
1

Il y a beaucoup de fois où je me trouve écrit:Rails 3.1: Est-il possible d'écrire une fonction SASS pour déterminer les tailles d'image?

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) 

Alors, bon candidat pour un mixin SASS:

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

Est-il possible de récupérer les dimensions de l'image dans le mixin avec le code ruby ?

Répondre

1

C'est certainement possible. Boussole le fait. Vous devez juste écrire une extension Sass qui ouvre le fichier et obtient ses dimensions. Découvrez comment ils le font:

La page sur leurs documents:
http://compass-style.org/reference/compass/helpers/image-dimensions/#image-height

Le code correspondant à Github:
https://github.com/chriseppstein/compass/blob/stable/lib/compass/sass_extensions/functions/image_size.rb

Si vous êtes déterminé à prendre une fissure à vous-même, vous pouvez étendre Sass simplement en ajoutant des méthodes au module Sass::Script::Functions. L'astuce est sans doute de lire les métadonnées appropriées de chaque type de fichier (png, jpg, gif, etc.) pour obtenir les en-têtes. Vous pouvez voir comment Compass le fait au lien ci-dessus.

Lien vers Sass pertinents docs:
http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions

Questions connexes