2012-10-04 19 views
49

Quiero un div con una imagen de ancho fijo a la izquierda y un ancho variable con un color de fondo, que debe ampliar su ancho al 100% en mi dispositivo. No puedo evitar que el segundo div se desborde de mi div fijo.Div ancho fijo a la izquierda, relleno ancho restante div a la derecha

Cuando agrego desbordamiento: oculto en el ancho variable de div solo salta debajo de la foto, en la siguiente fila.

¿Cómo puedo solucionar esto de la manera correcta (es decir, sin hacks o margin-left, ya que necesito hacer que el sitio responda más tarde con consultas de medios y tengo que cambiar la imagen con otras imágenes de resolución para cada dispositivo)?

  • principiante diseñador de páginas web que intenta abordar el horror de sitios web que responden -

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 por buen título. – QMaster

Respuesta

55

Retire el float:left y width:100% de .header-right - el derecho div luego se comporta según lo solicitado.

Ver this jsfiddle.

+1

¡Muchas gracias! Funciona tanto en el iPhone y Android Galaxy S plus! Creo que solo tengo que tener cuidado y hacer la consulta de medios correcta min-device-pixel-ratio. Desearía poder votar, pero soy muy nuevo. –

+0

Si quisiera invertir la configuración y tener el div correcto corregido y el div de ancho variable a la izquierda, sería tan simple como cambiar el flotador: el izquierdo en .header para flotar: ¿no? He estado jugando con esto en http://jsfiddle.net/veW2z/14/ y parece que no puedo hacer que se comporte de la manera que quiero. –

+0

@PaulGear sí, eso debería hacerlo. mantener el orden de los divs el mismo sin embargo. – caitriona

Cuestiones relacionadas