Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Ya vimos como hacer una plantilla para Joomla desde cero hasta darle una personalización casi completa, por lo menos podemos llegar a eso si nos adentramos en profundidad en todos los estilos de Joomla (pufff… son demasiados no? :-) Ahora vamos a ver cómo hacer que esa plantilla se adapte al monitor que la muestra, es decir que se autoajuste a la resolución del monitor del navegante. En primer lugar tenemos que decidir si queremos que toda nuestra plantilla sea autoajuste o solamente alguna/s parte/s. En el caso que vamos a ver como ejemplo, usaremos como sección fija solamente la lateral derecha, es decir, donde está el Menú Principal, el buscador y el formulario de login. La cabecera o “header”, la barra de navegación superior y el pie o “footer” tendrán fijadas sus alturas pero no sus anchos. Y el cuerpo será flexible o ajustable 100%. El ejemplo que veremos fue testeado y funciona correctamente sin necesidad de hacks en los siguiente navegadores: - Internet Explorer v7 - Opera v9.5 - Safari v4 - Firefox v3.08 Hagamos primero una copia de la plantilla ya hecha y renombremos la carpeta que está dentro de “templates” como “autoplantilla”. Dentro del archivo “templateDetails.xml” cambiemos la etiqueta “name” y pongamos la siguiente: “<name>Auto Plantilla</name>” porque de lo contrario no podremos asignarla desde el back-en de Joomla, no se permiten nombre repetidos de plantillas, cuestión más que obvia. Ahora bien, el cambio que vamos a realizar no solamente involucra el archivo CSS sino que también debemos modificar el index.php, empecemos por el segundo: Abrimos el archivo y nos deberá quedar de esta forma: {codecitation style="brush:xhtml;"} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" página 1 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="" > <head> <jdoc:include type="head" /> <link rel="stylesheet" href="/templates//css/template.css" type="text/css" /> </head> <!-- Comienzo del borde --> <div id="borde"> <!-- Comienzo del breadcrumb --> <div id="bread"> <jdoc:include type="module" name="breadcrumbs" /> </div> <!-- Comienzo de la cabecera --> <div id="header"> <!-- Aquí no ponemos texto puesto que usamos una imagen --> </div> <!-- Fin de la cabecera --> <!-- Comiendo de la barra de navegación o menú --> <div id="navegador"> <jdoc:include type="modules" name="user3" style="xhtml" /> </div> <!-- Fin de la barra de navegación --> <!—- Comienzo contenedor del cuerpo --> <div id="contenedor"> <!-- Comienzo del cuerpo --> <div id="cuerpo"> <div class="espacio"> <jdoc:include type="component" /> </div> </div> <!-- Fin del cuerpo --> </div> <!-- Fin del contenedor --> <!-- Comienzo de la barra lateral --> <div id="lateral"> <div class="espacio"> <jdoc:include type="modules" name="right" style="xhtml" /> </div> </div> página 2 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com <!-- Fin de la barra lateral --> <!-- Comiendo del pie de página --> <div id="pie"> <a href="http://www.solojoomla.com">Tutorial para SoloJoomla</a> by <a href="http://www.moatsoft.com.ar">MoatSoft </a> </div> <!-- Fin del pie de página --> </div> <!-- Fin del borde --> </body> </html>{/codecitation} Si observan con cuidado verán que hemos cambiado de lugar el div “contenedor” y ahora solamente está involucrando al div “cuerpo”. ¿Cuál es la razón? La respuesta es muy sencilla pero vayamos paso a paso. En el primer bosquejo que hicimos, en uno de los primeros capítulos cuando no le dabamos atributos a los divs, recordarán que estos se alineaban uno debajo del otro ocupando el ancho de la pantalla porque es como lo interpretan los navegadores. Pues bien, aquí justamente aprovechamos eso. En el código pueden ver que solo hay un “gran contenedor” que pasó a ser el “borde”, que antes usabamos para darle un borde a toda la página. Luego hay otro más abajo que ahora solo abarca el div “cuerpo” y antes abarcaba a los otros. La explicación es esta: con el primer contenedor “borde” ponemos todos los otros divs dentro para que formen un bloque pero, como veremos, en el código CSS “NO LE ASIGNAMOS PROPIEDADES”, es decir solo lo usamos para que los abarque. El segundo div, el “contenedor” que tiene en su interior el otro div “cuerpo” nos servirá para decirle que ocupe el todo el ancho de la pantalla por con un “truco” CSS le quitaremos una parte. Vayamos al archivo “template.css” y aquí solo retocaremos los códigos página 3 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com que personales, los propios de Joomla! los dejamos como están. Para que puedan apreciar los cambios pondré como era el antes y el después de cada identificador o selector y una breve explicación. EL SELECTOR body Código Ajustable {codecitation style="brush:css;"}body { font : 8pt Verdana, Geneva, Arial, Helvetica, sans-serif; padding: 0px; margin: 0px; text-align: left; }{/codecitation} Código Anterior {codecitation style="brush:css;"}body{ background : url(../images/fondo.jpg) repeat; font : 8pt Verdana, Geneva, Arial, Helvetica, sans-serif; color : #666666; margin : 20px 0px 20px 0px; text-align: center; }{/codecitation} Como primera medida hemos eliminado el fondo. ¿Por qué? Porque ahora nuestro template abarca toda la pantalla y ya no se apreciará. Podríamos usar un color si quisiésemos pero para esto deberíamos quitarle al div “contenedor” el fondo, para que quede transparente. También le hemos quitado los margenes y el padding para que llene la pantalla y le hemos puesto que el texto se alinee a la izquierda. La alineación de texto nos va a permitir poner hacia la izquierda el título del web site que está en el back-end de Joomla!. IDENTIFICADOR #header Código Ajustable {codecitation style="brush:css;"} #header{ background: #778AFF url(../images/banner.jpg) right no-repeat; height : 100px; }{/codecitation} Código Anterior {codecitation style="brush:css;"}#header{ página 4 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com background: url(../images/banner.jpg); height : 100px; width: 700px; }{/codecitation} Aquí lo que hacemos es asignarle una posición al banner y como la pantalla será más ancha que el mismo, le decimos que no se repita: “right no-repeat. Lo que eliminamos con respecto al código anterior es el ancho. IDENTIFICADOR #contenedor Código Ajustable {codecitation style="brush:css;"}#contenedor { float: left; width: 100%; background-color : #ffffff; }{/codecitation} Código Anterior {codecitation style="brush:css;"}#contenedor{ text-align: left; width: 700px; background-color : #ffffff; margin: auto; border: 2px groove green; }{/codecitation} Lo que hacemos aquí es asignarle el 100% de la pantalla y que “flote” a la izquierda. Dentro del div contenedor tendremos solamente el cuerpo pero ya veremos cómo trucamos todo. IDENTIFICADOR #pie Código Ajustable {codecitation style="brush:css;"}#pie{ clear: left; width: 100%; border: 1px dotted #CCCCCC; text-align: center; padding : 3px 10px 5px 10px; background: url(../images/fondonav.gif); }{/codecitation} Código Anterior página 5 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com {codecitation style="brush:css;"}#pie{ clear : both; color : #cccccc; text-align : right; margin : 10px 10px 0px 10px; padding-bottom:10px; }{/codecitation} En el caso de pie, lo primero que hacemos es limpiar o liberar hacia la izquierda, esto es pora que no se ponga debajo de #lateral. Luego le indicamos el ancho que será del 100%, le damos un borde, una alineación al texto que contenga y un fondo usando la misma imagen de fondo de la barra de navegación superior para respetar el estilo. El código CSS de “template.css” que corresponde a nuestra plantilla (la parte de Joomla queda como está) deberá ser similar a esta: {codecitation style="brush:css;"}body { font : 8pt Verdana, Geneva, Arial, Helvetica, sans-serif; padding: 0px; margin: 0px; text-align: left; } #contenedor { float: left; width: 100%; background-color : #ffffff; } #header{ background: #778AFF url(../images/banner.jpg) right no-repeat; height : 100px; } #navegador{ background : url(../images/fondonav.gif); padding : 3px 10px 5px 10px; border-top : 2px groove #cccccc; border-bottom : 2px solid #cccccc; página 6 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com } A.enlacenav, A.enlacenav:VISITED, A.enlacenav:ACTIVE, A.enlacenav:FOCUS, A.enlacenav:LINK{ color: #494E6B; text-decoration: none; } A.enlacenav:HOVER{ color: #3F7DE3; background-color: #F0FFF0; } #cuerpo{ margin-right: 200px; } H1{ font-size: 12pt; } #lateral{ float: left; width: 200px; margin-left: -200px; background-color: #EBF2FE; } #pie{ clear: left; width: 100%; border: 1px dotted #CCCCCC; text-align: center; padding : 3px 10px 5px 10px; background: url(../images/fondonav.gif); } .espacio { margin: 10px; página 7 / 8 Capítulo XII - Maquetando con tamaños variables by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com margin-top: 0; }{/codecitation} Para finalizar con el template autoajustable le comento que hay definida una clase más dentro del archivo CSS: “.espacio”, este lo utilizamos para darle un margen dentro de cada div y separar el contenido de los bordes. Con esto, finalizo el manual. Les pido, por favor, que me envíen comentarios sean buenos o malos, sugerencias y correcciones si ven errores. En la portada le puse “v1”, primera versión y con lo que Uds. me informen o pidan por email lo iré ampliando o mejorando. Un agradecimiento muy especial a toda la gente que ayuda desinteresadamente en internet brindando su tiempo y sus conocimientos. Si Uds. esto no se podría haber hecho. Muchas Gracias. página 8 / 8 Powered by TCPDF (www.tcpdf.org)