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

Guia de css 4: Uso avanzado de selectores

Haciendo uso de los selectotes sencillos se pueden desarrollar casi cualquier diseño de paginas Web que deseemos, sin embargo existen otras maneras de usar los selectores para lograr simplificar el código CSS, imagínenos un caso en que queramos que todos los párrafos sean de un solo color, exceptuando el primer párrafo de todas las paginas, esto podría hacerse usando CSS en la línea, aplicándole estilo directamente al primer párrafo, pero tendría el inconveniente de tener que hacerlo con cada pagina nueva que quiera añadir, y si el sitio es grande seria demasiado tedioso, otra manera de hacerlo seria creando una clase especifica para identificar el primer párrafo, esto implicaría tener su selector en la hoja de estilo que se este usando y tendría que hacer referencia en el primer párrafo de todas las paginas a esta clase, lo cual recaería en casi las mismas complicaciones que usando CSS en la línea. Para simplificar este tipo de situaciones las hojas de estilo en cascada ofrecen una elegante solución, la utilización combinada de selectores y los selectotes avanzados, que se explican a continuación:

Combinación sencilla de selectores:

Cuando creamos una regla es posible hacer que esta solamente aplique sobre ciertos elementos, por ejemplo si queremos que los elementos de tabla que están dentro de un div específico tengan un color de fondo azul usaríamos el siguiente código:

Ejemplo 4.0:

#container table {
Background-color:blue;

 }
 

Lo que se hizo en la regla anterior fue hacer una combinación sencilla de selectores, como puede notarse en primera instancia se colocó el selector de id que esta asociado a un elemento con ese id en el código HTML, supongamos que es un div, con esto indicamos que la regla será aplicada a este div, luego de un espacio se colocó el selector de tipo table, con esto decimos que la regla se aplica a las tablas, poniendo los dos selectores unidos para formar una combinación de selectores estamos haciendo que este bloque de declaraciones se aplique exclusivamente a las tablas que estén dentro del elemento div. Estas combinaciones se pueden hacer tan profundas como queramos, y se le pueden incluir todos los tipos de selectores.

Ejemplo 4.1:

#container table p .parrafoespecial{
Background-color:blue;
}
 

La regla de estilo anterior será aplicada únicamente a lo que esté dentro del div container, dentro de una tabla, que sea un párrafo y que sea de la clase “parrafoespecial”.

Agrupación de selectores separados por comas:

Si quisiéramos que un bloque de declaraciones apliquen sobre algunos elementos de nuestro código HTML por igual, podemos agrupar sus selectores y separarlos mediante comas de la siguiente manera:

Ejemplo 4.2:

#container, table, ul, p, .parrafoespecial{
  Background-color:blue;
 
 }
 

Este código es distinto al anterior, pues este lo que indica es que la declaración que contiene aplicara sobre el elemento con id container, sobre las tablas, sobre las listas (ul), sobre los párrafos, y sobre los elementos que pertenezcan a la clase párrafoespecial, independientemente si unos están dentro o fuera de los otros, el código anterior es equivalente a escribir:

Ejemplo 4.3:

#container {
Background-color:blue;  
}
table {   
Background-color:blue;   
}
ul {
Background-color:blue;
}
p {
Background-color:blue;
}
.parrafoespecial{  
Background-color:blue;
}

Puede notarse claramente que el primer código es sumamente más simple que el segundo.

Selectores avanzados

Los selectores avanzados no funcionan en el Internet Explorer 6 ni en versiones anteriores, por lo que no eran muy comunes hasta ahora, esta modalidad presenta algunas caracteristicas interesantes.

Selector de hijo:

Los selectores de hijos influllen unicamente sobre elementos que sean hijos directos de de otros, se utiliza el simbolo >, si se escribe a > b, se indica que b es hijo de a, e infulle solamente sobre los elementos b que sean desendientes directos de a.

Ejemplo 4.4:

La regla h1 > span { background:red; } Afecta a:

<h1><span>texto del titulo</span></h1>

Porque el elemento span es desendiente directo de h1

Pero no afecta a: <h1><a href=”#”><span>texto del titulo</span><a></h1>

Porque span no es desendiente directo de h1, pues está dentro de otro elemento.

Selector adyacente:

Los selectores adyacentes se escriben así

Ejemplo 4.5:

a + b {
 color:blue;
 }
 

