Hola Manuel.

On 3/31/06, webmaster <[EMAIL PROTECTED]> wrote:
>
> Hola,
>
> Mucho gusto en conocerlos, mi nombre es Manuel.  Hoy encontre su lista,
> cómo referencia en http://www.w3.org y después de consultar algunas cosas
> me e dado cuenta, de que este puede ser un buen lugar para comenzar
> (continuar mis estudiso en el desarrollo de páginas web).


Bienvenido a la lista.

Durante las últimas semanas e estado estudiando lo más básico de CSS y lo
> que se puede hacer con ello en las páginas web, y pues bien, me a convencido
> de cambiar mi diseño básado en tablas por diseños usando CSS, sin embargo me
> estoy topando con bastantes problemas, especialmente con la forma de
> posicionar los DIV,


Uno de los grandes caballos de batalla de casi cualquier maquetador CSS.

aparte de dedicar este primer correo a mi presentación me gustaria
> consultarles por algunas referencias a tutoriales de posicionamiento, e
> encontrado varios sitios webs en ingles, pero en la mayoría solo me
> presentan soluciones sin explicar cual fue el razonamiento que les llevo a
> ello, si pudieran ayudarme con esto se los agradeceria mucho.


Bueno, los razonamientos "básicos" que llevan a lograr cualquier maquetación
"simple" vienen dados por la propia recomendación del w3c sobre las
especificaciones CSS. Para abreviar, en la mayoría de las páginas prescinden
de explicaciones a nivel básico y tienden a centrar los esfuerzos docentes
en la resolución de las partes más complejas del tutorial.
Esto es un comportamiento totalmente normal en todas las áreas del
conocimiento, así que lo primero que hay que afrontar es un conocimiento lo
más exhaustivo posible de la herramienta que manejemos, en este caso HTML y
CSS, y de ningún sitio mejor que de la página del grupo encargado de
estandarizar sus especificaciones, la w3c[1].

Estoy tratando de crear mi primer diseño de tres columnas para una página
> web básado en CSS y pues bueno, realmente estoy declarandolo un fracazo
> parcial de momento.


No pienses que porque el HTML como lenguaje de marcado semántico, o el CSS
como atributos de presentación, sean relativamente sencillos y no muy
extensos en su definición, pasen a ser totalmente prescindibles su lectura y
comprensión. Te puedo asegurar que una buena y pausada lectura de lo que
hacen, para lo que sirven (y para lo que no) y su comportamiento a nivel
individal y, lo más importante, a nivel global (es decir, como afectan y se
dejan afectar por los elementos que lo rodean) te hará muchísimo bien para
comprender por qué tienen esos comportamientos "tan extraños". El CSS es
particularmente extravagante en este sentido e IMPRESCINDIBLE su lectura.

También comprendo que seguramente te urja medianamente una respuesta que te
saque cuanto antes del atolladero (mientras estudias concienzudamente las
especificaciones ;-) ). Bueno, yo te diría que siguieras unas sencillas
reglas para "encajar" <div>es:
· El ancho de la pantalla es, para la mayoría de nuestros propósitos, finito
y conocido, el alto infinito. Esto redunda en que desde el principio puedes
definir anchos en porcentajes, mientras que para los altos necesitarás de
ciertos truquillos, que te desaconsejo desde ya para el nivel de inicio. De
todas maneras siempre puedes definir un alto en medidas que no sean
porcentajes.
· Los elementos del HTML se dividen principalmente en elementos de bloque y
elementos de línea. Los elementos de bloque, __sin ancho definido__ (o
width: auto), tienden a ocupar el 100% del espacio que les queda a los lados
y, además, no les gusta compartir este espacio con nadie (esto último, tenga
o no un ancho definido). Los elementos de línea, en la misma situación,
toman el ancho de su contenido (cuanto más contenido, más ancho) y se llevan
muy bien en la misma horizontal con otros elementos de línea. Como elementos
de bloque tenemos por ejemplo <p>, <ul>, <ol>, <div>... y como elementos de
línea <a>, <img>, <span>... Si quieres que un elemento de bloque comparta su
espacio horizontal con otros elementos de bloque (la típica maquetación en
columnas a la que deseas llegar) tendrás que especificarles un ancho (33%,
33%, 33% por ejemplo) y 'flotarlos' (La propiedad 'float' es complicada de
explicar en poco espacio, pero hay miles de artículos en la red sobre la
misma).
· El modelo de cajas (las pautas que dictan lo que mide relamente un
contenedor dependiendo de las medidas que se le den) define que el ancho de
un contenedor es igual a __margen derecho + ancho del borde derecho +
padding derecho + ANCHO + padding izquierdo + ancho del borde izquierdo +
margen izquierdo__ con lo cual, si defines que el ancho (width) de un
contenedor es del 33% y le añades un borde, un padding o un margin (o la
mezcla de ellos) el ancho real te variará (nótese que no he dicho aumentará,
pues también se pueden especificar márgenes negativos, lo que reduciría el
ancho real). Tienes que tener mucho cuidado con esto (probablemente al
principio te ayude mucho definir el ancho de la última columna un poco menor
que el resto, para que la suma de todos no llegue al 100%). Para el alto se
definen las mismas pautas pero, evidentemente, la repercusión es mínima,
pues casi nunca tendremos la necesidad de ajustar una maquetación en
vertical.

