Sto lavorando a un progetto Rails che sta appena iniziando. Vogliamo usare Twitter bootstrap come base per i nostri stili, all'inizio avremmo semplicemente utilizzare i nomi delle classi di bootstrap direttamente sul codice HTML, proprio come è indicato nella documentazione del bootstrap, ma dopo aver letto i seguenti posti:Come utilizzare sass per evitare correttamente l'incorporamento dei nomi delle classi bootstrap di twitter su HTML
Lessons learned in maintainable css
Please stop embedding Bootstrap classes in your HTML
è diventato chiaro il motivo per cui questo non è il giusto perché utilizzare bootstrap, così dopo alcuni più letture:
tra l'altro, sembrava che usando @extend Sass era il modo corretto per evitare di usare i nomi delle classi di bootstrap, così invece di fare questo:
<button type="submit" class="btn">Search</button>
ci farebbe questo:
<button type="submit" class="button">Search</button>
e il nostro codice sass sarebbe simile a questa:
.button {
@extend ".btn";
}
Il problema con questo approccio, oltre al gruppo di selettori aggiuntivi che verranno aggiunti ogni volta che estendiamo una classe di bootstrap solo per utilizzare un nome diverso, è che nei casi in cui bootstrap utilizza selettori in questo modo:
.form-search .input-append .btn, .form-search .form-input-append .btn {
border-radius: 0 14px 14px 0;
}
la tasto non sarà possibile ottenere lo stile giusto, perché sass non si applicherà la stessa regola a nostro nome classe personalizzata, voglio dire, sass è non fare questo:
.form-search .input-append .btn, .form-search .input-append .button,
.form-search .form-input-append .btn, .form-search .form-input-append .button {
border-radius: 0 14px 14px 0;
}
Allora mi chiedo, è questo il modo giusto di evitare di incorporare i nomi delle classi di bootstrap in HTML, in tal caso, come dovrei gestire questo problema (succede frequente? y)? in caso contrario, quale sarebbe un modo migliore per utilizzare nomi di classi personalizzati, ma ottenere comunque gli stili dal bootstrap.
Apprezzo molto i vostri pensieri su questo. Si prega di tenere presente che sto solo imparando sul web design generale (css, sass, less, html, js, ecc.).
Altro che "non usare Bootstrap" o "riscrivere Bootstrap non essere ritardati", non sono sicuro che c'è una soluzione. Nel tuo esempio di pulsante, il nome della classe non dovrebbe essere quotato (in più, direi che la classe "button" su un elemento button è superflua). Il tuo secondo esempio non funzionerà perché è un selettore composto e '@ extend' funziona solo su selettori semplici. – cimmanon
Bootstrap è un software supponente. Usa molte e molte classi. Se non vuoi usare molte e molte classi, sono d'accordo con @cimmanon che "non usare Bootstrap" è una buona soluzione. – bookcasey
Bootstrap è stato originariamente scritto in LESS, ma ci sono un paio di porte in SASS: - https://github.com/thomas-mcdonald/bootstrap-sass - https://github.com/jlong/sass-twitter- bootstrap Provali, almeno uno di loro dovrebbe avere le classi che ti servono. –