2013-05-15 8 views
7

muszę następujące:Need Empty Div z tłem obrazu Aby wymusić wysokość i musi reagować

  • emtpy div bez zawartości
  • tła ustawiony na div obrazu
  • tła, płyn/reagujący na re-size nie można ustawić stałe
  • wymiary na div

Wszystko staram się nie powiedzie, aby wymusić div otwarty do wsparcia rozmiar obrazu tła. Każda pomoc jest mile widziana ...

http://www.everymountain.us/

<header id="header"> 
<div class="wrapper"> 
<div class="inner"> 
<div class="top_banner"></div> 
</div> 
<div class="clear"></div> 
</div> 
</header> 

.front #header .top_banner { background: url('images/bg_front.jpg') no-repeat; background-size: cover; } 
+0

byłbym skłonny, aby zobaczyć swoje wysiłki. Pls umieść link JSfiddle swojej pracy i zrzut ekranu z wynikami, które chcesz. – Nitesh

+0

dodano link do strony i fragmentu kodu powyżej. – user1447958

+0

Tło będzie zależało od wielkości Div. Więc jeśli rozmiar twojego div nie jest ustawiony, obraz tła będzie wyświetlany zgodnie z rozmiarem div. –

Odpowiedz

1

można obsługiwać go po zastosowaniu CSS

#DivName{ 
    background-size: auto auto; 
    } 

tutaj pierwsze auto jest na szerokość i drugi jest na wysokości

+0

auto nie działa ... pusty div bez wysokości div wciąż się zawala. – user1447958

+0

ty to jest część renderowania przeglądarki. możesz dodać spację " " do swojego diva. Myślę, że to zadziała. –

+0

Daj mi znać, jeśli osiągniesz sukces? –

0

Try używać zapytań medie w twoim CSS dla różnych rozmiarów ekranu do obsługi różnych stałych wysokości. Na przykład:

@media (min-width: 1200px) { 
    div { height: 3em; } 
} 
@media (min-width: 768px) and (max-width: 979px) { 
    div { height: 2em; } 
} 
@media (max-width: 767px) { 
    div { height: 1.2em; } 
} 
@media (max-width: 480px) { 
    div { height: 1em; } 
    } 

itd. To, co musisz dostosować. Możesz pozostawić szerokość div 100%, aby pasowała do wszystkich ekranów i tła: wielkość okładki. Możesz także tworzyć tła o różnych rozmiarach (różne pliki) dla każdego rozmiaru ekranu, aby zmniejszyć rozmiar witryny dla urządzeń mobilnych lub tabletów.

+0

Mam na myśli "media" oczywiście przepraszam za błędny typ – danielnagy

31

Sposób na zablokowanie współczynnika proporcji wysokości do szerokości płynu to użycie wartości procentowej padding-top lub padding-bottom. Dzieje się tak, ponieważ wszystkie procentowe wypełnienia odpowiadają szerokości kontenera elementu. Twój obraz tła to 960 x 520, a więc wysokość 54.166666666667%.

HTML

<div class="top_banner"></div> 

CSS

.top_banner { 
    background-image: url('images/bg_front.jpg'); 
    background-size: 100%; 
    width: 100%; 
    padding-top: 54.166666666667%; 
    height: 0; 
} 

przykład: http://jsfiddle.net/SsTZe/156/

Zasadniczo takie same pytanie CSS fluid image replacement?

+0

gdzie dostałeś 54.166666666667% za dopełnienie do góry? –

+2

@ Memor-X 520/960 –

+1

Jest to doskonała technika, która omija problem konieczności jawnego określenia wysokości. Więcej niż tylko dziękczynienie - chciałbym zwrócić uwagę innych na tę odpowiedź. – weezilla

0

Ponieważ jest głównym wynikiem pomocną do tworzenia płynu wysokość div ogólnie (nie tylko puste, takie jak Określa się pytanie), chciałem zostawić CSS Calc rozwiązanie, które pozwala umieścić zawartość do div (padding siły sztuczka, że ​​jest pusty):

.my-div { 
    background: #ccc url(https://link-to-image/img.jpg) no-repeat 50% 0; 
    background-size: 100% auto; 
    width: calc(100vw - 350px); 
    height: calc((100vw - 350px) * 0.468795); /* replace the decimal with your height/width aspect ratio */ 
} 
+0

działa teraz Calc na wszystkich przeglądarkach, ponieważ unikałem go z powodu braku wsparcia? – user1447958

+0

Dość dobry zasięg na calc w tych dniach, z wyjątkiem miny operowej: https://caniuse.com/#search=calc –

Powiązane problemy