La biblioteca de interfaz de usuario de Yahoo es un conjunto bastante extenso de herramientas de JavaScript para desarrolladores. A menudo, se dejan pasar desapercibidos otros componentes útiles de la biblioteca que acelerarán la codificación: algunas bibliotecas CSS. Hoy, me gustaría mostrarle la biblioteca de CSS de YUI Grids.
¿Por qué debería considerar el uso de la biblioteca CSS de YUI Grids (en lo sucesivo, "grillas YUI")? ¿Qué lo hace destacar? No he mirado extensivamente otras bibliotecas de grillas, pero estas cosas me parecen convincentes:
Las cuadrículas YUI utilizan ids y clases fáciles de recordar y un marcado limpio; Una vez que lo aprendas, puedes volver a tu código en un mes y saber qué partes son de YUI y qué hace cada pieza..
Esto reduce su carga dos veces: no es necesario alojar el archivo en su servidor, así como una carga de páginas más rápida si el cliente tiene el archivo en caché.
Yahoo ha incorporado anchos de barra lateral que se corresponden con las pautas publicitarias de Interactive Advertising Bureau..
Con múltiples plantillas y la capacidad de anidar regiones de página, Yahoo afirma ofrecer más de 1000 combinaciones de diseños ... todo en menos de 5kb.
Por supuesto, las rejillas YUI no son perfectas. Es un poco limitante cuando se trata de los anchos de barra lateral precocidos; Sin embargo, si se ajustan a sus necesidades, ahorrará mucho tiempo, codificación y dolores de cabeza al diseñar su sitio..
Como comenzamos, aquí hay algunos recursos que serán de ayuda..
Antes de entrar en el cuadrilátero, echemos un vistazo a los bloques de construcción de las cuadrículas YUI. Hay cinco estructuras diferentes con las que trabajará para desarrollar su diseño; cada una de estas estructuras está definida por un id o una clase (generalmente una clase). Son los siguientes:
Obviamente, su archivo HTML completo es el documento, pero en nuestro caso, también es el div inmediatamente dentro del cuerpo, el div que lo contiene todo. Aquí es donde se define el ancho de su sitio. Las cuadrículas YUI te ofrecen 4 opciones de ancho: 750px, 950px, 100% o 974px. Estos anchos no son en realidad píxeles codificados; son ems, por lo que la página se ajustará de forma fluida cuando el usuario ajuste el tamaño de la fuente. Si esto no lo corta, Yahoo ha hecho que la definición de un ancho personalizado sea una brisa. Aquí está el código para crear un documento de 800px de ancho:
# custom-doc margin: auto; / * estos dos valores son necesarios, como * / text-align: left; / * ayudan a las cuadrículas YUI a centrar la página * / ancho: 61.54em; / * 800px / 13 = valor-em para la mayoría de los navegadores * / * ancho: 60.00em; / * 800px / 13.333 = valor-em para IE * / min-width: 800px; / * opcional, pero recomendado * /
Para establecer el ancho, simplemente use id de doc, doc2, doc3 o doc4, respectivo a los valores dados anteriormente.
Hay siete plantillas para elegir. Los seis primeros definen un diseño de dos columnas; Cada uno tiene un ancho u orientación diferente para la barra lateral, y la columna de contenido principal ocupa el resto del ancho del documento. Las plantillas son 1) 160 píxeles a la izquierda, 2) 180 píxeles a la izquierda, 3) 300 píxeles a la izquierda, 4) 180 píxeles a la derecha, 5) 240 píxeles a la derecha y 6) 300 píxeles a la derecha. Para obtener la plantilla que desee, simplemente agregue una clase de yui-t # al mismo div en el que definió su documento (reemplace el # con los números anteriores). Como mencioné anteriormente, estas barras laterales son anchos de anuncios web estándar, por lo que cualquier publicidad debe caber cómodamente dentro de ellos..
La séptima plantilla-yui-t7-no está tan bien documentada (extrañamente, no está en la hoja de trucos que vinculé anteriormente, pero está en esta versión anterior). Resta la barra lateral, simplemente le da una columna de ancho completo (que puede dividirse en columnas más adelante).
Los bloques son la manifestación real de las columnas que definió en la plantilla. Son simplemente dos divs dentro de la div doc, ambos clasificados con yui-b. Afortunadamente, no tienen que ser hijos inmediatos de la división principal; Yahoo da este ejemplo:
<-- Header Content --><-- Main Content --><-- Sidebar Content --><-- Footer Content -->
Puede ver en el ejemplo que no necesita colocar los bloques directamente dentro del div root. Esto le permite tener un encabezado y pie de página de ancho completo, lo que generalmente es una buena idea. Notará que el bloque de contenido principal está dentro de un div con un id de yui-main; YUI grids hace esto para darle la posibilidad de tener primero su barra lateral o su columna principal en su código, lo que puede ser una ventaja cuando está considerando SEO o accesibilidad.
He agrupado grillas y unidades porque son muy similares; ambos son divs. Una cuadrícula (definida con la clase yui-g) básicamente le dice a 2 niños (generalmente unidades) que dividan su ancho de manera uniforme. Una unidad (clase yui-u) siempre debe ser el elemento secundario de una cuadrícula y el elemento principal de su contenido.
Entonces, ¿cuál es la diferencia entre un bloque y una cuadrícula??
Además, siempre que tenga varias cuadrículas o unidades dentro de una cuadrícula, es necesario dar a la primera una clase de primera. Esto se debe a que no todos los navegadores ofrecen la pseudo-clase: primer hijo.
Pero ¿y si quieres dividir una cuadrícula de manera desigual? La vida no siempre es justa, ¿verdad? Afortunadamente, YUI ofrece una serie de opciones alternativas a la clase yui-g. Aquí hay una lista de los otros:
Eso es todo de ellos; solo golpea 2 o 3 unidades en cada una de las cuadrículas anteriores, y tendrás columnas desiguales.
Bueno, ahora que conoces las cuerdas, veamos un ejemplo básico. Digamos que queremos el diseño estándar del sitio, ya sabes, la columna de contenido principal con una barra lateral a la derecha, con un pequeño giro: dividiremos la columna principal en dos más pequeñas y dividiremos una de esas más en dos.
Como mencioné, Yahoo ofrece alojamiento para este marco, y generalmente es una buena idea aprovechar eso. Además, Yahoo recomienda el Doctype estricto de HTML 4.01, así que eso es lo que he puesto. Esto es lo que empezamos con:
Un ejemplo simple de CSS de las rejillas YUI