2011-09-15 14 views
7

He aquí un ejemplo de trabajo (en los navegadores WebKit, por lo menos) de desbordamiento y el texto de desbordamiento de trabajo para truncar texto largo Al reducir el tamaño del navegador:desbordamiento y texto desbordamiento dentro fieldsets

<div>short</div> 
<div style="overflow: hidden; text-overflow:ellipsis;">loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong</div> 
<div>short</div> 
<div>short</div> 
<div>short</div> 

Pero, si Envuelvo esos divs en un fieldset, el truncado ya no ocurre. ¿Alguna idea sobre el estilo adicional que necesito agregar?

ejemplo roto:

<fieldset> 
    <div>short</div> 
    <div style="overflow: hidden; text-overflow: ellipsis;">loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong</div> 
    <div>short</div> 
    <div>short</div> 
    <div>short</div> 
</fieldset> 

Respuesta

5

Esto se debe a weird behavior with fieldsets, y the fix es cambiar ciertas propiedades de CSS que los navegadores establecen en valores extraños. Por ejemplo, este ejemplo también hace que el legend se corte muy bien. Funciona en Chrome para mí, pero es posible que deba leer the fix para ver cómo funciona en otros navegadores.

fieldset 
 
{ 
 
    min-width: 0; 
 
    text-overflow: ellipsis; 
 
    overflow: hidden; 
 
} 
 
legend 
 
{ 
 
    min-width: 0; 
 
    max-width: 100%; 
 
    white-space: nowrap; 
 
    text-overflow: ellipsis; 
 
    overflow: hidden; 
 
}
<fieldset><legend>This is due to weird behavior with fieldsets, and the fix is to change certain CSS properties that browsers set to weird values.</legend><span>This is a loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line of text that would normally overflow or cause the fieldset to widen and overflow itself.</span></fieldset>

+1

Gracias por esto: estableciendo 'min-width: 0' y' display: table-cell' en 'fieldset' solucionado esto en Chrome y Firefox, respectivamente. Ver enlace a "la solución" en la respuesta. –

0

Se trabajará si se agrega un ancho fijo a fieldset, por ejemplo <fieldset style="width: 500px">. ¿Sería eso suficiente? Los anchos de porcentaje no parecen funcionar.

+3

Esa es una solución alternativa que encontré, pero no debería teóricamente ser una manera de hacerlo sin establecer el ancho, ya que necesito para manejar también cambiar el tamaño de los acontecimientos. – skalb