Sabiendo al menos esto ya podrás comenzar alguna maquetación en columnas sin
volverte loco. Con el tiempo (y la lectura de artículos y tutoriales y, por
supuesto la ayuda de ovillo) aprenderás truquillos más sutiles para que todo
te encaje al 100%.


No me queiro extender más ya con esta presentación, les agradezco la
> oportunidad que me dan de unirme a su lista, y pues bueno, talvez mando mis
> experimentos para pedir sugerencia,


Yo tampoco, que creo que ya me he extendido de más. Solo un par de
consejillos más si me permites:
· No intentes hacer cosas demasiado complicadas al principio, te llegarás a
desesperar y con el tiempo verás que lo que tuviste que hacer para llegar a
esa maquetación es digno de frenopático. Muchos de los diseños que más
gustan son al comunmente los más sencillos de realizar.
· Trabaja siempre contra un navegador lo más compatible con los estándares
posible, y de fondo con IE. Esto es, para probar si los estilos que estás
aplicando son los correctos siempre haz la prueba con FF, Opera, Konqueror,
Safari (depende de la plataforma); y una vez que lo veas todo bien en esa
parte pruébalo en IE antes de dar el siguiente paso en la maquetación. Si lo
dejas todo para el final te resultará un esfuerzo de locos.
· Ten en cuenta que IE no adopta completamente las especificaciones, así que
habrá ocasiones en las que no reconozca alguna propiedad y ocasiones en las
que la interprete de un modo algo particular. Aquí se te hará necesario
tener alguna referencia. Te aconsejo tener siempre a mano webs con
"colecciones" de 'bugs' y 'workarounds' del tipo de Positioniseverything[2]
o Quirksmode[3], entre otras.
· Ten siempre en cuenta la accesibilidad, tanto en el diseño del código
semántico como en las medidas que apliques a tus elementos y textos.
Básicamente existen medidas relativas que el usuario podrá cambiar a su
gusto mediante el navegador ('em', 'ex', '%'...) y absolutas
('pt',...) Ten cuidado al usar 'px' ya que aunque en la teoría es una medida
relativa al aplicarla a tamaños de fuente y absoluta cuando definimos anchos
o altos, IE no lo aprecia así y siempre la tendrá como absoluta, sin dar la
posibilidad al usuario de escalarla a su gusto. En resumen, que intentes
evitar usarla para definir tamaños de fuente.

Un saludo,
>
> Manuel
> __________


[1] http://www.w3.org/Style/CSS/ y http://www.w3.org/MarkUp/
[2] http://www.positioniseverything.net/
[3] http://www.quirksmode.org/

Un saludo para ti también y espero verte mucho tiempo en la lista, David
Merino Ogando.

_____________________________________
> Lista de distribución Ovillo
> Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
> Puedes modificar tus datos o desuscribirte en la siguiente dirección:
> http://ovillo.org/mailman/listinfo/ovillo
>
_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo

Responder a