yo era capaz de llegar con un "no tablas HTML necesarias" solución basada en una técnica de Stu Nicholls en CSS Play y personalmente me gusta porque no solo funciona en IE6 + y FF2 +, también es un CSS válido que no requiere ningún ataque. Para mi argumento sobre por qué un diseño basado en CSS es preferible a las tablas HTML, consulte a continuación.
En primer lugar, le recomiendo que cuando diseñe páginas nuevas con CSS lo haga con según el modo de navegador. Para obtener una explicación sobre el modo peculiar y el modo compatible con los estándares, consulte this article desde uno de mis sitios de recursos de CSS favoritos. Todo lo que tiene que hacer es agregar un elemento DOCTYPE específico en la parte superior de sus páginas. El CSS se verá obligado a procesar en modo compatible con estándares, lo que dará como resultado menos errores e idiosincrasias del navegador. En el caso de que no pueda cambiar al modo compatible con los estándares, existe una solución de mínimo ancho para los navegadores en el modo peculiar, también disponible en CSS Play.
En segundo lugar, debe agregar un contenedor adicional alrededor de su marcado existente. Este contenedor se usa para establecer el ancho mínimo para buscadores que entienden min-width (no IE). A continuación, puede utilizar el truco * html para dirigirse específicamente a IE 6 y aplicar la técnica de Stu Nicholl a los contenedores internos.La técnica se detalla aquí y el ejemplo específico utilizado es "# 2 Para los estándares de modo compatible con IE":
http://www.cssplay.co.uk/boxes/minwidth.html
El resultado final es bastante simple. Crea 2 columnas del 50% utilizando la técnica 2-column ALA style mencionada en la pregunta original, que tienen un ancho mínimo general (de 500px en este ejemplo) donde las columnas dejan de redimensionar y la columna derecha no cae debajo de la columna izquierda. ¡Espero que esto ayude!
Editar: Esta misma técnica se puede utilizar para aplicar min-ancho compatible con varios navegadores a cualquier cosa. Por ejemplo, las columnas no necesitan ser del 50% cada una y se puede usar cualquier cantidad de columnas. http://www.glish.com/css/ es un gran recurso para diseños de página basados en CSS y cuando se combina con esta técnica de ancho mínimo, hay muchos diseños agradables que se pueden crear con CSS mínimo y válido.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
/* For browsers that understand min-width */
.width {
width: 100%;
min-width: 500px;
}
/* IE6 Only */
* html .minwidth {
border-left: 500px solid white;
position: relative;
float: left;
}
/* IE6 Only */
* html .wrapper {
margin-left: -500px;
position: relative;
float: left;
}
.left {
float: left;
width: 50%;
}
.right {
float: left;
}
</style>
</head>
<body>
<div class="width">
<div class="minwidth">
<div class="wrapper">
<div class="left">
Left
</div>
<div class="right">
Right
</div>
</div>
</div>
</div>
</body>
</html>
Ahora, mi incentivo para la creación de una cuenta de desbordamiento de pila fue poder responder a la sugerencia a continuación que "Si quieres dos columnas, utilizar una tabla, en lugar de tratar de forzar Div de comportarse como una tabla ". Como soy muy nuevo para comentar o votar a favor, estoy incrementando esta discusión.
¿De verdad?
Alguien hace una pregunta sobre los diseños basados en CSS y usted responde diciéndoles que use tablas HTML?
Permítanme comenzar diciendo que no creo que las tablas HTML sean completamente innecesarias. De hecho, cada vez que necesito mostrar datos tabulares, , es decir, datos relacionales, utilizo una tabla HTML. Las propiedades de visualización de tabla CSS aún no son totalmente compatibles (próximamente en IE8) y usar una tabla HTML de un solo nivel es una solución efectiva. Mire el marcado de cualquiera de las páginas web de Google y verá que estarán de acuerdo.
Como alguien que ha dedicado una gran cantidad de tiempo a crear diseños basados en CSS compatibles con varios navegadores cuando podrían haberlo hecho en 10 minutos con una tabla, acepto que hay una solución más fácil para este problema. Sin embargo, solo porque pueda usar dinamita para renovar su cocina, no significa que deba hacerlo. El siguiente artículo proporciona una explicación detallada de por qué los diseños basados en CSS son más deseables.
http://www.chromaticsites.com/web-design-blog/2008-04-03/13-reasons-why-css-is-superior-to-tables-in-website-design/
qué sucede en todos los navegadores? Tengo un diseño de portal que se ve afectado por IE porque ignora minwidth. –
Traté de cambiarlo a & nbsp; pero al analizador no le gustó eso. Parece un error en StackOverflow. – Neall
Ed.T: Solo en IE, creo. – Mike