Quale opzione è migliore:Nascondi elemento o crea al volo?
avere un elemento nel markup, nascosto con i CSS. Se JS è abilitato, mostra quell'elemento.
non hanno alcun elemento nella marcatura e creare al volo, se JS è abilitato.
Se l'utente non ha JS, non voglio che venga mostrato un div. La mia domanda non è come codificare i diversi casi, è qual è il migliore e perché.
EDIT: Quando dico "migliore" intendo sostenere la vostra risposta con questo che è la migliore per voi. Può essere velocità/semantica/ecc. Quello che voglio è essere in grado di avere una visione migliore dei pro e dei contro di ciascuno. Anche la velocità non è un problema, perché è solo un elemento quindi sarebbe come millisecondi.
Per la prima opzione, è probabilmente più veloce, ma poi abbiamo delle regole di markup e CSS inutili. Perché se non c'è JS, non avrebbe senso avere l'elemento, e tanto meno nasconderlo.
Ora la seconda opzione, anche se potrebbe non essere così veloce, continuo le varie parti separate e veramente solo caricare ciò che deve essere caricato.
Che cosa si intende per "migliore"? Velocità/prestazioni o semantica? – j08691
Se vuoi mostrare l'elemento solo se l'utente ha javascript, lo inserirò nella dom come se lo nascondi con css e potresti essere punito dai motori di ricerca per farlo. Inoltre, le persone con chi ha disabilitato il css (o alcuni screen reader) avranno anche accesso al contenuto. Ma questa è solo la mia opinione – Pete
@Pete, i motori di ricerca sono abbastanza intelligente per ignorare il contenuto nascosto con 'visualizzazione: none', possono punirti se c'è un sacco di contenuti di essere spinto fuori dalla vista con' text-align' però. E naturalmente, per "motori di ricerca" intendo "Google". – zzzzBov