Mostrando entradas con la etiqueta CSS. Mostrar todas las entradas
Mostrando entradas con la etiqueta CSS. Mostrar todas las entradas

6 de octubre de 2012

CSS: Añadir un estilo a tu plantilla Blogger

Como todo buen informático me gusta hacer las cosas una vez y en un único sitio, y no que para un cambio que quiera hacer tenga que ir recorriendo todo el trabajo hecho hasta la fecha...


Aquí voy a deciros como crear un estilo de clase para que podáis dar formato a una parte repetitiva de vuestras entradas. Es lo que yo uso cuando pongo código:

Esto es un ejemplo de una capa con texto usando la clase "codigo"; cuando escribo la entrada lo escribo normal y lo único que hago es asignarle la clase CSS "codigo" a la etiqueta div que lo contiene.

Para poder hacer esto primero tenéis que saber un poco de CSS para:

  • Crear el código del estilo que queréis conseguir.
  • Rebuscar entre el código fuente de una web en la que habéis visto algo que os gusta y ver su estilo para sacarlo (siempre que no este protegida su autoría, lo cual me parecería muy extraño pero cosas mas raras se han visto... como que no se puedan vender teléfonos con los bordes redondeados y una gran pantalla según las patentes de Apple... lamentable).
  • Utilizar estilos CSS disponibles en Internet. En muchas páginas de diseño hay variedad de estilos gratuitos para elegir.

Una vez tengáis el código de vuestro estilo debéis ir a "Plantilla" y donde se ve la miniatura de vuestro blog actual le dais a "Personalizar".
Elegimos la opción "Avanzado" y vamos al final de la lista de todos los elementos hasta "Añadir CSS". Esta opción nos permite añadir código CSS propio a vuestra plantilla. En mi caso para el estilo que uso para el código utilizo lo siguiente:

