mam
body {
background: url(images/background.svg);
}
Pożądanym efektem jest to, aby ten obraz tła miał szerokość równą szerokości strony, a wysokość zmienia się, aby zachować proporcję. np. jeśli oryginalny obraz ma rozmiar 100 * 200 (dowolne jednostki), a treść ma szerokość 600 pikseli, obraz tła powinien mieć wysokość 1200 pikseli. Wysokość powinna zmieniać się automatycznie, jeśli rozmiar okna zostanie zmieniony. czy to możliwe?
W tej chwili Firefox wygląda tak, jakby dopasowywał wysokość, a następnie dostosowywał szerokość. Czy może dlatego, że wysokość jest najdłuższym wymiarem i stara się uniknąć przycinania? I chcą , aby przyciąć w pionie, a następnie przewiń: No Repeat poziomą.
Ponadto Chrome umieszcza obraz na środku, bez powtarzania, nawet jeśli background-repeat:repeat
podano go wyraźnie, co i tak jest ustawieniem domyślnym.
html, body { height: 100%; }
pomaga Również kaszel .Odpowiedzi:
Jest do tego właściwość CSS3, a mianowicie
background-size
( kontrola zgodności ). Chociaż można ustawić wartości długości, zwykle używa się go ze specjalnymi wartościamicontain
icover
. W twoim konkretnym przypadku powinieneś użyćcover
:Eggsplanation dla
contain
icover
Przepraszam za kiepską kalamburę, ale wykorzystam zdjęcie dnia autorstwa Biswarup Ganguly do demonstracji. Powiedzmy, że to jest twój ekran, a szary obszar znajduje się poza twoim widocznym ekranem. Dla celów demonstracyjnych zamierzam przyjąć proporcje 16 x 9.
Chcemy wykorzystać wspomniane zdjęcie dnia jako tło. Jednak z jakiegoś powodu przycięliśmy obraz do 4x3. Możemy ustawić
background-size
właściwość na pewną stałą długość, ale skupimy się nacontain
icover
. Zauważ, że zakładam również, że nie zmieniliśmy szerokości i / lub wysokościbody
.contain
Dzięki temu obraz tła jest zawsze całkowicie zawarty w obszarze pozycjonowania tła, jednak
background-color
w tym przypadku może być wypełniona pusta przestrzeń :cover
Dzięki temu obraz tła pokrywa wszystko. Nie będzie widoczny
background-color
, jednak w zależności od proporcji ekranu duża część obrazu może zostać odcięta:Demonstracja z rzeczywistym kodem
źródło
-webkit-
prefiks?background-size: contain
contain
jest jak dopasowanie z powiększeniem.cover
jest jak wypełnienie z powiększeniem.contain
dostosowuje rozmiar obrazu, aby dopasować większy wymiar między szerokością i wysokością.cover
dostosowuje rozmiar obrazu, aby dopasować mniejszy wymiar między szerokością i wysokością.Na podstawie wskazówek z https://developer.mozilla.org/en-US/docs/CSS/background-size kończę z następującym przepisem, który działał dla mnie
źródło
background-position: center;
, działało to dla mnie lepiej niżbackgound-size: cover;
.overflow-y: hidden
części?Nie jestem pewien, czego dokładnie szukasz, ale naprawdę powinieneś sprawdzić te doskonałe posty na blogu napisane przez Chrisa Coyiera z CSS-Tricks:
http://css-tricks.com/how-to-resizeable-background-image/
http://css-tricks.com/perfect-full-page-background-image/
Przeczytaj opisy każdego z artykułów i sprawdź, czy szukasz tego.
Pierwsze odpowiedzi na następujące pytanie:
Celem drugiego postu jest uzyskanie następującego „obrazu tła w witrynie, który cały czas pokrywa całe okno przeglądarki”.
Mam nadzieję że to pomoże.
źródło
Obraz w tle nie jest ustawiony jako Perfect, wtedy jego css ma problem z utworzeniem, więc jego plik css zmienia się na poniższy kod
%; rozmiar tła: 100% 100%; "
źródło
Spróbuj tego,
źródło
Po prostu dodaj tę jedną linię:
vh to wysokość rzutni. Spowoduje to automatyczne skalowanie w celu dopasowania do okna przeglądarki urządzenia.
Sprawdź więcej tutaj: Zrób div 100% wysokości okna przeglądarki
źródło
źródło
Miałem ten sam problem, nie mogłem zmienić rozmiaru obrazu podczas dostosowywania wymiarów przeglądarki.
Zły kod:
Dobry kod:
Kluczem jest tutaj dodanie tego elementu -> rozmiar tła: zawierają;
źródło
Oto, co zadziałało dla mnie:
źródło
Ustawienie rozmiaru tła nie pomaga, działało dla mnie następujące rozwiązanie:
Zasadniczo kadruje obraz i dopasowuje go,
background-size: contain/cover
wciąż go nie dopasowuje.źródło