html
jest właściwym elementem blokowym, podobnie jak body
, p
, div
, etc - to dlatego zachowuje wszystkie te same zasady przelewowych inne elementy blokowe zrobienia.
Jednak powodem, dla którego tło html
wykracza poza jego granicę, gdy zawartość przepełnia jego szerokość (lub gdy jego szerokość jest mniejsza niż 100% okna przeglądarki lub rzutni), jest to, że kolor tła jest propagowany do rzutnia, która jest płótnem zawierającym html
i całą zawartością, która jest renderowana. Granica pozostaje częścią elementu html
, więc element nie rozwija się, gdy zawartość się przepełni. To zachowanie jest bardzo podobne do tego, jak zastosowanie tła do body
, ale nie html
, powoduje, że tło ciała jest propagowane do elementu głównego mimo to, jak opisano w this answer, które przytacza this section of the spec.
Jak Alohcinotes in a comment pod odpowiedzią, to samo dotyczy html
względem rzutni:
Zauważ, że html zachowuje się w stosunku do rzutni w taki sam sposób, jak ciało zachowuje się w stosunku do HTML, z tłem wychodzącym poza obręb elementu html. Zobacz http://jsfiddle.net/GmAL4/4/, aby zobaczyć, co mam na myśli.
Dobre pytanie! Po prostu wydaje się, że '' 'i'
'są wyjątkowe, i tylko dla' background-color'. Na przykład gradienty nie działają tak samo. – RyanOto skrzypce, które pokazują problem: http://jsfiddle.net/rPGyc/3/ – GregM
Nigdy nie widziałem nikogo, kto dodawałby stylu do elementu 'html' w ten sposób, tylko na' ciele' lub jeszcze lepiej, 'div' siedzi właśnie wewnątrz' ciała'. Myślę, że to będzie taki "div", który da ci pożądany efekt, ale nie jestem pewien, czy to odpowiada na twoje pytanie. – cobaltduck