Hogyan nyúlik a háttérben az összes böngésző ablakban négy egyszerű megoldásokat CSS és JavaScript


A cél már az, hogy a háttérkép a helyszínen ki kell terjednie valamennyi látható böngésző ablakot bármikor. Íme néhány konkrét követelmények:

* A kép kitölti a teljes oldalt, megszakítás nélkül
Ábra skálázott ha szükséges
* Elmentett kép oldalaránnyal (képarány)
* A kép középre a közepén az oldal
* Nem jelenik scrollbars
* Ha lehetséges, a legtöbb cross-browser megoldás
* Nem haszontalan különböző fleshem

Kiváló, egyszerű és progresszív módszer segítségével CSS

Meg tudjuk oldani a problémát a tiszta CSS, amelynek köszönhetően az épület háttér méretű, ami megjelent CSS3. Szükségünk van a html elem (jobb, mint a test, mert nem mindig a teljes magassága a böngésző ablakban). Kérünk háttérképet elem html, központosítva, válasszon egy fix helyzetben (fix), és állítsa be a képméretet a tulajdonságok használatával háttér méretű, amelyek meghatározzák, hogy a fedél:

html <
background: url (images / bg.jpg) no-repeat center center fix;
-WebKit-háttér-méret: fedél;
-moz-háttér-méret: fedél;
-o-háttér-méret: fedél;
háttér-méret: fedél;
>

Ezt az opciót a következő lesz:

* Safari 3+
* A Chrome bármely verzió
* IE 9+
* Opera 10+ (Opera 9.5 támogatja háttér méretű, de nem támogatja a borítón)
* Firefox 3.6+ (Firefox 4 támogatja háttér-Size tulajdonság, mint -moz előtag)

Van is egy megoldás IE, de légy óvatos - úgy gondoljuk, hogy alkalmazása után néhány linkeket az oldalon nem működnek. Ha ez megtörténik - próbáljon meg ezt a kódot, hogy blokkolja a html vagy szerv, hanem a tartalmazó div, de a szélessége és magassága a 100% -ot. Itt a kód:

szűrő: ProgAzon: DXImageTransform.Microsoft.AlphaImageLoader (src = 'myBackground.jpg.', sizingMethod = 'méretarányos');
-ms-szűrő: "ProgID: DXImageTransform.Microsoft.AlphaImageLoader (src = 'myBackground.jpg', sizingMethod = 'méretarányos')";

Csak CSS. opció №1

Ebben a példában fogjuk használni az img elemet, amely könnyen változtatni a méretét bármely böngészővel. Fogjuk használni a min-height tulajdonság, hogy kitöltse a böngésző ablakot függőlegesen és határozza meg a szélessége 100%, hogy nem ugyanaz vízszintesen. Azt is kérjük, min-width a kép nem lesz kevesebb, mint amilyen valójában.

img.bg <
/ * Set szabályokat, hogy töltse háttér * /
min-magasság: 100%;
min-szélesség: 1024 képpont;

/ * Beállítása arányos méretezés * /
szélesség: 100%;
magasság: auto;

/ * Beállítása helymeghatározás * /
összesen: fix;
top: 0;
bal: 0;
>

Úgy működik, hogy a következő böngészők:

* Bármely változatát normál böngészők: Safari / Chrome / Opera / Firefox
* IE 6: Úgy működik - de problémák vannak a rögzítő a kép
* IE 7/8: A legtöbb működik, de nincs középen kis állásfoglalásaira, és így teljesen kitölti a képernyőt
* IE 9: Works

Csak CSS. variáns №2

Van egy másik viszonylag egyszerű módja annak, hogy megoldja a problémát: használja a kép oldalunkon feltenni neki fix helyzetben a bal felső sarokban, és határozza meg a min-height és min-width 100%, miközben a képarányt.

#bg <
összesen: fix;
top: 0;
bal: 0;

/ * Megőrzése Aspet arány * /
min-szélesség: 100%;
min-magasság: 100%;
>

Azonban ez nem a képet középre, ami fontos számunkra. Meg tudjuk oldani ezt a problémát megkötésével kép egy div blokk. Ez az egység mérete 2-szer nagyobb, mint a böngésző képernyő. Amikor fel a képet a blokk, akkor pontosan a közepén a böngésző ablakot, miközben a képarány.



#bg <
összesen: fix;
top: -50%;
bal: -50%;
szélesség: 200%;
magasság: 200%;
>
#bg img <
pozíció: abszolút;
top: 0;
bal: 0;
jobbra: 0;
alsó: 0;
margin: auto;
min-szélesség: 50%;
min-magasság: 50%;
>

Ez a beállítás működik:

* Safari / Chrome / Firefox (feltehetőleg nem minden a régi verzió)
* IE 8+
* Opera (az összes verzió) és az IE, mind félreértik ezt a kódot (helytelen elhelyezése nem világos, hogy miért)

Opció programok közül jQuery