2013-10-24 18 views
6

Perché tutti i browser * presentano un margine di dimensioni arbitrarie sull'elemento <body> di tutte le pagine Web? Non ne sono sorpreso, dato che lavoro da anni con le pagine web, ma ho pensato che fosse parte delle specifiche, nello stesso modo il testo all'interno di <strong> dovrebbe essere in grassetto. Ma, come visto in HTML5, HTML 4.01, HTML 4.0, HTML 3.2, e anche HTML 2.0 e the RFC Definition, gli stili predefiniti non vengono nemmeno menzionati!perché i browser modificano un margine predefinito in tutte le pagine Web?

non riesco a trovare alcuna definizione di HTML prima di 2.0, che è stato rilasciato al mondo nel 1995, in modo da perché sarebbero tutti * i browser inserire il molto specifico 8px margine su tutte le pagine web, specialmente in questi giorni in cui ogni sito web lo rimuove nelle prime righe di CSS (anche lo HTML 4.01 spec's stylesheet fa questo) o un foglio di stile normalizzare/resettare? Certo, si potrebbe sostenere che siti Web antichi come le specifiche HTML 3.2 sopra elencate si basano su questo, ma in realtà non sembrano male senza il margine (prova a rimuoverlo con il tuo browser inspector).

* da "tutti i browser", voglio dire tutti versioni di Chrome, Firefox, Internet Explorer, Opera e Safari, comprese le versioni tutti i relativi obsoleti, beta, alfa, e nightly, a partire da questa domanda.

+3

Buona domanda. Mi sono sempre chiesto questo ... –

risposta

5

I browser devono avere un rendering predefinito di del tipo (i fogli di stile dell'autore non esistevano quando l'HTML era stato introdotto per la prima volta e sono ancora oggi un extra opzionale).

Se non ci fosse margine/riempimento sul corpo/html, il testo si troverebbe di fronte al bordo della finestra e alla barra degli strumenti dove sarebbe molto difficile da leggere (che sarebbe una scelta sbagliata per un rendering predefinito).

perché mai tutti i browser inserire il margine di 8px molto specifico su tutte le pagine web

"Ma è un aspetto diverso in Netscape" è stata una lamentela comune. I browser hanno copiato il rendering predefinito gli uni dagli altri per compensare gli autori che scrivono pagine e pensano solo a un browser.

in cui ogni sito web rimuove nelle prime righe di CSS

Non ogni sito web fa. È una pratica comune (ma non universale) per i siti che includeranno un foglio di stile, ma non tutti i siti lo fanno.

+0

Mi piace quanto siano informati e indiscutibili tutti i tuoi punti! Sarebbe bello vedere alcuni esempi, però; Raramente, se non mai, vedo i margini di utilizzo dei siti Web ancora conservati. – Supuhstar

3

Il foglio di stile si parla al http://www.w3.org/StyleSheets/TR/W3C-REC rimuove il margine, ma anche applica un'imbottitura per il corpo, spostando il testo dal browser Chrome per migliorare la leggibilità ..

browser deve avere almeno un po 'lo stile di default di elementi HTML per trasmettere gerarchia e struttura.

Update: è possibile visualizzare i fogli di stile user-agent al seguente:

+0

Questo dice solo che i browser fanno questo perché "devono", ma voglio sapere chi ha detto "devono" e perché sono tutti d'accordo sul default di 8px piuttosto che assumere che i web designer possano aggiungerlo da soli se sentono che ne ha bisogno . Nota, inoltre, che StackOverflow, tra molti siti, decide che centrare la pagina è più importante che dargli il padding laterale, e rimuove del tutto i margini e il padding del tutto. Vedete questo se ridimensioni questa finestra per essere abbastanza piccola da usare una barra di scorrimento orizzontale – Supuhstar

+1

Immagino che questo potrebbe provenire da Sir Tim Berners-Lee quando ha sviluppato il primo browser alla fine del 1990 e poi ulteriormente iterato da Marc Andreessen in 1993 con l'uscita di Mosaic/Netscape. Ricordiamo anche che le pagine centrate sono di progettazione, non di default. Noi progettisti e sviluppatori mettiamo quel vincolo sulla pagina web quando li mettiamo insieme. Fonti: http://en.wikipedia.org/wiki/Marc_Andreessen, http://en.wikipedia.org/wiki/HTML, http://en.wikipedia.org/wiki/Cascading_Style_Sheets –

1

Per aggiungere un po 'alla altre risposte, i browser Web sono stati commercializzati in modo molto diverso negli anni '90 rispetto a oggi e includevano anche componenti diversi. Uno di questi componenti incluso nella suite Netscape (ricorda, al momento, Netscape era l'unico cane in città, e dovevi acquistarlo) era un editor HTML chiamato Netscape Composer. Immagino che quando Microsoft ha rilasciato IE per competere, probabilmente avevano alcune funzionalità simili, usando quindi il proprio stile predefinito (anche se non ricordo cosa fosse, non stavo nemmeno pensando di sviluppare in quel momento). La mia ipotesi migliore è che queste funzionalità dell'editor HTML abbiano contribuito almeno in parte allo stile predefinito dei diversi browser web.

Problemi correlati