Se sto usando una tecnologia come Grails. È davvero facile finire con lo stile in linea.
Ci sono dei lati negativi nel generare automaticamente il codice con lo stile in linea? Questa è considerata una cattiva pratica? Perché?
Ci sono due ragioni principali per cui lo stile in linea generato automaticamente è cattivo:
Lo stile CSS in linea sovrascrive per impostazione predefinita le regole definite in un foglio di stile. Ciò significa che avrai difficoltà a modellare il contenuto in base alle tue esigenze tramite il foglio di stile stesso e che occorrerà passare costantemente dal foglio di stile allo strumento che consente di personalizzare il codice generato automaticamente .
Il codice generato automaticamente è [soprattutto] sempre stupido. E da stupido, intendo ... totalmente, orribilmente stupido. Se hai tre pulsanti su una pagina web e cambi il colore del testo di quei pulsanti, invece di scrivere una riga di codice, lo strumento di auto-gen scriverà tre righe. Più pulsanti → più righe → più incubi e problemi di rendimento .
Inoltre, il codice generato automaticamente è in gran parte limitato a ciò che è in grado di fare . In CSS, so come creare un'ombra o un gradiente che funzionerà in Chrome, Firefox e altri browser normali. So anche che non funzionerà in Internet Explhorror. Se usi il codice generato automaticamente, nella maggior parte dei casi (oggi ci sono alcune eccezioni), o non ti permetterà nemmeno di creare un'ombreggiatura o un gradiente, o lo farà, ma non ti dirà che funziona solo in alcuni browser¹.
Infine, considera uno scenario seguente. Hai creato un sito Web che utilizza il codice generato automaticamente per modificare il colore dei pulsanti in grigio. Ci sono circa 30 pagine con una media di 5 pulsanti per pagina. Due giorni prima del rilascio, ti viene chiesto di cambiare il colore da grigio a verde acqua:
Se hai utilizzato un foglio di stile dall'inizio, impiegheresti dieci secondi per trovare la linea che specifica il colore e cambiarlo.
Se usi il codice auto-gen, devi andare e cambiare tutti quei colori per tutti i 150 pulsanti, a mano. Oppure puoi provare a sviluppare una soluzione affidabile che guiderà tutti i tuoi file sorgente e cambierà il colore. Puoi farlo in dieci secondi?
¹ Naturalmente, questo non è un problema se sei a conoscenza dei CSS e sai esattamente cosa stai facendo.
Svantaggi, per i miei occhi:
Potresti compromettere l'integrità del design visivo. Se riutilizzi gli stili da un CSS preparato con cura, il tuo design ha maggiori possibilità di sembrare coerente.
Cambiare il design visivo diventa più difficile perché le informazioni sullo stile sono sparse nel codice.
La tua pagina diventa più grande. Questo potrebbe avere un ruolo se ad es. stile ogni elemento in una lunga lista.
Ci sono momenti in cui non puoi sfuggire all'informazione in linea: sta inviando email formattate in HTML.
Sì, lo stile in linea è considerato una pratica molto scarsa. Non hai una posizione centralizzata per i tuoi stili, ecco perché (idealmente) vuoi collegarti a un foglio di stile esterno. Con un foglio di stile esterno, fai alcune semplici modifiche e le tue modifiche si riflettono sul sito. Con gli stili in linea, devi andare a cercare quegli stili e apportare le tue modifiche.
La parte peggiore dello stile in linea è che non puoi utilizzare gli strumenti di Chrome per giocare facilmente con tecniche di styling alternative.
Sì, questa è una forma di supposizione e controllo, ma a volte aiuta a sfogliare le opzioni per vedere come apparirà ciascuna.
Mettendo in linea i tuoi stili rendi più difficile per gli altri entrare, capire cosa hai fatto, perché e quali effetti ha.
È un modo un po 'miope di fare le cose. È come presumere che il codice sia perfetto e nessuno cambierà mai la presentazione visiva di ciò che hai fatto. Questo è quasi sempre un cattivo presupposto.
Qualcuno può pensare a una buona ragione per gli stili incorporati? Non posso.
Penso che "dipende". Gli stili in linea inseriscono il CSS in cui è presente il componente interessato, il che rende più facile la ricerca. I selettori CSS possono essere molto criptici e possono influenzare componenti che non sono destinati a essere interessati. Trovo i fogli di stile utili solo quando uno stile ha lo scopo di influenzare più componenti e, naturalmente, sono MOLTO utili.
Mi è sembrato che quando i CSS uscivano per la prima volta (quando ne ho appreso per la prima volta) molti utenti si sono esagerati e hanno dichiarato che TUTTI gli stili devono essere nei fogli di stile. Dico che li uso quando rendono il tuo codice più conciso, più gestibile e più leggibile. Altrimenti penso che gli stili in linea vadano bene.
Leggi altre domande sui tag code-quality design css