2012-02-29 25 views
9

Mam divZapytania o media i obrazy tła

<div id="page"> 

</div> 

z następującymi CSS:

#page { 
    background: url('images/white-zigzag.png') repeat-x; 
    } 

    @media (max-width: 600px) { 
    #page {  
    background: url('images/white-zigzag-mobile.png') repeat-x; 
    } 
} 

zauważam kiedy rozmiar przeglądarkę, widzę "mobile" tła (dobre), ale jeśli wrócę i sprawię, że moja przeglądarka będzie duża, moje poprzednie "duże" tło nie zawsze pojawi się ponownie.

Jest to sporadyczny problem, ale dzieje się tak często, że uważam, że powinienem się do niego odnieść.

Czy istnieje sposób na obejście problemu z "obrazem tła nie pojawiającym się" lub zmianę rozmiaru obrazów tła, aby zapytanie o media "zmniejszyło" obraz tła, aby dopasować go do nowego rozmiaru? O ile wiem, nie ma (powszechne) sposób zmienić rozmiar obrazu tła ...

+1

Czy spróbować użyć @media (min-width: 600px) {background: url ('images/biało-zygzak. png ') repeat-x; } Nie jestem pewien, czy to działa, dlatego to jest komentarz. – Tim

+1

Prawdopodobnie już znasz ten link: http://css-tricks.com/how-to-resizeable-background-image/ (zmieniając ponownie rozmiar obrazu tła). – juanrpozo

+0

Kiedy to robię, nie zmienia rozmiaru obrazu ... to widzę tylko część obrazu, a nie obraz o rozmiarze – redconservatory

Odpowiedz

18

Według this test:

Jeśli chcesz tylko komputerowej wersji obrazek, aby pobrać na pulpicie ...

i tylko ruchomy obraz do pobrania na telefon komórkowy urządzenie -

Musisz użyć deklaracji min-width, aby określić minimalną szerokość przeglądarki dla obrazu pulpitu ...

i a max-width dla obrazu mobilnego.

Tak Twój kod będzie:

@media (min-width: 601px) { 
    #page { 
    background: url('images/white-zigzag.png') repeat-x; 
    } 
} 

@media (max-width: 600px) { 
    #page {  
    background: url('images/white-zigzag-mobile.png') repeat-x; 
    } 
} 
+0

Na wypadek, gdyby to pomogło komuś, problem, który miałem, nie zawierał odpowiednio tagu '', coś takiego: '' ahead reszty CSS. – YPCrumble

+0

Występuje tu problem: Firefox i Chrome pobierają również mniejszy rozmiar obrazu podczas zmiany rozmiaru ekranu (na mniejszy rozmiar), np. zaczynasz od większego rozmiaru ekranu (szerokość> = 601px), a przeglądarka pobiera większy obraz; następnie zmieniasz rozmiar przeglądarki na szerokość <= 600px, a twoja przeglądarka pobierze także mniejszy obraz, co jest całkowicie bezcelowe, ponieważ masz już dużą rozdzielczość, a teraz dwukrotnie pobierasz mniejszą. Całkowicie sprzeczne z logiką rzeczy (oszczędzanie pasma poprzez pobieranie tylko największego potrzebnego rozmiaru). –

+0

@DrunkenMaster możesz nie * lubić * tego zachowania, ale nie jest to wcale nielogiczne. Przeglądarka nie wie, że te dwa obrazy to tylko różne rozdzielczości tego samego obrazu, wiele osób wyświetla * różne * obrazy w zależności od tego, czy jest to telefon komórkowy czy komputer. Ja, na przykład, wolę takie zachowanie. – TKoL

1

Kod podałeś jest trochę buggy który jest dobrym miejscem do rozpoczęcia aktualnie masz

#page { 
background: url('images/white-zigzag.png') repeat-x; 
} 

@media (max-width: 600px) { 
background: url('images/white-zigzag-mobile.png') repeat-x; 
} 

Fragment zapytania o media nie jest kompletny. Trzeba jeszcze zapewnić selektor CSS, który został użyty na zewnątrz zapytania:

#page { 
background: url('images/white-zigzag.png') repeat-x; 
} 

@media (max-width: 600px) { 
    #page {  
    background: url('images/white-zigzag-mobile.png') repeat-x; 
    } 
} 

Start z tym i daj mi znać, czy to rozwiązuje sprawy.

+0

Przepraszam, że to był literówka z mojej strony ... Poprawiłem moje pytanie powyżej. – redconservatory

0

skorzystaj

`@media screen and (min-width: 320px) and (max-width:580px) { 
#page{ 
background: url('images/white-zigzag.png') repeat-x;}}` 
+1

proszę wyjaśnić, dlaczego twoja odpowiedź poprawi się w pytaniu – nomistic

Powiązane problemy