Академический Документы
Профессиональный Документы
Культура Документы
CSS 3
Trae grandes novedades para el diseño de webs y algunos navegadores comienzan a
implementar CSS 3.
Qué es CSS?
Si no sabes lo que es CSS probablemente te interesaría comenzar leyendo nuestro manual
de CSS o la sección de CSS a fondo. No obstante, cabría decir que CSS es un lenguaje
para definir el estilo o la apariencia de las páginas web, escritas con HTML o de los
documentos XML. CSS se creó para separar el contenido de la forma, a la vez que permite
a los diseñadores mantener un control mucho más preciso sobre la apariencia de las
páginas.
Así pues, la novedad más importante que aporta CSS 3, de cara a los desarrolladores de
webs, consiste en la incorporación de nuevos mecanismos para mantener un mayor
control sobre el estilo con el que se muestran los elementos de las páginas, sin tener que
recurrir a trucos o hacks, que a menudo complicaban el código de las web.
Bordes
BORDER-COLOR
BORDER-IMAGE
BORDER-RADIUS
BOX-SHADOW
Fondos
background-origin
background-clip
background-size
hacer capas con múltiples imágenes de fondo
Color
colores HSL
colores HSLA
colores RGBA
Opacidad
Texto
text-shadow
text-overflow
Rotura de palabras largas
Web Fonts
Interfaz
box-sizing
resize
outline
nav-top, nav-right, nav-bottom, nav-left
Selectores
Selectores por atributos
Modelo de caja básico
overflow-x, overflow-y
Degradados CSS3
Degradados lineales
Degradados radiales
Degradados lineales de repetición
Degradados radiales de repetición
Vamos a darle estilos básicos a nuestro menú para empezar a darle código CSS3. Primero
a darle un fondo al cuerpo:
1 body{
2 background:#3CF;
3 }
1 nav{
2 /*Bordes redondeados*/
3 -webkit-border-radius:10px;/*Para chrome y Safari*/
4 -moz-border-radius:10px;/*Para Firefox*/
5 -o-border-radius:10px;/*Para Opera*/
6 border-radius:10px;/*El estandar por defecto*/
7 background-image: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#CCC));/*Para chr
8 /*Degradados*/
9 background-image: -moz-linear-gradient(top center, #FFF, #CCC);/*Para Firefox*/
10 background-image: -o-linear-gradient(top, #FFF, #CCC);/*Para Opera*/
11 background-image: linear-gradient(top, #FFF, #CCC);/*El estandar por defecto*/
12 overflow:hidden;
13 padding:10px;
14 width:950px;
15 }
Nota: Aun CSS3 no esta terminado por lo cual utilizamos las extensiones propietarias
para cada navegador.
Recordemos que NAV es un contenedor para la lista, así que ahora pasamos a dar estilo
a la etiqueta de UL que contiene las listas, vamos a anular el estilo de lista, darle
márgenes laterales de 10px y anular el padding.
1 nav ul{
2 list-style:none;
3 margin:0 10px 0 10px;
4 padding:0;
5 }
Ahora a los elementos de la lista LI hacemos que floten a la izquierda para una vista
horizontal y le damos un margen derecho de 10px para darle separación con bordes
redondeados de 5px de radio, tipo de fuente, tamaño de 16px, centrado y sombras para el
texto.
1 nav ul li{
2 /*Bordes redondeados*/
3 -webkit-border-radius:5px;/*Chrome y Safari*/
4 -moz-border-radius:5px;/*Firefox*/
5 -o-border-radius:5px;/*Opera*/
6 border-radius:5px;/*Estandar por defecto*/
7 float:left;
8 font-family:Arial, Helvetica, sans-serif;
9 font-size:16px;
10 font-weight:bold;
11 margin-right:10px;
12 text-align:center;
13 /*Sombras para texto, los mismos parametros que box-shadow*/
14 text-shadow: 0px 1px 0px #FFF;
15 }
1 nav ul li:hover{
2 /*Degradado de fondo*/
3 background-image: -webkit-gradient(linear, left top, left bottom, from(#FFF), to( #E3E3E3));/*Chr
4 background-image: -moz-linear-gradient(top center, #FFF, #E3E3E3);/*Firefox*/
5 background-image: -o-linear-gradient(top, #FFF, #E3E3E3);/*Opera*/
6 background-image: linear-gradient(top, #FFF, #E3E3E3);/*Estandar por defecto*/
7 /*Sombras*/
8 -webkit-box-shadow: 1px -1px 0px #999;/*Chrome y Safari*/
9 -moz-box-shadow: 1px -1px 0px #999;/*Firefox*/
10 -o-box-shadow: 1px -1px 0px #999;/*Opera*/
11 box-shadow: 1px -1px 0px #999;/*Estandar por defecto*/
12 border:1px solid #E3E3E3;
13 }
1 nav ul li a{
2 color:#999;
3 display:block;
4 padding:10px;
5 text-decoration:none;
6 /*Transiciones*/
7 -webkit-transition: 0.4s linear all;
8 -moz-transition: 0.4s linear all;
9 -o-transition: 0.4s linear all;
10 transition: 0.4s linear all;
11 }
La transición esta vez se activara al pasar el puntero, el evento HOVER de CSS que
cambiara de color gris el texto a negro, esto es sobre la etiqueta A de enlace.
1 nav ul li a:hover {
2 color:#000;
3 }
Tarde o temprano, todo libro o taller práctico de CSS queda bajo la influencia del Modelo
de Caja de CSS. Es un tema que, sin lugar a dudas, tenemos que dominar perfectamente
y realmente no tiene ninguna dificultad. La práctica nos dará la soltura necesaria para que
no tengamos ni que pensar cuando estemos diseñando o maquetando una web, pero para
las personas que están empezando con CSS será muy interesante el prestar la debida
atención.
Para entrar en tema, vamos a construir un sencillo ejemplo utilizando un único elemento
<div> al que aplicaremos un estilo. El resultado producido será analizado con la ayuda
de una figura en la que hemos modelado el orden de apilado de los elementos del <div>
en una disposición tridimensional que nos ayudará a comprenderlo.
El elemento <div>
<div>
<p>Este es el contenido de nuestra caja.</p>
<p>Este es el contenido de nuestra caja.</p>
El estilo
div {
background-color: #be4061; /*color bordó para el fondo*/
background-image: url('cabeza.jpg');
border: 10px solid #e7a219; /*color naranja para el borde*/
margin: 10px;
padding: 20px;
}
p{
margin: 0 0 20px 0; /*margen inferior de 20 px para el párrafo*/
padding: 0;
}
El código anterior generará una caja como la que muestra la figura siguiente, en la que
adicionalmente se ha dado color a los elementos transparentes (margen y relleno) solo
para hacerlos visibles.
Aunque el caso específico sea materia de otro artículo, comentaremos que esta
disposición fue utilizada por el diseñador Douglas Bowman de Stopdesign para el
rediseño del sitio de Blogger , logrando las armoniosas líneas curvas de sus páginas
mediante CSS, ubicando imágenes en la capa de Contenidos de modo que oculten el borde
anguloso de las cajas.
Áreas y propiedades
Cada caja en CSS posee, además de su área de Contenido, otras tres áreas opcionales:
El tamaño de cada área o de sus segmentos está dado por el valor de las respectivas
propiedades, definidas en forma global o discriminadas por segmento.
div {
margin-top: 10px ;
margin-right: 5px ;
margin-bottom: 20px ;
}
En cualquier caso puede obviarse el valor 0 ya que es el valor que toman las
propiedades por defecto.
La lista completa de propiedades es la siguiente:
3) Estilo (style)
"border-top-style", "border-right-style", "border-bottom-style", "border-left-style" and
"border-style". Toma una serie de posibles valores, tales como: none, hidden, dotted,
dashed, solid, double, groove, ridge, inset y outset. Es una propiedad algo conflictiva ya
que no todos los navegadores interpretan sus valores de la misma manera.
Como corolario de esta aproximación al modelo de caja resta analizar qué es lo que se
verá en cada área cuando la página se muestre en un navegador:
En el artículo sobre CSS 3: más social que nunca, hablé sobre las novedades a grandes
rasgos del nuevo CSS 3, ahora trataré de detallarlas un poco más con ejemplos de código.
Las nuevas propiedades han sido agrupadas en varios módulos según sus prestaciones.
La siguiente lista de nuevas propiedades ha sido extraída de CSS3.:
Nuevas propiedades
Backgrounds y Borders:
Entre las principales características destacan que se podrá agregar múltiples background
a un objeto, los borders podrán ser redondos con posibilidad de indicar el radio de
curvatura.
HTML:
CSS:
.vcard {
background-color: #000;
background-image:
url(a-grad.gif),
url(a-bl.gif),
url(a-tr.gif);
background-repeat:
repeat-x,
no-repeat,
no-repeat;
background-position:
0 0,
100% 0,
100%;
}
Pueden darse cuenta que en este caso, los múltiples background son agregadas mediante
coma ( , ). El nivel de precedencia es de menos a más, es decir, el que está de último es
el background de encima.
Multi-column Layout
Ahora será más sencillo crear diseños con múltiples columnas sin etiquetas adicionales.
Esta característica me ha parecido extraordinaria y muy útil. En el primer ejemplo, vemos
la implementación de esta opción en la versión actual de CSS. Para este caso, debemos
crear dos clases CSS y dos objetos DIV para simular la multi-columna.
.entry-content .col {
float: left;
width: 467px;
margin-left: 30px;
}
.entry-content .first {
margin-left: 0;
}
.entry-content {
column-count: 2;
column-gap: 30px;
}
Advanced Layout:
Esta nueva característica permitirá organizar los elementos en pantalla de una mejor
manera y combinarlos de diferentes maneras sin etiquetas adicionales.
Grid Positioning:
Dará la posibilidad que agregar reglas con cuadrículas invisibles para maquetar páginas
con un aspecto como libro o revista y jugar con el tamaño y las propiedades de los objetos
para hacer que los elementos “floten” entre las posiciones.
<div class="entry-content">
<h2>What is Sushi?</h2>
…
<img src="sushi.jpg" class="photo" alt="" />
…
</div>
.entry-content {
grid-columns:
(30px * *)[4];
grid-rows:
9em 33.3% *;
column-count: 4;
column-gap: 30px;
}
.entry-content h2 {
float: page top left;
width: 6gr;
height: 1gr;
margin-left: -30px;
}
.entry-content img.photo {
float: page bottom left;
float-offset: 4gr 1gr;
}
Selectors:
El concepto de selector es un poco complicado de explicar, y todo debido a que este tipo
de propiedades son muy poco utilizadas. Algunos ejemplos de selector que si utilizamos
son::hover y :visited (los selector de hipervínculos). Este tipo de selector podrían ser
utilizados en otros elementos y de hecho así puede ser, a excepción del navegador Internet
Explorer que no los soporta. Los nuevos selector serían:
Las posibilidades para el uso de selector son realmente muchas. Ahora faltará que la
nueva versión de CSS 3 este lista para poder empezar a utilizarla en nuevos desarrollos.