Modificando las plantillas (Tutorial 2: Widebars)

Continuando con la idea de modificar la estructura de una plantilla, hasta acá tenemos el esquema tradicional de un blog, encabezado, las entradas a la izquierda, la sidebar a la derecha y un pie de página. La ubicación de entradas y sidebar es fácilmente modificable ¿queremos invertirlas? basta invertir la flotación de ambos rectángulos [VER EJEMPLO]

#main-wrapper {
.......
float: right; /* cambiamos left por right */
}

#sidebar-wrapper {
.......
float: left; /* cambiamos right por left */
}
La sidebar que hemos creado es muy ancha y eso no es casualidad ya que ahora que tenemos todo preparado vamos a agregar otras debajo de ella siguiendo el mismo esquema que explica Gem@ .

Para esto, ya no sólo tendremos que modificar el CSS sino agregar código pero, lo haremos de la manera simple, sin expandir los artilugios para que no nos de un ataque al ver tanta cosa escrita.

Si vamos hasta casi el final de la plantilla, lo que veremos es algo así:
<div id="sidebar-wrapper">
<b:section class="sidebar" id="sidebar" preferred="yes">
.......
</b:section>
</div>
Y allí en el medio aparecerán cosas como:
<b:widget ....... />
Que son cada uno de los elementos que tenemos en la sidebar y que no tocaremos. Lo que haremos es copiar el código sin eso y lo pegaremos dos veces debajo de </b:section> para crear dos nuevas sidebar. Luego, les cambiaremos los nombres y quedará algo así:
<div id="sidebar-area">
<div id="sidebar-wrapper">
<b:section class="sidebar" id="sidebar" preferred="yes">
.......
</b:section>
</div>
<div id="sidebar-derecha">
<b:section class="sidebar" id="sidebarderecha" preferred="yes" />
</div>
<div id="sidebar-izquierda">
<b:section class="sidebar" id="sidebarizquierda" preferred="yes" />
</div>
</div>
Pero, fíjense que todas está dentro de otro DIV. Es que para evitar problemas indeseados vamos a utilizar un viejo truco que siempre nos saca de apuro: cuando haya varios rectángulos flotando que no podemos o no sabemos controlar, coloquemos todos ellos en un contenedor, en otro rectángulo más grande así que "envolvemos" las tres sidebars en un DIV al que en un rapto de originalidad llamé sidebar-area.

Es muy importante tener en cuenta que a las dos angostas, aunque sean iguales, debemos colocarles atributos id con nombres diferentes ya que en una pagina web, los ids son nombres únicos, no puede haber dos iguales. Por el contrario, las clases pueden ser las mismas y por eso no la cambiaremos ya que las características de los elementos será la misma (por supuesto, si queremos que se vean diferentes, les pondremos tambien clases diferentes y deberemos definirlas).

Nuevamente, vamos al CSS y agregamos las definiciones de estilo para estas dos sidebars que serán casi iguales que las de sidebar-wrapper (la superior, la que quedará ancha). Ambas flotarán a la derecha y la suma de sus anchos no deberá superar los 390 pixeles que es el ancho de la superior así que le daremos a cada una un poco menos de la mitad para separarlas entre si con un margen:

190 + 5 + 5 + 190 = 390
#sidebar-area {
float: right; /* flota a la derecha */
width: 390px; /* es tan ancha como la sidebar superior */
}

#sidebar-derecha {
float: right; /* flota a la derecha */
margin-left: 5px; /* margen izquierdo */
overflow: hidden;
width: 190px;
word-wrap: break-word;
}

#sidebar-izquierda {
float: right; /* flota a la derecha */
margin-right: 5px; /* margen derecho */
overflow: hidden;
width: 190px;
word-wrap: break-word;
}
Guardo la plantilla y, para que se vea algo de lo modificado puedo hacer dos cosas, o le agrego elementos (es lo que se verá en el ejemplo) o bien, le agrego a lo anterior un par de definiciones:
background-color: red;
height: 300px;
Con height le damos una altura y con background-color un color de fondo; esas dos propiedades luego se pueden eliminar [VER EJEMPLO]

