9

Sto provando a creare nuovi pulsanti di Bootstrap di Twitter nella mia app Rails, quindi non devo sovrascrivere quelli vecchi. Utilizzando il Bootstrap-Sass gemma, ho capito come ignorare i pulsanti predefiniti in questo modo (per rendere la classe btn-warning 'Twitter blu'):Crea nuovi pulsanti Bootstrap di Twitter con Bootstrap-Sass in Rails?

$twitterBlue:#4099FF; 
$btnWarningBackground: $twitterBlue; // (twitter blue) 
$btnWarningBackgroundHighlight:  $twitterBlue; 

mi piacerebbe definire una classe btn-twitter, tra altri, ma non riesco a capire come copiare tutti gli stili Bootstrap in nuovi pulsanti. Ho provato cose del tipo:

$twitterColor: #4099FF;    // (twitter blue) 
$btnTwitterBackground:    lighten($twitterColor, 15%); 
$btnTwitterBackgroundHighlight:  $twitterColor; 

.btn-twitter { 
    background: $twitterBlue; 
    // something goes here to inherit the base button styles 
} 

Ma questo rende solo un pulsante con lo stile predefinito.

Sono ancora abbastanza nuovo per SASS e non sanno molto della magia che sta succedendo dietro le quinte con i meno -> conversione SASS. Inoltre non sono stato in grado di trovare nulla sulla 'rete sulla creazione di nuovi pulsanti. Se c'è qualcosa là fuori, sentitevi liberi di puntare solo ad esso :)

Grazie in anticipo!

EDIT Mentre non perfettamente legato alla domanda, ho pensato di fornire un collegamento super-utile per il foglio di variabili Bootstrap-Sass, che mi ha aiutato un po 'con l'estensione Bootstrap nel mio progetto Rails: https://github.com/thomas-mcdonald/bootstrap-sass/blob/master/templates/project/_variables.scss.

+0

possibile duplicato [E 'possibile in SASS di ereditare da una classe in un altro file?] (http://stackoverflow.com/questions/11787330/is-it-possible-in-sass-to-inherit-from-a class-in-anothe r-file) – taocp

risposta

7

E 'molto probabile che si può raggiungere questo obiettivo usando Sass di @extend functionality.

.btn-success { 
    // some crazy unknown bootstrap stuff here 
} 

// in your file 
.btn-twitter { 
    @extend .btn-success; 
    background-color: $twitterBlue; 
    // more stuff 
} 
+0

Grazie Ben, ci penserò. Non ho avuto molta fortuna finora, ma continuerò a provare. Ogni volta che sovrascrivo 'background o' background-color', mantiene lo stile 'btn-primary' verde. –

+1

Hai provato la bandiera '! Important'? 'background: $ colorName! important'. –

+0

Questo mi ha portato a cambiare il colore di sfondo e il colore di sfondo: hover, ora ho solo bisogno di capire come renderlo dissolvenza tra i due come fanno tutti gli altri pulsanti Bootstrap. –

0

Dai un'occhiata alla lima mixin _mixins.scss

// Button backgrounds 
// ------------------ 
@mixin buttonBackground($startColor, $endColor, $textColor: #fff, $textShadow: 0 -1px 0 rgba(0,0,0,.25)) 
... 

nuovi pulsanti personalizzati sono facili da creare:

.mybutton{ 
    @extend .btn; 
    @include buttonBackground($startColor:$bluelight,$endColor:$bluenormal); 
} 
11

In Bootstrap 3.1, il pulsante di default si presenta così:

.btn-default { 
    @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); 
} 

Puoi usarlo allo stesso modo nel tuo codice, ma nota che funziona solo dopo l'importazione bootstrap (a differenza delle sostituzioni delle variabili, che devono venire prima).

Problemi correlati