2013-07-05 4 views
1

Hy everyone! Je souhaite utiliser des variables Sass avec un projet Vaadin 7.1.0 pour un arrière-plan à gradient linéaire, mais pour une raison quelconque, cela ne fonctionne pas. Le code:Variables Sass et gradient

$topBarDarkBlue: #5F7FB7; 
$topBarLightBlue: #8EABE1; 

.title { 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue), 
    color-stop(100%, $topBarLightBlue)); 
    background-image: -moz-linear-gradient(bottom, $topBarLightBlue 0%, $topBarDarkBlue 100%); 
    width: 100%; 
    height: 70px; 
} 

Il semble être correct, mais pourquoi cela ne fonctionne pas?

+2

Vous utilisez les propriétés de propriété, vous devez utiliser une propriété générale trop afinde pour rendre votre travail de gradient –

+0

Qu'est-ce que « ne fonctionne pas »? Il y a une erreur (quelle est l'erreur?)? La sortie générée est fausse (qu'est-ce qui ne va pas?)? – cimmanon

+0

Il ne montre aucune erreur, ne fait pas le dégradé. – Slenkra

Répondre

0

Si vous copiez le code dans JSFiddle, le dégradé fonctionne. Il est également possible de mettre les variables dans la classe css:

.title { 
    $topBarDarkBlue: #5F7FB7; 
    $topBarLightBlue: #8EABE1; 

    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue), 
    color-stop(100%, $topBarLightBlue)); 
    background-image: -moz-linear-gradient(bottom, $topBarLightBlue 0%, $topBarDarkBlue 100%); 
    width: 100%; 
    height: 70px; 
} 
+0

La raison principale est d'utiliser ces couleurs dans tout le fichier css, car je les utilise dans de nombreux endroits du code. – Slenkra

0

Il semble que le compilateur SCSS dans Vaadin 7.1 n'est pas en mesure de remplacer correctement les variables que vous devez utiliser des valeurs de couleur au lieu des variables. Changer

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue) 

à

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5F7FB7) 

etc ...

+0

C'est triste. Je veux les utiliser dans beaucoup d'endroits dans le code, et si je veux changer d'entre eux, je dois écrire chacun d'entre eux. – Slenkra

+0

Vous pouvez créer un billet sur le problème à http: //dev.vaadin. com/newticket –

+0

Je le ferai, j'espère que les développeurs vaadin peuvent résoudre ce problème. :) – Slenkra

1

Vous pouvez en effet mettre les variables SASS entre parenthèses, comme la syntaxe du sélecteur de dégradé. Tout ce que vous avez à faire est de joindre votre variable avec une marque de hachage et des parenthèses puis précède, comme suit:

#{$myVar} 

Ca y est!

+0

Regardé vers le haut, cela s'appelle Interpolation http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_ Merci @PWM –

0

La meilleure façon d'utiliser globalement les dégradés dans .sass/.scss est de les utiliser via des mixins.

vous pouvez créer un mixins de dégradé:

$topBarDarkBlue: #5F7FB7; 
$topBarLightBlue: #8EABE1; 

@mixin bg-gradient(){ 
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue); 
background: -moz-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue); 
background: -ms-gradient(linear, left top, left bottom, color-stop(0%, $topBarDarkBlue); 
} 

Maintenant, il vous suffit de l'appeler dans votre principale .sass/fichier .scss. Je l'ai déjà fait dans un de mes projets récents, mais il n'était pas basé sur Vaadin. Vérifiez simplement cela fonctionne avec vaadin ou pas. Vérifiez la syntaxe une fois du code scss comme je suis un gars Sass.

espère que cela vous aidera