Esta regla será aplicada solo a los elementos b que cumplan; b debe ser hermano de a (estar dentro del mismo elemento) b esta dispuesto en el codigo HTML inmediatamente después de a.

Ejemplo 4.6:

  h1 + h2 { color: red }

<body> <h1>Titulo1</h1> <h2>Subtítulo</h2> ... <h2>Otro subtítulo</h2> ... </body>

La regla solo aplica sobre el subtitulo, pues este es un elemento h2 hermano de h1 y declarado inmediatamente después de este. No aplica sobre Otro subtitulo, pues este elemento, aunque sea h2 y sea hermano de h1, no está directamente después de un h1.

Selector de atributos

Este es el ultimo tipo de selectores avanzados. Dan la posibilidad de seleccionar elementos html segun atributos o sus correspondientes valores

Estos selectores se pueden usar de cuatro formas:

[atributo]: selecciona a los elementos que tienen el atributo encerrado en los brakets.

Ejemplo 4.7

/*Muestra en rojo todos los elementos de parrafo "p" que tengan 
el atributo style independientemente del valor*/
p[style]{
color: red;
}

[atributo=valor]: selecciona a los elementos que tienen el atributo encerrado en los brakets. con el valor especificado

Ejemplo 4.8

/*Muestra en azul todos los elementos de parrafo "p" que tengan 
el atributo class con el valor articulo*/
p[class="articulo"]{
color: blue;
}

[atributo~=valor]: selecciona a los elementos que tienen el atributo encerrado en los brakets que tiene al menos uno de sus valores igual al especificado.

Ejemplo 4.9

/*Muestra en rojo todos los elementos de parrafo "p" que tengan el
 atributo class y al menos uno se sus valores sea "articulo" */
p[class~="articulo"]{
color: red;
}

[atributo~=valor]: este selector solo es util para los atributos lang, ya que selecciona los elementos que tengan un atributo con un valor de palabras separadas con guiones con la primera palabra igual a valor

Ejemplo 4.10

/* pone en rojo todo lo que tenga el  atributo 
"lang" empezado por "es", es 
tales como "es", "es-ES", "es-AR" y otros */
*[lang|="es"] { 
color : red 
}

Guia de Css 3: Como crear una hoja de estilo CSS

Para poder crear y usar correctamente las hojas de estilo debe conocerse la sintaxis de un documento HTML, la cual esta bien detallada en la sección HTML. Básicamente se representa de dos partes, el head y el body, mostradas a continuación:

<!DOCTYPE html> <html lang=”es"> <head> <title>Ejemplo de estructura html</title> </head> <body> <h1>Titular de la páginah1> <p>Un párrafo </p> </body> </html>

El head contiene información para el explorador mientras que el body es donde se escribirán las diversas etiquetas HTML para crear el contenido.

Creando una hoja de estilo en casaca externa:

En este caso se escriben las reglas en un archivo aparte, puede hacerse usando el bloc de notas o cualquier editor de texto plano, se escriben las reglas en el, no es necesario escribir nada adicional a las reglas, se hace como en el siguiente código:

