2013-06-25 5 views
6

Sto cercando di utilizzare Bootstrap in un progetto che comprende oltre 400 siti e utilizza i nomi di classi CSS precedenti (di cui non ho alcun controllo). Mi sono imbattuto in alcuni clash dei nomi CSS e la soluzione per me è aggiungere un prefisso a Bootstrap (.row a .tb-row per esempio).Aggiungere prefissi ai nomi di classi CSS utilizzando LESS o SASS

Ho familiarità con il metodo di aggiungere uno spazio dei nomi utilizzando LESS, dove una classe aggiuntiva è avvolta attorno alle classi. Sfortunatamente, questo non sembra che risolva i miei problemi.

Esiste un metodo tramite LESS, SASS o qualsiasi altro compilatore che mi faciliti l'aggiunta di un prefisso tb- a tutte le classi esistenti in Bootstrap?

+1

Mentre non posso parlare con certezza, credo che la risposta sia "no". Inoltre, se si guarda il codice di bootstrap, usano molti selettori di attributi (quindi non solo classi) per fare cose, alcuni dei quali fanno e altri non dipendono anche dalle classi stesse. Ciò aumenta la complessità di ciò che stai cercando di fare. – ScottS

risposta

12

Probabilmente si potrebbe fare questo con SASS

  • $ namespace: "tb";
  • ⌘ + f (o simile) per trovare tutte le classi nel file CSS. Probabilmente avrai bisogno di una regex (e qualche errore di prova +) per trovarli tutti.
  • aggiungi .#{$namespace}- a tutte le classi.

Idealmente, si otterrebbe ottenere qualcosa del genere:

$namespace: "tb"; 

.#{$namespace}-myClass { 
    background:pink !important; 
} 

.#{$namespace}-carousel-module { 
    width: 25%; 
} 

compilato per

.tb-myClass { 
    background:pink !important; 
} 

.tb-carousel-module { 
    width: 25%; 
} 

"Easy" potrebbe essere un tratto, ma più "facile" sembra opportuno.

Non sono sicuro che questo sia l'approccio migliore, in tutta onestà, sono solo ripping off a gist that I saw con commenti di persone molto più intelligenti di me. Può tornare utile per te!

+0

La modifica della libreria TB è una soluzione tutt'altro che ideale. – cimmanon

+0

Sono d'accordo ma sembra essere quello che l'autore sta cercando – imjared

6

Si avrebbe bisogno di modificare direttamente il codice di bootstrap, un esempio di come questo potrebbe essere realizzato con eleganza in meno:

.prefixname { 
    &-row { 
     ... 
    } 
} 
+0

ho cercato di usare questo approccio ma per qualche motivo non funziona :( –

+0

Funziona in ** SASS ** –

0

Ho aggiunto prefisso "TB-" per tutta la classe di bootstrap (per meno) nella v3.1.0. Quindi, dopo aver compilato i file in meno, otterrai qualcosa come ".tb-btn" Puoi inserire il mio progetto a https://github.com/TimothyGuo/tb--prefix-for-Bootstrap-v3.1.0--LESS-

+0

Come hai creato quei file che hai in il tuo repository github Questo è esattamente quello che voglio fare – user566245

+0

Io uso git bash per spingere quei file al mio repository.Puoi scaricare il file zip direttamente da github, o tirare giù il repository nel tuo ambiente locale. su un progetto che ha bisogno di un prefisso per il bootstrap v3.1.0, ma sfortunatamente non sono riuscito a trovare nessuno che abbia già aggiunto il prefisso a questa nuova versione, quindi ho deciso di farlo da solo e condividere con la community. –

+0

grazie a Tim, quindi come funzionerebbe con i componenti JavaScript di Bootstrap come modale, popover ecc. Che stanno creando elementi con classi specifiche e cercando elementi con classi specifiche – user566245

Problemi correlati