¿Y si nuevamente, en lugar de querer ese esquema, se nos ocurre poner todo del otro lado, invertimos los valores de la flotación de main-wrapper y de sidebar-area. Lo que está como left lo ponemos como right y viceversa.


¿Será posible ahora agregar una nueva sidebar ancha debajo de estas? Si a alguien le parece que esto es una telenovela por capítulos, tiene razón ...

REFERENCIAS:
  • Modificando las plantillas (Tutorial 1: Anchos)
  • 33 comentarios:

    Gem@

    Claro que puede agregarse ;)
    Me gusta esta telenovela jajaja

    Graciela de Palomas

    J estás viendo alguna??? jajaja, por lo poco que he aprendido y dejas así picando la pregunta ES POSIBLE: CORRECTO!!! jajaja, me has hecho reír, saludos!!!

    Gore

    jaja


    no se pierdan el proximo capitulo.


    me esta quedando muy claro =D

    gracias por el tuto

    JMiur

    Será la semana próxima. A la misma hora y por el mismo canal :D

    S. C. P.

    Hola, amigo.
    Estoy siguiendo paso a paso el tutorial, y creo que es una de las cosas más productivas que he visto (y seguido).
    Pero no te escribo para alabarte, que ya tienes bastantes alabanzas, ja ja. Lo hago, porque cuando fui a hacer el "flípiti flópiti y cámbiense las columnas", zácate: no encontré el código tal como lo planteaste. Pero no me amilané, puse lo que dijiste y me quedó una a continuación de la otra... en fin.
    Que mi plantilla no dice "float: right" o left, sino $endside$ y $startside$, más bien al revés. Primero start y luego end. El outer-wrapper también dice startside.
    Doctor, ¿estoy muy grave?

    salú

    silvia

    PD: Tenía otra plantilla y la cambié por la mínima para seguir el tutorial, capaz que algo quedó de antes... Te dejo el link, por las dudas http://laboratoriodepruebasdeesecepe.blogspot.com/

    k_nelita

    Ya que estás hablando de sidebares, he leído por allí que una sidebar a la derecha (como la tenés vos) carga mas rápido que si estuviera a la izquierda, que opinás al respecto??

    Y otra cosita ya que estamos, yo también he visto que lo primero que cargan los blogs es la sidebar, (sobre todo si están a la derecha) me pasa con todos, menos uno: Te Propongo..., que tarda una eternidad en cargar los post, que crees que pueda ser y si sabés como solucionar eso??

    Han traducido el suscribirse viste?

    k_nelita

    Hablando del suscribirse no me había suscripto ;)

    Eulalia

    Respuesta para S.C.P.
    En las plantillas modernas de blogger, el right y el left tienen una variable que las redefine, así en lugar de right has de poner $endSide y en lugar de left $startSide.
    Al ser una definición de variable has de poner el simbolo $ para que funcione y lo interprete.
    Saludos.

    Para JMiur:
    Sigo atentamente estos capítulos, pues, aunque he modificado casi todos los modelos de plantillas que hay en blogger, creando modelos que se pueden descargar y usar y que quien aún no conozca puede encontrar en este blog, se que contigo aprenderé mucho más.
    Un abrazo.

    JMiur

    Silvia:
    Justo estaba escribiendo sobre ese detalle. No, no es grave. Te doy la explicación resumida:
    $startSide equivale a left
    $endSide equivale a right
    Sugiero cambiarlas por left y right. No modificará nada pero será más sencillo de entender cualquier cambio.

    k_nelita:
    No, eso no e cierto. La posición en la página es indiferente. El código fuente se ejecuta de manera secuencial, de arriba hacia abajo, línea por línea aunque los navegadores pueden ir haciendo varias cosas al mismo tiempo asi que ciertas cosas aparecen antes que otras.

    Que la sidebar se muestre al a izqueirda o a la derecha no importa tanto como en que parte de la plantilla se ejecuta. Puede estar antes de los posts pero flotando al otro lado y se ejecuta primero, por ejemplo. Personalmente, creo que los posts deben mostrarse primero, sin importar donde esté la sidebar.

    Complicado de explicar :D

    k_nelita

    Perfecto, entonces era un mito eso del lugar de la sidebar, me quedó clarito.
    Pero ahora bien, la otra parte de la pregunta era porque en Te Propongo tardan tanto en cargar los post??
    Cuando generalmente lo que mas tarda es la sidebar, en todos los blogs que tengo,(y que visito) salvo en ese.

    Hay alguna manera de corregirlo? O hay algo que está mal en mi plantilla o blog??

    myself

    "Ya que estás hablando de sidebares, he leído por allí que una sidebar a la derecha (como la tenés vos) carga mas rápido que si estuviera a la izquierda, que opinás al respecto??"

    Lo importante de la sidebar, como comenta el joven JMiur, es que no debe ralentizar la carga. ¿Cómo la ralentiza? Pues, cuando la saturas con imágenes, widgets y scripts.

    El siguiente punto importante, es la diagramación. Se supone que a la derecha, es más fácil para los usuarios hacer click y verla (como en los periódicos). Sin embargo, en la web, es común ver que los menues estén a la izquierda. La usabilidad es distinta.

    Y más allá de ambas observaciones, la sidebar, a mi entender, no es más que un complemento del sitio, que a lo sumo debe dar accesos directos y por tanto, no debe tener nunca más información que la zona de posts (ni en términos de más colores, ni en términos de más relevancia).

    JMiur

    k_nelita:
    Es por la distribución del código en la plantilla. Si mirás sin expndir nada vas a aver, primero el header, luego la sidebar y luego los posts. en otro verás el header, luego los posts y por último la sidebar. El bnavegador hace eso, lee en orden y lo va mostrando. No importa si está a la derecha o a la izquierda sino si está antes o después.

    Myself:
    Es cierto. La web tradicional siempre tiene los menues a la izquierda porque leemos de izquierda a derecha y "los vemos" antes. Los blogs, en cambio, colocan la sidebar (tradicionalemtne) a la derecha justamente por lo contrario, porque es un elemento accesorio y menos relevante.

    k_nelita

    JMiur, no me queda nada claro mirando la plantilla, me da la impresión de que estuvieran mezclados partes de sidebar y main, no se como podría arreglar eso.
    En el css está en el orden que dices, pero expandiendo, es como que está todo mezclado...
    Me voy a fijar como está en el otro blog pero me parece haberlo visto igual y sin embargo carga antes los posts...

    k_nelita

    Ahhhh, ahora releí lo que escribiste y volví a revisar la plantilla, claro, era sin expandir, había entendido al revés...
    Mirá sin expandir tengo las cosas en este orden:
    outer-wrapper
    header-wrapper
    sidebar-wrapper
    main-wrapper
    footer-wrapper
    El main y el footer están al final, como arreglo eso?
    Tiene arreglo? Yo no hice nada, venía así con la plantilla, es una modificada...

    JMiur

    En principio, sólo cambiando de lugar las cosas, en lugar de:
    sidebar-wrapper
    main-wrapper

    que estén:
    main-wrapper
    sidebar-wrapper

    Aparentemente, no veo que la flotación influya pero es fácil de comprobar usando la Vista Previa antes de guardar.

    k_nelita

    Ya lo hice JMiur!! En el blog de pruebas lo cambié de lugar subí el main antes de la sidebar, sin expandir, lo miré en vista previa y funcionó se cargan primero los posts!!

    Voy a hacerlo en el blog original ahora, al fin!!

    Me estoy avivando un poco viste? Mientras vos me contestabas yo estaba probando ja ja :D

    k_nelita

    Listo!! No puedo creer, tanto tiempo sufriendo con lo que tardaba en cargar el main, y ahora carga al toque.
    Si no fuera por vos que me abrís los ojos, no se que sería de mi :D

    Sabés que? estaba mirando en esa plantilla, los emoticones los tengo abajo y no me causan conflicto con nada, te acordás que los tuve que subir en el otro blog?
    Aca no molestan... ;)

    JMiur

    Me alegro que todo se solucionara.

    l ode los emoticones puede ser cualquier cosa, muchas veces, la ubicación influye cuando hay varios scripts dando vuelta.

    En lo personal, si algo funciona, creo que lo mejor es no tocarlo :D

    Boloo

    Hola:
    Estoy siguiendo con mucho interés este Curso. Podrías crear una categoría o un índice y así te pongo un link. Gracias!!

    S. C. P.

    Gracias! Gracias a los dos, a ti, Jmiur ya Eulalia!!!

    abrazos


    silvia

    JMiur

    Voy a ver si puedo hacerlo, Boloo; no es mala idea.

    boloo

    Es que es un Cursazo que valdrá la pena seguir

    Azuel Firguilera

    gran telenovela con final feliz...

    sigue así

    claudizio

    oye mil gracias... yo abri mi blog el año 2005 pero nunca lo pesque... ahora me estoy reenamorando de esto... y gracias a tu blog e logrado entender mas a mi pagina.....
    la cosa es que igual cuesta un poco.... pero ya me esta quedando como quiero...
    gracias.. por esta pagina

    JMiur

    Saludos claudizio. Es verdad, cuesta pero no es tan complciado como parece; me alegro que te haya sido útil.

    Gem@

    Me ha gustado esa frase de Claudizio se está reenamorando ...
    Yo también suelo decir que todo esto entra poquito a poco y termina enamorando y es que no hay mejor definición.

    JMiur

    Jajajajaa. Es una buena definición sin duda. La constante del amor/odio :D

    Insomnya

    Jmiur además de claro como el agua me encantan los toque s de humos que le pones sino esto se vuelve más aburrido que chuparse un clavo. vos logras que lo tedioso se vuelva agradable.
    saludos

    JMiur

    Gracias por el comentario, Insomnya :D

     ~    ĸiĸi cullen

    Hola :) aai tengo una duda, vi que ya alguien la habia puesto por ahi, pero ya no la encontre...puse los codigos tal y como esta ahi pero me sale esto: Se ha encontrado más de una sección con el ID: sidebar. Los ID de sección deben ser exclusivos.
    hice algo mal?

    JMiur

    Cada seccion debe tener un ID diferente. En el ejemplo hay tres i cada uno tiene un nombre distinto. Si en tu plantilla ya existía alguno, simplemente, cámbiale el nombre:

    <b:section class="sidebar" id="NOMBRE" preferred="yes">

    Jorge Ortega

    JMiur, cambie de posición el sidebar en mi blog, me gusta mas como esta, sin embargo, en los laterales se desborda el color y en la parte de abajo hay una linea que me parece es la división inicial, como puedo solucionar esto?
    Te edejo la direccion de mi blog para que veas el error: http://lblogdelucy.blogspot.com/

    JMiur

    Eso es porque la imagen es muy grande, al estar del otro lado la sidebar, no se nota.

    Podrías agregarle una propiedad de color de fondo a las entradas para que tapen lo que sobra de la imagen. Busca esta parte y agrega eso en negrita:

    #main-wrapper {
    ................
    background-color:#F9F2EA;}

    ¿Quiere dejar un comentario?

    Hay varios métodos posibles.

    Uno de ellos es el formulario de comentarios que tan generosamente nos ha regalado Blogger y que funciona sólo de tanto en tanto. Su uso es aconsejable sólo en caso de ser una de esas personas a las que les gustan los retos y los desafíos.
    ¿No quiere arriesgarse? Haga click para ocultarlo y utilice las otras opciones.

    Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

    Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

    Los comentarios están siendo moderados y serán publicados a la brevedad.