body { margin:0; padding:0; font-family:verdana, Arial, Helvetica, sans-serif; font-size:13px; color:#D8D7D3; background-color:#353535; text-align:center; } img{ border:0; padding:0; margin:0; }

Este archivo de texto plano lo guardo con un nombre cualquiera, pero siempre debe ponerse con extensión .CSS.

Hecho el archivo CSS, este debe ser “llamado” por la página en la que se desea que actúe, para ello se introduce el siguiente código dentro del head de la página:

<link rel="stylesheet" type="text/css" href="nombredemihoja.css" media="screen" />

Puede ligarse a nuestra página todas las hojas CSS que queramos.

En este caso se le están asignando 4 atributos a la etiqueta link;

rel: señala la relación que existen entre la pagina que enlaza y el archivo enlazado, en este caso es nuestra hoja de estilo, por lo que se coloca stylesheet, esto es un estándar por lo que sierre se debe colocar así.

type: se le asigna otro valor estándar para las hojas de estilo, este es “text/css”, esta etiqueta muestra el tipo de recurso al que se esta enlazando.

href: indica la ubicación del archivo CSS, esta dirección puede ser relativa o absoluta (ver tipo de enlaces), por lo que es posible utilizar hojas de estilo ubicadas dentro de un sitio Web o que sean externas al sitio.

*imagine que quiere dar la dirección de su casa a un vecino suyo, usted le dice, mi casa esta a tres casas de la suya. Esto es una dirección relativa, pues esta en relación a la casa del vecino. En cambio si lo que necesita es dar su dirección para que le envíen un paquete desde otro país, usted tiene que especificar su país, estado, provincia calle, etc., esto es una dirección absoluta. Igualmente pasa con los enlaces, estos pueden hacerse en relación a la página que enlaza (diciendo por ejemplo que esta en el mismo directorio, o que esta en el directorio imágenes a su ves esta en el mismo directorio) o puede poner una dirección absoluta como por ejemplo http://foro.mipaginaweb.net/index.php/topic,77881.85/wap2.html*

**para ubicar una dirección relativa, que será la que mas usara para enlazar hojas de estilo, solo debe poner el nombre de la hoja de estilo href="nombredemihoja.css" si esta está en el mismo directorio, si esta en un directorio que a su vez esta dentro del directorio en el que se ubica la pagina debe poner href="nombredirectorio/nombredemihoja.css", para un directorio dentro del directorio; href="primerdirectorio/nombredirectorio/nombredemihoja.css" así sucesivamente, recuerde que el nivel mas alto es el directorio de en la que se encuentra la pagina que enlaza**

media: señala cual será el medio de aplicación de las hojas de estilo, si se desea que la hoja se aplique cuando alguien ve la pagina en una PC, entones se pone display, si se desea que se aplique siempre la misma hoja de estilo, se puede omitir este atributo, se pueden poner otros valores para que la hoja aplique cuando la pagina se visualice en un dispositivo Mobil por ejemplo, esto se explicará en otro apartado. Por el momento pueden omitir este atributo.

Creando una hoja de estilo en casaca interna:

Esto se hace mediante la etiqueta <style>, se coloca en el head de la página y las reglas se escriben dentro de ella, del siguiente modo:

<style type="text/css">

p { color: black; font-family: Verdana; }

</style>

Nótese que se define un type, cuyo valor estándar ya se expuso, y siempre es “text/css”, todo lo que se encuentra entre estas etiquetas será definido e interpretado como código CSS.

La tercera y menos recomendada forma de añadir reglas CSS a una página es dentro del código HTML mismo, esto es, dentro del body de la página, especificándose en cada etiqueta HTML que se quiera modificar.

<!DOCTYPE html"> <html lang=”es”> <head>

<title>Ejemplo de estilos CSS en el codigo html</title>

</head> <body>

<p style="color: black; font-family: Verdana;">Un párrafo de texto.</p>

</body> </html>

Como se puede ver en el código anterior, dentro de la etiqueta a la cual queramos imponerle estilo CSS, se coloca el atributo style=””, dentro de las comillas se ponen las declaraciones que queramos, sierre separándolas por “;”.

Como notaran, los sitios Web utilizan una especie de “tema” común entre sus paginas, es decir, casi todas las paginas de un mismo sitio tienen un aspecto muy similar, es por esta razón que el uso de CSS externo facilita el trabajo, pues en el caso de que se desee hacer una modificación a todo el sitio, cambiar el color de fondo por ejemplo, solo debe hacerse en una hoja de estilo, si el sitio es muy grande, entonces otra manera de hacer esto podría ser muy laboriosa.

Guia de css 2: Como escribir CSS y Tipos de selectores basicos.

Si no tiene idea de como escribir CSS es recomendable que lea el primer articulo para que los conceptos que se engloben a continuación no le sean extraños, tales como "declaracion", selector, atibuto, y valor, su definicion los puede encontrar aqui.

El CSS se escribe en texto plano (sin formato, el microsoft word agrega formato a lo que se escribe, por lo que no se recomienda para escribir CSS), se puede escribir con el bloc de notas y se guarda con la extensión .CSS.

En la interpretación de elementos CSS se omiten los espacios, es decir da lo mismo p{color:red;} que p { color : red; }, igualmente son omitidos los cambios de línea. Gracias a esta característica podemos ordenar el código que escribimos de la maneja que mas nos convenga para que nos sea mas fácil comprender nuestro propio código. Escribiendo una declaración por línea, y dejando un espacio al inicio para las declaraciones se vean subordinadas al selector es una buena practica.

En el CSS, al igual que en el HTML, no se distinguen mayúsculas de minúsculas, sin embargo es recomendado escribir todo en minúscula, esto para evitar complicaciones, pues CSS está en evolución, y existe la posibilidad de que futuros estándares si hagan esa distinción, por lo que es mejor mantener las reglas y sus elementos en minúscula.

Al ordenar el código mejoramos su comprensión, sin embargo también es importante, en algunas ocasiones, añadir una pequeña explicación de lo que hace alguna regla o declaración que no quede clara, así en un futuro si queremos modificar el código no nos será difícil descifrarlo. Esto se hace por medio de comentarios, un comentario es un texto dentro de los elementos /* */.

Ejemplo 2.0:

/* Esto es un comentario */

Los comentarios son ignorados por el explorador, por lo que podemos escribir en ellos lo que queramos para así orientarnos dentro de nuestro código.

CSS tiene una característica llamada herencia, esto quiere decir que cuando se aplica una regla a un elemento en concreto, esta regla será aplicada a su vez a todos lo que se encuentre dentro de este elemento.

Ejemplo 2.1:

table {
color: red;
}

En la regla anterior se le asigno al texto de todos los elementos de tabla el color rojo. Por lo que todo lo que se encuentre dentro de las tablas tendrá texto color rojo, pues cada elemento dentro de la tabla hereda la regla que se le aplica a esta.

En una hoja de estilo en cascada pueden aplicarse declaraciones aparentemente contradictorias que aplican sobre un mismo elemento.

Ejemplo 2.2:

table {
color: red;
color: blue;
}

En la regla anterior se definen dos reglas que modifican el mismo atributo con diferentes valores, para ello CSS tienen un mecanismo que elije cual será aplicada sobre la otra mediante un orden de prioridad.

LA PRIORIDAD DISMINULLE DE ESPECÍFICO A GENERICO

Si se tiene una regla que modifica todo el cuerpo de la pagina, y le asigna un valor al color del texto, esta declaración tiene menos prioridad que si se tiene una regla que modifica el color del texto solo de los párrafos, por lo que la declaración del párrafo al ser mas especifica “escribe sobre” la declaración del cuerpo, que es mas genérica.

Si no existe manera de determinar una prioridad mayor o menor en un par de declaraciones que colisionan, entonces se toma la que esté mas “abajo” como la que será aplicada;

Ejemplo 2.3:

p{
color: red;
color: blue;
}

Por lo que en el código anterior el texto aparecerá de color azul y no rojo.

Tipos de selectores:

Selector universal:

Este es único y su nombre es *, todas las declaraciones que se subordinen a este selector actúan sobre TODO el documento:

Ejemplo 2.4:

*  {
color:red;
margin:20px;
text-align: left;
}

Con eso logramos definir esos valores para esos atributos en todo el documento HTML, este selector es el más genérico de todos.

Selector de tipo

Los selectores que hemos visto hasta ahora hacen referencia a elementos HTML como p, table, h1. Estos selectores se denominan selectores de tipo, y son bastante genéricos, se ponen solo con el nombre del elemento HTML (no la etiqueta sino el nombre):

Ejemolo 2.5:

p  {
color:red;
margin:20px;
text-align: left;
}
table {
color:red;
margin:20px;
text-align: left;
}
span  {
color:red;
margin:20px;
text-align: left;
}
ul  {
color:red;
margin:20px;
text-align: left;
}

Selector de clase:

Estos son muy útiles, definen lo que llamamos una clase, y sus declaraciones se aplican sobre todos los elementos HTML que pertenezcan a esta clase. Sencillamente se elije un nombre arbitrario y se le antepone un punto:

.estaesmiclase { color:red; margin:20px; text-align: left; }

Con eso creamos la clase “estaesmiclase”.

Ahora se va al código HTML y en las etiquetas de los elementos que queramos que sean afectados por “estaesmiclase” les asignamos esa clase usando el atributo class=”nombre_de_clase”:

<body> <h1> esto es un titulo de nivel h1</> <p> esto es un parrafo</p> <p class=”estaesmiclase”> este es otro párrafo</p>

</body>

De esta manera mi clase modifica al segundo párrafo, esto se puede hacer con cualquier etiqueta HTML que acepte el atributo class, (o que tenga sentido ponérselo).

Selector de id: estos selectores son específicos para una parte del documento HTML, solo pueden ser usados en aquellos elementos que tengan el id igual al que se designa como selector de id, sin embargo en un documento HTML cada id debe ser único, por lo que generalmente un selector de este tipo solo afecta a un elemento, sin embargo si la hoja de estilo en cascada es usada en mas de una pagina Web puede modificar al elemento con un id especifico en cada pagina. Se pone colocando un # tras el id

#contenedor { background: blue; }

luego en el codigo HTML

<body> <div id=”contenedor”> <p> la regla aplica en este div, pues tiene id igual al nombre de esta</p> </div> </body>

La regla anterior aplica sobre el cuadro div que tiene el id “contenedor”.

Guia de css 1: Que es CSS

Css son las siglas de cascading style sheets (hojas de estilo en cascada)

Las hojas de estilo en cascada son un lenguaje de programacion que hace que el explorador de ciertas características de formato al contenido de una pagina web para mostrarlo al usuario, dando así mayor control sobre el orden, formato y compatibilidad de una pagina Web.


La mayor ventaja de las hojas de estilo en cascada es que separan el contenido de los documentos HTML y XML de su presentación, haciendo posible manipular el formato de muchas paginas Web ligadas a una única hoja CSS, simplificando así el proceso de desarrollo y actualización de un sitio.

El CSS trabaja estableciendo características de estilo a los elementos que componen a una Web, siguiendo una sintaxis y reglas definidas. Básicamente usan una serie de comandos llamados “reglas” que se componen de dos partes: una llamada selector y una llamada declaración, la declaración se divide en una propiedad y en el valor a la que esta se liga, después del selector se pone un par de corchetes, dentro de los cuales se ubican todas las declaraciones que sean necesarias para obtener los resultados que queramos, separando una de otra mediante un “;”, para asignar un valor a la propiedad se colocan “:”.

Ejemplo 1.0

p {
text-align: center;
color: red;
}

"p" es el selector, "text-align:" es a propiedad y "center" su valor, "color:" es otra propiedad y red su valor.

Es recomendable, por cuestiones de orden, colocar cada declaración en una línea nueva, y poner el corchete de cierre en una línea nueva, tal como se puede apreciar en el ejemplo anterior. De esta manera se facilita la comprencion del codigo para otros desarrolladores o para nosotros mismos cuando queramos cambiar algo

La declaración define un efecto sobre el selector, el selector a su vez vincula una parte del documento HTML con la hoja de estilo.

En el caso del ejemplo 1.0 (arriba), el elemento p es un elemento definido en HTML, el cual se usa para señalar párrafos, en ese caso la declaración indica que todos las partes que están entre las etiquetas <p> y </p> serán alineadas (propiedad text-align) en el centro.

Existen tres maneras de usar CSS

  • En una hoja de estilo externa: este es el caso mas deseable, pues separa absolutamente el contenido del formato, consiste en guardar las reglas de estilo en un documento aparte con extensión CSS, que posteriormente será llamado del documento HTML o XML en el que se desee aplicar esta hoja.
  • En una hoja de estilo interna: consiste en colocar las reglas de la hoja de estilo dentro del head de la página en que actúan. Si bien este método mantiene separado el código HTML del estilo, entorpece su aplicación a muchas paginas Web, por lo que solo es recomendable usarlo cuando se quiere agregar una característica de estilo a una pagina en concreto.
  • En una línea de HTML: este método es usado para darle estilo a los correos electrónicos en HTML, pues en un correo no se admiten las otras dos maneras de agregar estilo, se puede usar en una pagina Web, sin embargo no es una buena practica pues no proporciona estructuración al estilo y además su aplicación puede ser laboriosa.

El W3C (Word Wide Web Consortium), es la entidad que define los estándares y sintaxis de las hojas de estilo en cascada. Actualmente se encuentra en proceso de desarrollo la especificación CSS 3 que puede aplicarse de manera experimental. Por el momento se mantiene vigente CSS 2.1 como estándar recomendado, existiendo también CSS 2.0 y CSS.

Otras especificaciones interesantes son:

  • CSS Mobile Profile 1.0 creada para dispositivos móviles, como teléfonos celulares y PDA.
  • CSS Print Profile dirigida a las impresoras de bajo costo, siendo meramente un bosquejo en desarrollo.
  • CSS TV Profile 1.0 creada para los buscadores que corren sobre los televisores que soportan navegación en Internet.

Sientance libres de hacer cualquiere pregunta

Twitter Delicious Facebook Digg Stumbleupon Favorites More