.codigo {align: center; background-color: purple; border-color: #660066; border-style: solid; color: white; font-family: Courier; line-height: 24px; margin-left: 2%; padding: 5px 15px 5px 15px; width: 90%;}

Así ya podéis llamar al estilo de clase "codigo" para que os formatee el elemento que queráis. La forma más fácil es incluir vuestro texto en una capa "div" y otorgar a su atributo "class" el valor del nombre de vuestro nuevo estilo.

Por otra parte podéis modificar el código CSS de otras partes de vuestra plantilla. En mi caso utilizo actualmente estas:

.content {margin-top:-50px;}
.post-body h2 {text-transform: uppercase; font-size: 140%; color: #0d009c; text-align: left;}
.post-body img {box-shadow: 0 0 1em 0.3em #999999;}
.post-body {text-align: justify;}

  • La primera ajusta el blog para que al desactivar la barra de navegación de blogger no se me quede el hueco en blanco arriba.
  • La segunda hace que los encabezados que están dentro de cada entrada estén en mayúsculas, con una fuente mayor y de otro color al resto y alineados a la izquierda (en vez de justificados).
  • La tercera produce una sombra gris centrada en las imágenes que están dentro de la entrada (podéis aprender más sobre sombras en esta entrada que hice sobre ellas).
  • La cuarta realiza una alineación justificada en el cuerpo de la entrada.

Recomiendo usar esta opción (la de "Añadir CSS" en personalización de "Plantilla") en vez de modificar directamente el código HTML de la plantilla, ya que es más fácil de localizar y usar por blogeros menos expertos en CSS. Y recordar que la notación para un estilo de clase es poner un [punto - '.'] delante de su nombre como veis en los ejemplos que os he puesto.

En otro blog que colaboro con su diseño también exporte rápidamente muchos de estos estilos sin tener que buscarlos dentro del código HTML de la plantilla. Estos son los ejemplos en Cool Mommies:

.content {margin-top:-60px;}
.post-body h2 {text-transform: uppercase; text-decoration: underline;}
.post-body img {box-shadow: 0 0 1em 0.3em #ea9999;}
.post-title {color: #ea9999;}
.Header .description {color: white;}

Aquí añadí dos líneas, una para cambiar el color del título de las entradas (pues en la plantilla predeterminada se usa el mismo color que el de los enlaces) y otra para cambiar el color de la descripción en la cabecera del blog (igualmente en la plantilla predeterminada no se puede elegir otro color con la interfaz de personalización).

Espero que os sea de utilidad y hayáis observado lo fácil que es cambiar el diseño de todas nuestras entradas en una única parte del código en vez de tener que cambiar todas las entradas si vais formateando cada una de ellas con el editor WYSIWYG que hay para redactarlas.

Un saludo.

1 de septiembre de 2012

CSS: Botones redondeados con brillo

Sabiendo lo que os expliqué ligeramente en la primera entrada de CSS, hoy voy a dedicarme a las propiedades CSS border-radius, box-shadow y linear-gradient. Con su apoyo, al final haré un botón que parezca azul cristalino y que se ilumine cuando pongamos el cursor encima,  todo ello sin utilizar ninguna imagen y con sólo un estilo.


Pero antes: ¿qué nos ofrece cada una de estas propiedades?
  • border-radius: Redondeo de las esquinas de un elemento (incluido imágenes)
  • box-shadow: Aplicar un efecto de sombra a un elemento
  • linear-gradient: Aplicar un degradado de colores de fondo
En los enlaces de la W3C que pongo arriba se explica todo en más detalle. Aquí voy a poner lo que veo más útil y unas demostraciones de lo que se puede conseguir con cada una de ellas. En cada muestra podréis ver los efectos que produce el código que esta dentro del elemento estilizado.
Debemos tener en cuenta que todavía no son un estándar y que cada navegador puede tener una implementación distinta hasta que se asiente cada una de las propiedades (yo compruebo los efectos en Chrome y Firefox que son los que más me visitan XD).

border-radius:

El valor de esta propiedad viene dada por dos valores, el primero marca el radio horizontal de la esquina y el segundo el radio vertical, ya que podemos hacer que sean distintos. De esta forma tenemos:

Elemento con las cuatro esquinas iguales y redondas. Sólo hace falta un valor:

border-width: 2; border-radius: 1em;
NOTA: si os fijáis el tamaño del radio esta medido en 'em', esta es una medida relativa al tipo de letra que se esta usando y que puede asemejarse a una 'm' minúscula. De esta forma el radio guardará una proporción acorde al contenido.

Elemento con esquinas distintas dos a dos. Hacen falta dos valores:

border-width: 2; border-radius: 1em 0.5em;

Elemento con las cuatro esquinas distintas. Un par valor por esquina (además añadí distintos grosores):

border-width: 2px 6px;
border-top-left-radius: 1em 0.5em;
border-top-right-radius: 0.2em 0.2em;
border-bottom-right-radius: 2em 2em;

Con todo esto es posible darle vueltas a la imaginación para que quede todo mas curioso.

box-shadow:

El valor de esta propiedad es una lista de sombras separadas por comas, cada una especificada por 2-4 valores, un color opcional y una clave "interior":
  1. Desplazamiento horizontal de la sombra respecto al elemento.
  2. Desplazamiento vertical de la sombra respecto al elemento.
  3. Difuminado de la sombra.
  4. Extensión de la sombra (cuánto más grande/pequeña es respecto el elemento).
  5. Color de la sombra. Opcional (si no se indica nada se hereda la propiedad color del elemento).
  6. Indica si la sombra es interior. Opcional. Se pondría la palabra clave 'inset'.
Con esto ya podemos empezar a ver que obtenemos:

Sombra exterior del mismo tamaño que el elemento desplazada 10px a la derecha y abajo:

box-shadow: 10px 10px rgba(0,0,0,0.4);

Sombra interior del mismo tamaño que el elemento desplazada la mitad:

box-shadow: 5px 5px rgba(0,0,0,0.4) inset;

Sombra interior y exterior, de distintos colores, con distintos desplazamientos y con la sombra exterior 3px mayor que el elemento:

box-shadow: 8px 4px 0 3px rgba(0,0,200,0.4), 4px 8px rgba(200,0,0,0.4) inset;

Sombra centrada en el elemento 3px más grande y con 4px de difuminado:

box-shadow: 0 0 4px 3px rgba(0,0,0,0.4);

Bien ya nos vamos acercando a lo que queremos.

linear-gradient:

Esta propiedad necesita que se le indiquen los colores que vamos a usar, el ángulo de pintado, dónde obtenemos cada color, el punto de partida... es bastante complejo de hacer a mano para algunos efectos más complicados.
Gracias a Dios, tenemos un enlace con una aplicación web que nos proporciona una interfaz parecida a la de Adobe Photoshop para crear los gradientes y nos genera el código preparado para ser compatible con todos los navegadores.
Aquí dejo el enlace a esta aplicación: Ultimate CSS Gradient Generator.

Así podemos conseguir fácilmente efectos como estos:

background: -moz-linear-gradient(-45deg, rgba(30,87,153,0) 0%, rgba(30,87,153,0.8) 15%, rgba(30,87,153,1) 19%, rgba(30,87,153,1) 20%, rgba(41,137,216,1) 50%, rgba(30,87,153,1) 80%, rgba(30,87,153,1) 81%, rgba(30,87,153,0.8) 85%, rgba(30,87,153,0) 100%); background: -ms-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: -o-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,rgba(30,87,153,0)), color-stop(15%,rgba(30,87,153,0.8)), color-stop(19%,rgba(30,87,153,1)), color-stop(20%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(80%,rgba(30,87,153,1)), color-stop(81%,rgba(30,87,153,1)), color-stop(85%,rgba(30,87,153,0.8)), color-stop(100%,rgba(30,87,153,0))); background: -webkit-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: linear-gradient(135deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); color: white; filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001e5799', endColorstr='#001e5799',GradientType=1 ); text-align: center;

Todo el texto interior no es que me haya vuelto loco, es todo el código que hace falta para que funcione... así que yo prefiero que me lo haga una aplicación.

Muy bien... ¿y dónde está el botoncito?

Para terminar voy a sacarle partido a todo lo que hemos visto y a crear sólo con CSS un botón con esquinas redondeadas y textura cristal que se ilumine cuando estemos encima de él sin usar ninguna imagen. Para ello haré lo siguiente:
  1. Creare un estilo de clase "botonRapido" con:
    • Bordes redondeados
    • Un gradiente que me dé la textura cristal apagado
    • Una sombra centrada en el botón
    • Un color para la fuente del texto que no sea blanco puro
  2. Modificaré el estilo anterior cuando suceda el evento "hover" (pasar el ratón por encima) para que:
    • El gradiente sea más luminoso
    • La sombra más clara
    • El color de la fuente blanco puro.
Implementando todo eso ya tenemos nuestro botón. Probarlo.



Si queréis saber como lo hice exactamente, os dejo el enlace a los archivos que he creado para que podáis verlo tranquilamente y hacer pruebas en local con vuestro navegador.

Si tenéis algún problema podéis comentármelo. Un saludo.

21 de abril de 2012

CSS: Hacer zoom

Para los que no conozcan lo que es CSS (Cascading Style Sheets) se traduce en "Hoja de Estilos en Cascada". Es una definición bastante acertada de lo que nos proporciona y una de las grandes cosas que ha dado la web. Permite cambiar la "forma de ver" una misma página con sólo hacer unos pequeños cambios en un archivo de este tipo (.css), que llevará todos los estilos de los elementos de nuestra página.

Su autodefinición "en cascada" se refiere a que la descripción de estilos también se ve afectada con la relación de un elemento con el resto de la página (por ejemplo si definimos un estilo con el fondo gris y fuente arial con color azul, todos los elementos que marquemos con con ese estilo tendrán el mismo, así como lo que haya dentro de sus etiquetas HTML aunque no se especifique literalmente, y sólo lo tendremos que haber definido una vez). En caso de conflicto importa más el estilo definido más específicamente (si definimos que uno de los elementos internos a nuestro ejemplo anterior debe tener la fuente negra, tendrá este color en vez del azul marcado para su contenedor).
Si queréis saber la sintaxis de CSS podéis visitar el sitio web del World Wide Web Consortium que son los encargados de marcarla a nivel mundial, aunque también he de decir que dependiendo del navegador que usemos, y su versión, los resultados pueden variar mucho.

Si bien lo básico trata de elegir tipo, tamaño o color de letra, color de fondo, posición, tipo de bordes, etc... lo más interesante es que con la versión 3 hay una serie de transiciones y transformaciones que se pueden definir al activarse por ejemplo los siguientes eventos:
  • hover: pasar el ratón por encima
  • active: pulsar sobre el elemento
  • focus: elegir como elemento actual
Suelen conseguirse unos efectos bastante espectaculares y profesionales sin intervenir por medio ningún lenguaje de programación.

Sirva esta entrada de somera introducción a lo que es CSS y pasemos al truco que os quería mostrar hoy: hacer zoom sobre un elemento de una página con CSS. El resultado es como el de abajo.



Todo lo que este en la capa hace zoom, incluido texto, etc... a menos que uses de navegador IE.

Esta preparado para que:
  • al pasar el ratón sobre la capa de la imagen aumente su tamaño al triple.
  • al mantener pulsado el botón de ratón sobre ellos, se reduzca a la mitad.

Aquí dejo un enlace a un paquete donde tengo tres archivos para la demostración:
  • pruebaZoom.htm: página con la demostración que os quiero mostrar.
  • zoom.css: archivo CSS con la definición de estilo para los elementos.
  • image.jpg: imagen utilizada en el ejemplo.
Lo descargáis y abrís pruebaZoom.htm para ver el resultado en local. Lo mejor es que molifiquéis el código para ver las diferencias. En este ejemplo añadí dos controles tipo "input" donde podéis distinguir los efectos de antes más otro que ocurre cuando el cursor está dentro del input (hacerle focus) y hace que doble su tamaño.

En el fichero CSS veréis que parece repetirse una y otra vez lo mismo. Esto tiene su explicación y tiene que ver con la dependencia que tiene CSS con el navegador que se usa. Por ejemplo, en la definición del estilo de clase .claseZoom cada línea que veis terminada con transform y que sólo cambia el prefijo es una línea para cada navegador (moz=mozilla, web-kit=chrome, o=opera y ms=IE). Para vuestras pruebas os sugiero cambiar sólo la línea de vuestro navegador si sólo vais a usar uno. Por otra parte podéis eliminar las dos últimas lineas ya que IE aún no lo soporta y la que no tiene prefijo es la sintaxis estándar que no es soportada por ningún navegador ;-)

Seguro que se os pasa por la cabeza lo poca elegancia que tiene el input haciéndose grande tal cual viene en el ejemplo. Tranquilos, mas adelante emplearé otra transformación que le dará un aspecto realmente impresionante a vuestros formularios.

Hasta la próxima.

Compárteme

Entradas populares