2009-12-14 31 views
6

preguntando si es posible utilizar una matriz con Sass como encuentro mi auto repitiendo el siguiente tipo de cosas:posible definir una matriz en Sass?

.donkey 
    h2 
    background-color= !donkey 

.giraffe 
    h2 
    background-color= !giraffe 

.iguana 
    h2 
    background-color= !iguana 

Respuesta

2

No, esto no es posible. La mejor manera de hacerlo es definir un mixin:

+animal-h2(!name, !color) 
    .#{name} h2 
    background-color= !color 

, entonces puede tener una línea por el estilo, en lugar de tres: respuesta

+animal-h2("donkey", !donkey) 
+animal-h2("giraffe", !giraffe) 
+animal-h2("iguana", !iguana) 
+0

Eso es justo el tipo de cosa que estaba buscando, gracias –

0

de NEX3 es correcta. Para conseguir este trabajo con SASS on Rails 3.1 que necesitaba tener lo siguiente en un archivo css.scss:

$donkey: #CC4499; 

@mixin animal-h2($name, $color) { 
    .#{$name} h2 { 
    background-color: $color; 
    } 
} 

@include animal-h2("donkey", $donkey); 
@include animal-h2("horse", #000); 

qué salida:

.donkey h2 { 
    background-color: #CC4499; 
} 

.horse h2 { 
    background-color: black; 
} 
17

Absolutamente.

$animals: "donkey", "giraffe", "iguana" 
@foreach $animal in $animals 
    .#{$animal} 
    h2 
     background-color: !#{$animal} 
+0

Justin está en lo cierto. He usado [listas de Sass] (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#lists) para divertirme y obtener ganancias, y puedo garantizar su utilidad. Después de leer en las listas de Sass, también debería echar un vistazo a las funciones de lista de Sass, que se encuentran [aquí] (http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#list-functions). ¡Casi nunca son útiles, pero en realidad pueden hacer tu vida más fácil en ciertos casos! – Bitmanic

Cuestiones relacionadas