2012-10-04 21 views
49

Chcę div z obrazem o stałej szerokości po lewej stronie i div o zmiennej szerokości z kolorem tła, który powinien rozszerzyć jego szerokość o 100% na moje urządzenie. Nie mogę zatrzymać drugiego div od przepełnienia mojego stałego div.Ustalona szerokość div po lewej stronie, wypełnienie pozostałej szerokości div po prawej

Po dodaniu przepełnienia: ukryty przy zmiennej szerokości div przeskakuje pod zdjęciem, w następnym wierszu.

Jak mogę to naprawić we właściwy sposób (tzn. Bez hacków lub marginesów z lewej strony, ponieważ muszę sprawić, że witryna będzie reagować później za pomocą zapytań o media i muszę zmienić obraz z innymi obrazami rozdzielczości dla każdego urządzenia)?

  • Początkujący web designer próbują rozwiązać grozę reagujących na stronach internetowych -

HTML:

<div class="header"></div> 
<div class="header-right"></div> 

CSS:

.header{ 
    float:left; 
    background-image: url('img/header.png'); 
    background-repeat: no-repeat; 
    width: 240px; 
    height: 100px; 
    } 

.header-right{ 
    float:left; 
    overflow:hidden; 
    background-color:#000; 
    width: 100%; 
    height: 100px; 
    } 
+3

+1 za dobry tytuł. – QMaster

Odpowiedz

55

Spróbuj usunąć float:left i width:100% z .header-right - prawo div następnie zachowuje się zgodnie z żądaniem.

Zobacz this jsfiddle.

+1

Dziękuję bardzo! Działa zarówno na iPhone'ie jak i na Androidzie Galaxy S plus! Myślę, że po prostu muszę uważać i tworzyć właściwe zapytania o media w stosunku min-device-pixel-ratio. Chciałbym móc głosować, ale jestem za nowy. –

+0

Jeśli chcesz odwrócić konfigurację i mieć prawą div stałą i div o zmiennej szerokości po lewej stronie, czy będzie to tak proste, jak zmiana float: left on .header float: right? Grałem z tym na http://jsfiddle.net/veW2z/14/ i nie mogę sprawić, żeby zachowywało się tak, jak tego chcę. –

+0

@PaulZobacz, co należy zrobić. zachowaj jednak kolejność elementów div. – caitriona