Tengo los siguientes problemas al usar CSS para dar estilo a algunos elementos dl
y dt
. Prefiero siempre usar CSS muy básico que sea compatible con IE6/IE7 y navegadores modernos. Estoy tratando de obtener un efecto, que para mí debería ser bastante simple de lograr.Estilo dl y dt con CSS para imitar la presentación en forma de tabla
Aquí es una versión simplificada del código fuente inicial estoy trabajando con, al tratar de trabajar en un solo tema:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style type="text/css">
.terms dl {
float: left;
padding-left: 0px;
}
.terms dt, .terms dd {
text-align: center;
margin: 0px;
float: left;
}
.terms dt {
border: solid blue 1px;
clear: left;
}
.terms dd {
border: solid red 1px;
margin-right: 40px;
margin-left: 40px;
}
</style>
</head>
<body>
<div class="terms">
<h1>Terms</h1>
<dl>
<dt>Term 1:</dt>
<dd>Very Long definition for this term here</dd>
<dt>Term 2:</dt>
<dd>Definition for term</dd>
<dt>Term 3 with longer term title:</dt>
<dd>Definition for term</dd>
<dt>Term 4:</dt>
<dd>Definition for term</dd>
<dt>Term 5:</dt>
<dd>Definition for term</dd>
<dt>Term 6:</dt>
<dd>Definition for term</dd>
</dl>
<dl>
<dt>Term 7:</dt>
<dd>Defintion for term</dd>
<dt>Term 8:</dt>
<dd>Definition for term</dd>
<dt>Term 9:</dt>
<dd>Definition for term</dd>
<dt>Term 10:</dt>
<dd>Very Long definition for this term here</dd>
<dt>Term 11:</dt>
<dd>Definition for term</dd>
<dt>Term 12:</dt>
<dd>Definition for term</dd>
</dl>
</div>
</body>
</html>
Aquí es el resultado visual. Me LABRÓ bordes azules y rojos para que quede más fácilmente visualizado:
Mi objetivo es tener todas las "cajas" azul y rojo para tener el mismo ancho no importa lo que el conjunto de texto de tamaño es . P.ej. si un usuario tiene una hoja de estilo predeterminada para que su texto sea muy grande, debería expandirse en consecuencia. Este problema no solo surge cuando las personas usan su propia hoja de estilo, sino que también surge en IE6 cuando las personas seleccionan "tamaño de texto" que no sea "medio": hace que el texto sea más grande, y quiero poder acomodar eso.
No creo que tenga que establecer un ancho duro en ninguna de las "casillas", y no quiero ningún ajuste de texto, o que las carrozas caigan, fuera de este estilo de dos columnas .
puedo editar la respuesta con más imágenes y ejemplos, si yo no era lo suficientemente claro.
Además, esta es una pregunta relacionada, pero por separado. Si la ventana del navegador se vuelve a clasificar según el tamaño, con una tabla usted esperaría que una porción de la tabla sea no más visible mientras que disminuye la anchura. Con esta configuración, obtienes un resultado muy extraño y feo como se ve a continuación. ¿Cómo puede esto ser evitado?
ACTUALIZACIÓN
parece que no es una solución que no implique dar de ancho fijo a los elementos (y/o un elemento de encapsulación). Además, parece que el redimensionamiento de texto IE6 solo puede resolverse ajustando el texto a un tamaño de píxel y simplemente no dejándoles cambiar el tamaño.
¿Por qué no usas una mesa? – zgood
Finalidades semánticas, el marcado representa una lista de términos y definiciones; no datos tabulares. Quiero separar la semántica del marcado del estilo. Que yo sepa, ese es el propósito del elemento 'dl' y de CSS. – user17753
Las tablas no son inherentemente malvadas, deben evitarse a toda costa. Son buenos para mostrar, datos tabulares sorpresa, y parece que se aplicaría en este caso. – chris