La realidad siempre supera a la ficción ...
Me preguntaron si era posible agregar un subtítulo a las entradas y la respuesta es ... depende. No hay manera de hacerlo de manera automática ya que para eso, Blogger debería tener ese dato interno y no lo tiene. Sin emabrgo, podemos hacerlo de manera manual, creando una clase CSS que agregamos a la plantilla y que luego, usamos en los posts, adicionándola al párrafo con el texto.
Por ejemplo, lo más sencillo sería agregar antes de </b:skin> algo así:
.post-subtitulo {
[propiedades de la fuente a utilizar]
}
Y la primera línea de un post sería:
<div class="post-subtitulo">Este es el subtítulo de la entrada.</div>
o bien:
<p class="post-subtitulo">Este es el subtítulo de la entrada.</p>
No es mucho pero con un poco de
CSS puede experimentarse y conseguir algun efecto más si empleamos las propiedades que nos permiten ubicar un elemento con precisión (
más información). Estas propiedades son:
position, left, top, right y bottom.
Normalmente, los títulos de las entradas tienen una etiqueta de encabezado (
h1,
h2,
h3) y debajo de este hay un
DIV cuya clase se llama
post-body que contiene la entrada en si misma.
El titulo de la entrada
Este es el subtítulo de la entrada ...
Sed ipsum tellus, feugiat vel, porttitor eget, pretium consectetur; nisl! Duis nulla turpis; congue in; lobortis at, facilisis vel, magna. Duis mattis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras dui. Nullam iaculis, nibh non fermentum ultrices, nisi nisl laoreet quam, sit amet malesuada odio elit in augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque eleifend velit non dolor! Aliquam in purus? Nullam ullamcorper urna ac dolor. Pellentesque ultricies. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras bibendum justo et dui. Nam turpis duis.
Lo que nos permite la propiedad position es ubicar un elemento dentro de otro de manera exacta. Para esto, el elemento contenedor (el externo) debe tener establecida la propiedad como relative y el elemento a mover (el interno) debe tenerla estabecida como absolute. Con esto, lo que hacemos es decirle al navegador que ubique el segundo, no donde normalmente iría sino en alguna coordenada cuyo inicio (0,0) es el contenedor.
Por ejemplo, si tenemos dos DIVs, uno dentro del otro con este código:
<div style="position:relative;background-color:white;width:300px;margin:0 auto;height:150px;">
<div style="position:absolute;background-color:red;width:150px;margin:0 auto;height:100px;">
</div>
</div>
El rectángulo rojo se mostraría a partir del ángulo superior izquierdo del blanco que es el que lo contiene pero, como establecimos las posiciones, podemos "mover" el cuadrado rojo a cualquier lado dentro del contenedor usando las propiedades left y top:
<div style="position:relative;background-color:white;width:300px;margin:0 auto;height:150px;">
<div style="position:absolute;background-color:red;width:150px;margin:0 auto;height:100px;left:50px;top:50px">
</div>
</div>
left y top son las coordenadas relativas al origen del contenedor (el blanco) y aceptan valores negativos así que es sencillo "sacar" el contenido del contenedor:
<div style="position:relative;background-color:white;width:300px;margin:0 auto;height:150px;">
<div style="position:absolute;background-color:red;width:150px;margin:0 auto;height:100px;left:-100px;top:-10px">
</div>
</div>
Con este criterio, podríamos hacer que el subtítulo "subiera" y ubicarlo más arriba, junto al título o debajo de este. Para eso, debemos hacer dos cosas, agregar la propiedad position: relative al DIV de los posts y la propiedad position: absolute a los subtítulos de tal manera de poder moverlos con left y top:
.post-body {
position: relative;
}
.post-subtitulo {
position: absolute;
left: valorpx;
top: valorpx;
[propiedades de la fuente a utilizar]
}
El titulo de la entrada
Este es el subtítulo de la entrada ...
Sed ipsum tellus, feugiat vel, porttitor eget, pretium consectetur; nisl! Duis nulla turpis; congue in; lobortis at, facilisis vel, magna. Duis mattis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras dui. Nullam iaculis, nibh non fermentum ultrices, nisi nisl laoreet quam, sit amet malesuada odio elit in augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque eleifend velit non dolor! Aliquam in purus? Nullam ullamcorper urna ac dolor. Pellentesque ultricies. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras bibendum justo et dui. Nam turpis duis.
click para ver el resultado en esta entrada.
Algo similar a eso podría hacerse con los títulos en si mismos, modificando la plantilla, duplicándolos y luego, desplazando uno de ellos unos pocos pixeles para, por ejemplo, crear un efecto de sombras. Un ejemplo:
<b:if cond='data:post.title'>
<h3 class='post-title entry-title'>
<b:if cond='data:post.link'>
<span class='sombraTitulo'><data:post.title/></span>
<a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<span class='sombraTitulo'><data:post.title/></span>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<span class='sombraTitulo'><data:post.title/></span>
<data:post.title/>
</b:if>
</b:if>
</h3>
</b:if>
Para eso, hay que agregarle al título la propiedad position: absolute y agregar las definiciones de la nueva:
.post h3 {
position: absolute;
.......
}
.sombraTitulo {
left: 1px;
position: absolute;
top: 1px;
.......
}
34 comentarios:
Muy interesante como lo de youtube te felicito muchas gracias ^^
Saludos yANyZx
http://geovannishadow.blogspot.com/
Donde se pone lo de position: absolute para hacer la sombra del título?
Y al css o estilo solo ponemos .sombraTitulo { y lo que está debajo? Y como le cambio el color a la sombra, por ejemplo me gusta la del primer modelo pero en naranja, como haría eso?
Conocés el cuento de Juan y el preguntón? :D Yo soy la preguntona ja ja
tu blog es exelente me ayudaste un monton a hacer mi sitio web GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:)
Hola.
Yo tampoco he entendido muy bien como se pone. No me funciona pegandolo en el CSS debajo de .post h3{?.
Parece que hay que realizar otros pasos?.
¿Los subtítulos afectan la optimización de los títulos?
Donde "click para ver el resultado en esta entrada" no puedo acceder :O
k_nelita:
Por ejemplo, en te propongo deberia esta acá:
.post h3 {
position:relative;
.....
}
todo lo demás, colores, fuentes, etc, se ponen en la clase de la sombra. Allí tambien se posiciona, puede ser que, requiera valores mucho mas altos si hay márgenes en el título.
Birdelo:
Para que pueda posicionarse el título debe tener la propiedad position:relative y l oque quieras mover, la propiedad position:absolute. Debería verlo online para decirte donde está el error.
Gem@:
Sí, me olvidé de corregir el enlace. en realidad, es un enlace a este mismo post, Si haces click, se verá el efecto aplicado a esta misma entrada.
Entonces... nada. Seguiré intentado que para eso sn los días libres de cole!.
Epale JMiur! Una pregunta, como hago para inhabilitar el click del ratón MIENTRAS se carga la página web? Gracias! Salu2!
Juan:
Lo desconozco, me gustaría saberlo .)
Hola JMIUR, espero que estés bien. mi consulta como manipulo con intenciones de acercar un poco mas la parte que le corresponde a los post o las entradas con la cabecera, y lo otro es que quiero reducir el ancho de la entrada y obvio ampliar el de la sidebar, después de ampliar la información es decir en las paginas que siguen después de la principal. este ejemplo quisiera me lo explicaras,(si no es mucho pedir) en mi blog de prueba 2
Jeje bueno muchas gracias brother! =D
Solidaridad:
Me da la impresión que para acercar las entradas, tal como está el código, lo mejor es que le agregaues un margen con valores negativos:
#main-wrapper {
margin-top: -10px;
....
}
Lo de los anchos no l ocomprendo muy bien. en ese blog de pruebas veo los dos sectores creados pero no se como quieres cambiarlos.
JMiur: tengo un problema. Me encanta este "truco" del subtítulo, pero no lo puedo plasmar en mi blog. Estaría más que agradecido si me ayudaras. Y esto es lo que hice:
ESTO ES LO QUE HE PUESTO ANTES DE (/b:skin) :
.post-body {
position: relative;
}
.post-subtitulo {
position: absolute;
left: 50px;
top: 50px;
color: rgb(102, 0, 0);
font-weight: bold;
font-family: lucida grande;
font-size:130%;
background-color: red;
}
Y ESTA ES LA LÍNEA QUE PUSE EN EL POST :
(div class="subtitulo") Este es el subtitulo (/div)
Y NO ME SALE!! :(( QUE HICE MAL?? QUÉ HAGO?
PD: cambie <> por () porque stoy comentando al "viejo estilo"
Oops, había un error en el post. el DIV debe ser de este modo:
<div class=">post-subtitulo">Este es el subtítulo de la entrada.</div>
Así funcionaría. el resto lo veo correcto. La altura, es probable que debas corregirla con el valor de top que puede ser negativo.
Michas gracias!!
Que buen Blog
De mucha ayuda todo
Hola JMiur :)
utilizndo este truco he colocado el nombre del autor, osea el mio :$ a un lado del titulo de la entrada.
Sin embargo como quiero utilizar siempre el mismo subtitulo, he querido incluirlo dentro de la plantilla... como antes estaban los div de la fecha, autor, comentarios, etc.
Sin embargo, al hacerlo, y colocarlo delante del codigo que afecta a lo que iría debajo del titulo, solo consigo que aparezca en un post, en el último, no en todos, imagino que se debe a la propiedad de position: absolute...
Existe otra manera de colocar justo ahí el texto de "escrito por Uve"?
saludosss :)
Uve: me parece que ese caso deberías modificar un par de cosas. Ya que pasará a ser un texto fijo, debería ser ubicado junto con el título del post.
Priemro, agrega esta proipedad en:
.post {
........
position:relative;
}
con eso no hay cambios de ninguna clase pero, permitirá ubicar elementos de manera precisa.
Lo lógico sería colocar el DIV class="post-autora" debajo del título del post. Para que te ubiques, ahora debe haber algo así:
<div class="post-header-line-1" />
En lugar de eso, allí colocas el DIV autora y a ese le agregas estas propeidades
.post-autora {
.........
position:absolute;
right:25px;
top:15px;
}
de ese modo, la posición absoluta no es con respecto a la página entera (que es lo que pasa ahora, sino a cada post. Y con right left top y bottom ubicas ese texto donde quieras.
No se si la explicación es demasiado confusa :$
Genial JMiur :)
se entiende clarito, colocaba ahí justo el div que se coloca por cada entrada, pero claro, al no tener puesto el valor en el post... salía todo feo :(
gracias!!!
Para que el título no ocupe todo el ancho, fíjate en esta entrada:
http://vagabundia.blogspot.com/2010/04/facilitar-la-seleccion-de-los-titulos.html
Para lo de los posts no es necesario ver la plantilla sino verlo online. En términos generales, ahi hay definido un efecto hover por defecto apra todos los enlaces:
a:hover {
color:#ffffff;
background-color: #000000;
}
Si en los posts quieres cambiarlo deberías agregar la definicion, algo así:
.post-body a:hover {
color:#000 !important;
background-color: transparent !important;
}
Como dije, sin ver el sitio, solo se trata de especular. Si quieres colocar cualquer otro efecto, simplemente lo colocas en esa definición:
.post-body a:hover {
...............
}
Si quieres que el título tenga un efecto, busca algo similar a:
.post h3 a:hover {
...............
}
y allí agregas las propiedades que desees.
Buenas JMiur,
Gracias por el tema de los subtíutlos, aunque lo leo con un poco de retraso... Espero que me puedas resolver una duda: cuando incluyo los subtítulos dentro del título, aparecen también en el archivo de noticias como "título. subtítulo" y en ocasiones es tan largo que lo afea o se corta. Existe alguna manera para que el subtítulo no aparezca con el título cuando las entradas se archivan??
Gracias, un saludo y enhorabuena por el blog!!
Utilizando este método, el subtítulo es parte del título por lo tanto se verá así como lo ves. PAra que eso no ocurra, debería colocarse dentro del post en si mismo.
Me ha funcionado perfectamente, pero encontré un defecto, al entrar en la entrada el subtitulo queda encima del titulo, eso no pasa cuando están todas seguidas, ojala me haya hecho entender, lo estoy haciendo en este blog se pruebas
http://dinamodeprueba.blogspot.com
Me retracto de lo dicho anteriormente, ya logre solucionarlo, aunque la diferencia de espacios no logro arreglarla, cuando estan todas las entradas juntas y cuando solo se ve una
No sé a cuá distancia te refieres.
Me refiero a la distancia del titulo al contenido de la entrada, cuando uno entra al blog ve una cosa, pero cuando un entra a la entrada se ve otra, y no se por que @_@
La diferencia de altura es debido que los posts del home, comienzan con una etiqueta <p≶ y los posts individuales no; probablemente, eso es provocado por el script que funciona en las páginas que no son individuales.
La distancia extra en el home se debe a que las etiquetas P tienen un margen por defecto.
Hola JMiur.
¿Existe la posibilidad de limitar el número de caracteres del título del post? Es decir, una vez sobrepasado un número de letras, que aparezca en el título "...". Tengo ya localizado donde lo quiero aplicar, sólo me falta la parte de CSS.
Saludos!
Mi blog: http://ttm22.blogspot.com.es
Con CSS es poco lo que se puede hacer aunque una propiedad text-overflow que sólo funcionará en algunos navegadores.
Si se trata del home, como las entradas se escriben con un script, podría hacerse pero requeriría cambiar la estructura y crear el código para que muestre títulos de cierta longitud máxima de modo similar a como se hace para mostrar resúmenes.
Finalmente le apliqué al [h3.post-title] el código [white-space: nowrap;] para que el título ocupe sólo una linea en las entradas resumidas de la página principal.
Es lo más parecido a lo que buscaba ;)
Un saludo y gracias!
¿Quiere dejar un comentario?
recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...
Nota: sólo los miembros de este blog pueden publicar comentarios.
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 ...