2012-02-27 18 views
5

Estoy buscando una manera elegante de colocar dos divs uno junto al otro sin envoltura de línea. El primer div es un icono, el segundo es un texto de tamaño desconocido.Dos divs uno además del otro sin envoltura

No deben romperse en dos líneas, pero ocultarse si no hay espacio suficiente. Estoy intentando con esto example, pero no funciona.

Hay un question similar, pero no es el mismo escenario ya que se desconoce su tamaño.

ayuda se agradece

Respuesta

8

escribe así:

.container { 
    white-space: nowrap; 
} 
.d1, 
.d2{ 
    display: inline-block; 
    *display:inline;/*for IE 7 */ 
    *zoom:1;/*for IE 7 */ 
    vertical-align:top; 
} 
.d1 {    
    background-color:#ff0; 
} 

.d2 { 
    background-color:red; 
} 

Marque esta http://jsfiddle.net/xcSXA/5/

2

creo, el siguiente CSS es, lo que necesita.

.container { 
    display:inline-block; 
    overflow:hidden; 
    white-space: nowrap; 
} 

.d1 { 
    display: inline-block; 
    background-color:#ff0; 
} 

.d2 { 
    white-space: nowrap; 
    display: inline-block; 
    background-color:red; 
} 
3

En lugar de flotar su divs, los muestra como inline-block para que no se envuelven. Además, establezca el estilo de "espacio en blanco" del contenedor en "nowrap" para evitar también el ajuste de línea.

HTML

<div class="container"> 
    <div class="d1">icon</div> 
    <div class="d2">This can be very very very very large.</div> 
</div> 

CSS

.container { 
    white-space:nowrap; 
    overflow:hidden; 
    width: 100px; 
} 

.d1 { 
    display: inline-block; 
    background-color:#ff0; 
} 

.d2 { 
    display: inline-block; 
    background-color:red; 
} 

Ejemplo de trabajo:http://jsfiddle.net/C4Wfa/

1
1

.D1 y .D2 usted tiene que dar un cierto ancho, pero debes asegurarte de que el ancho de ambos .d1 y .d2 juntos (+ márgenes y rellenos) no es más grande que la clase contenedor, de lo contrario no podrán se ponen uno al lado del otro.

Cuestiones relacionadas