<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DWUG &#187; CSS</title>
	<atom:link href="http://www.dwug.es/docs/tutoriales/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dwug.es</link>
	<description>Grupo de Usuarios Adobe Dreamweaver</description>
	<lastBuildDate>Wed, 14 Jul 2010 15:32:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS para diferentes medios</title>
		<link>http://www.dwug.es/go/486</link>
		<comments>http://www.dwug.es/go/486#comments</comments>
		<pubDate>Sat, 28 Feb 2009 07:34:00 +0000</pubDate>
		<dc:creator>Andres Cayon</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.dwug.es/go/486</guid>
		<description><![CDATA[Otro de los ejemplos mostrados en Adobe Hispano fue la posibilidad de asignar diferentes estilos según el medio al que va dirigido el contenido.
En el ejemplo mostramos cómo el mismo documento cambia de apariencia dependiendo de si se está mostrando en pantalla o si va a ser imprimido, utilizando para ello el atributo media en [...]]]></description>
			<content:encoded><![CDATA[<p>Otro de los ejemplos mostrados en Adobe Hispano fue la posibilidad de asignar diferentes estilos según el medio al que va dirigido el contenido.</p>
<p>En el ejemplo mostramos cómo el mismo documento cambia de apariencia dependiendo de si se está mostrando en pantalla o si va a ser imprimido, utilizando para ello el atributo media en la etiqueta link:<br />
<code>
<link href="css/media_sample_print.css" rel="stylesheet" type="text/css" media="print" />
<link href="css/media_sample_screen.css" rel="stylesheet" type="text/css" media="screen" /></code>
<p><a id="p487" href="http://www.dwug.es/wp-files/2009/02/media_screen_media_print.zip" title="Haz click para descargar archivo de ejemplo de tipos de media">Descargar archivo de ejemplo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/486/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Valores por defecto del navegador</title>
		<link>http://www.dwug.es/go/485</link>
		<comments>http://www.dwug.es/go/485#comments</comments>
		<pubDate>Sat, 28 Feb 2009 06:16:46 +0000</pubDate>
		<dc:creator>Andres Cayon</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.dwug.es/go/485</guid>
		<description><![CDATA[Éste el primer ejemplo de lo que vimos en Adobe Hispano. Se trata de comprobar los valores por defecto que el navegador asigna a la apariencia de los elementos del documento.
Un problema muy habitual es no conseguir que un determinado elemento no se ajuste exactamente a la posición que deseamos, y la causa más habitual [...]]]></description>
			<content:encoded><![CDATA[<p>Éste el primer ejemplo de lo que vimos en <a href="http://www.adobehispano.com">Adobe Hispano</a>. Se trata de comprobar los valores por defecto que el navegador asigna a la apariencia de los elementos del documento.</p>
<p>Un problema muy habitual es no conseguir que un determinado elemento no se ajuste exactamente a la posición que deseamos, y la causa más habitual es que no hemos definido alguno de los atributos (sobre todo margin y padding), por lo que el navegador asigna los suyos propios que no tienen por qué coincidir con los que nosotros esperemos que sean.</p>
<p><a id="p484" href="http://www.dwug.es/wp-files/2009/02/valores_por_defecto_navegador.zip" title="Descargar Ejemplo de valores por defecto">Descargar Ejemplo de valores por defecto</a></p>
<p>(Nota: los ejemplos que vayamos subiendo serán &#8220;autoejecutables&#8221;: no necesitarás definir un sitio en DW para poder seguirlos)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/485/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maquillar un Input file upload</title>
		<link>http://www.dwug.es/go/432</link>
		<comments>http://www.dwug.es/go/432#comments</comments>
		<pubDate>Sat, 10 May 2008 17:46:20 +0000</pubDate>
		<dc:creator>cmacias</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.dwug.es/go/432</guid>
		<description><![CDATA[Vamos a ver de que forma podemos maquillar los feos controles de upload de los formularios sin utilizar javascript y validando xhtml.

Lo que vamos a hacer es colocar un div en lugar del input_file, y este dentro del div de la siguiente manera





Aplicamos ahora una capa de maquillaje que lo deje irreconocible
div.upload {
   [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a ver de que forma podemos maquillar los feos controles de upload de los formularios sin utilizar javascript y validando xhtml.<br />
<span id="more-432"></span><br />
Lo que vamos a hacer es colocar un div en lugar del input_file, y este dentro del div de la siguiente manera<br />
<code>
<div class="upload">
<input type="file"  name="upload" />
</div>
<p></code><br />
Aplicamos ahora una capa de maquillaje que lo deje irreconocible<br />
<code>div.upload {<br />
   position: relative;<br />
   width: 80px;<br />
   height: 24px;<br />
   overflow:hidden;<br />
   background:url(btn_upload.png) left top no-repeat;<br />
   clip:rect(0px, 80px, 24px, 0px );<br />
}  </p>
<p>div.upload input {<br />
   position: absolute;<br />
   left: auto;<br />
   right: 0px;<br />
   top: 0px;<br />
   margin:0;<br />
   padding:0;<br />
   filter: Alpha(Opacity=0);<br />
   -moz-opacity: 0;<br />
   opacity: 0;<br />
}</code><br />
Qué es lo que hemos hecho ? Simplemente hacer transparente el input_file, y mediante la propiedad css &#8220;clip&#8221; evitamos que el control se salga de los límites del div.</p>
<p>Y para que su aspecto sea más profesional todavía, le añadimos al div una imagen como esta<br />
<img title="Botón upload" src="http://www.cmacias.com/wp-content/uploads/2008/10/btn_upload.png" alt="Botón upload" width="80" height="24" /></p>
<p>[ <a onclick="window.open('http://www.cmacias.com/wp-content/uploads/demos/file_upload/demo_upload.html','file_upload','width=200,height=150,left='+(screen.availWidth/2-100)+',top='+(screen.availHeight/2-75)+'');return false;" href="http://www.cmacias.com/wp-content/uploads/demos/file_upload/demo_upload.html">demo </a>] [ <a href="http://www.cmacias.com/wp-content/uploads/demos/file_upload/demo_upload.zip">descargar</a> ]<!--adb0922c6b6d21d5678912212fedcb73--><!--89271700dd5c4f48c33e97529d48d774--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/432/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Combinando tipos de media en un archivo</title>
		<link>http://www.dwug.es/go/419</link>
		<comments>http://www.dwug.es/go/419#comments</comments>
		<pubDate>Thu, 14 Feb 2008 09:42:59 +0000</pubDate>
		<dc:creator>Andres Cayon</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.dwug.es/go/419</guid>
		<description><![CDATA[Aunque lo más habitual es separar los estilos css en diferentes archivos para cada media (screen, print, handheld&#8230;), si éstos no son muy grandes podemos combinarlos todos en uno sólo, ahorrando peticiones al servidor y mejorando el rendimiento.

habitualmente, creamos la hojas de estilos y las enlazamos en nuestro documento asignando el atributo media según corresponda:


@import [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque lo más habitual es separar los estilos css en diferentes archivos para cada media (screen, print, handheld&#8230;), si éstos no son muy grandes podemos combinarlos todos en uno sólo, ahorrando peticiones al servidor y mejorando el rendimiento.<br />
<span id="more-419"></span></p>
<p>habitualmente, creamos la hojas de estilos y las enlazamos en nuestro documento asignando el atributo media según corresponda:</p>
<pre>
<style type="text/css" media="print">
@import url(hojaEstilosPrint.css);
</style>
<style type="text/css" media="screen">
@import url(hojaEstilosPantalla.css);
</style>
</pre>
<p>Lo que puede suceder es que los archivos sean tan pequeños que se necesite más tiempo para procesar la petición al servidor que en su descarga&#8230;</p>
<p>Sin embargo, existe la posibilidad de combnar ambos tipos en un sólo css, gracias a la regla @media. La sintaxis es muy sencilla:</p>
<pre>
@media tipoDeMedia{
   ... aqui van nuestras reglas...
}
</pre>
<p>Gracias a ello, podemos utilizar un solo archivo y escribir:</p>
<pre>
/*estilos.css*/
@media screen{
   #menu{
      float:left;
      width: 120px;
   }
}

@media print{
   #menu{
     display:none;
   }
}
</pre>
<p>Como siempre, todo depende de las necesidades: Puede ser una buena idea para archivos pequeños, pero puede complicar la edición de hojas de estilos demasiado grandes.<!--17e0dde488629f161809bf0e94c840c4--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/419/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imprimir con CSS: Mostrar las URLs</title>
		<link>http://www.dwug.es/go/335</link>
		<comments>http://www.dwug.es/go/335#comments</comments>
		<pubDate>Tue, 26 Sep 2006 21:57:39 +0000</pubDate>
		<dc:creator>Andres Cayon</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.dwug.es/go/335</guid>
		<description><![CDATA[En un documento normal no encontramos necesidad de mostrar las URLs de nuestros enlaces: El usuario simplemente pulsa sobre el mismo y automáticamente es dirigido a la página solicitada pero: ¿Qué sucede cuando imprimimos el documento?

Utilizar utilizar una hoja de estilos dedicada en exclusiva a dar formato al documento es cada vez una costumbre más [...]]]></description>
			<content:encoded><![CDATA[<p>En un documento normal no encontramos necesidad de mostrar las URLs de nuestros enlaces: El usuario simplemente pulsa sobre el mismo y automáticamente es dirigido a la página solicitada pero: ¿Qué sucede cuando imprimimos el documento?<br />
<span id="more-335"></span><br />
Utilizar utilizar una hoja de estilos dedicada en exclusiva a dar formato al documento es cada vez una costumbre más frecuente. Para ello, recordemos, sólamente es crear una hoja css y enlazarla a nuestro documento utilizando el atributo media=&#8221;print&#8221;:</p>
<pre>
<style type="text/css" media="print">
@import url(hojaEstilosPrint.css);
</style>
</pre>
<p>Mediante este método (el uso del atributo media=&#8221;print&#8221;) es sencillo aplicar un formato más amigable al documento a la hora de imprimirlo (ocultando menus, imágenes no deseadas&#8230;). Sin embargo, existe un pequeño problema: ¿Qué sucede con los enlaces?</p>
<p>En un documento impreso es imposible (por razones obvias) hacer click en un enlace para visitarlo: ¿Cómo podemos mostrar en la hoja impresa la URL del mismo? Una vez más, CSS tiene la respuesta.</p>
<p>Lamentablemente, IE6 no soporta el código que vamos a explicar pero, como mal menor, lo ignora sin provocar errores. En cambio, Mozilla Firefox la soporta sin problemas (y esperemos que IE7 haga lo mismo).</p>
<p><b>Los pseudoelementos</b><br />
Hasta ahora casi todos conocíamos 4 pseudoclases: link, hover, active y visited. Son la herramienta perfecta para la famosa pregunta de cambiar los colores de los enlaces.</p>
<p>Pero aparte de las pseudoclases, CSS también posee pseudoelementos. Sin entrar en cuestiones teóricas (lo importante aquí es saber utilizarlos), simplemente comentaremos que los pseudoelementos nos permiten tener acceso al contenido del arbol de elementos del documento (por ejemplo, los atributos de una etiqueta) y las pseudoclases nos permiten acceder a aquellas partes que no son visibles directamente en el código (por ejemplo, el estado del ratón sobre un elemento del documento).</p>
<p><b>:before y :after</b><br />
 Dentro de los pseudoelementos encontramos a nuestros protagonistas, que nos permitirán generar contenido delante o detrás del elemento al que se apliquen. Su compañero más habitrual es el atributo &#8216;content&#8217; y su uso es casi tan sencillo como el de las pseudoclases:</p>
<p>Si tenemos un documento como éste:</p>
<pre>
<html>
  <head>

  </head>
  <body>

Hola Mundo

  </body>
</html>
</pre>
<p>Podemos añadir texto por delante del mismo utilizando el pseudoelemento :before y el atributo content:</p>
<pre>
<html>
  <head>
<style type="text/css">
      p:before{content:"El navegador dice: ";}
    </style>

  </head>
  <body>

Hola Mundo

  </body>
</html>
</pre>
<p>Lo que nos devuelve en pantalla:</p>
<p>el navegador dice: Hola mundo</p>
<p>Como se puede ver hasta ahora, su uso es realmente sencillo (lástima que IE6 no lo soporte).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/335/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JerarquÃ­as en CSS</title>
		<link>http://www.dwug.es/go/228</link>
		<comments>http://www.dwug.es/go/228#comments</comments>
		<pubDate>Thu, 16 Jun 2005 07:55:12 +0000</pubDate>
		<dc:creator>Andres Cayon</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://beta.dwug.com/go/228</guid>
		<description><![CDATA[En ocasiones puede que nos encontremos con que, a pesar de haber definido correctamente un estilo, éste parezca no funcionar y no aplicarse al elemento. Puede que sea momento de comprobar si estamos ante un conflicto de jerarquias en CSS.
Aprovechando la jerarquía de estilos en CSS y conociendo cómo funciona, podremos evitar conflictos que nos [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones puede que nos encontremos con que, a pesar de haber definido correctamente un estilo, éste parezca no funcionar y no aplicarse al elemento. Puede que sea momento de comprobar si estamos ante un conflicto de jerarquias en CSS.<span id="more-228"></span>
<p>Aprovechando la jerarquía de estilos en CSS y conociendo cómo funciona, podremos evitar conflictos que nos pueden parecer un error e incluso evitar valores aplicables por herencia. Veamos algunos ejemplos de reglas. </p>
<p>En una situacion normal, podemos tener un codigo CSS como este:</p>
<pre>
<style type=?text/css?>
    /*EJEMPLO 1*/
    .parrafo{
    color:#000000;
    font-size:12px;
    }
</style>
<p class=?parrafo?>Esto es un texto del parrafo
</pre>
<p>Lógicamente, el texto se mostrará simplemente en color negro y 12 pixeles.</p>
<p>Vamos a añadir algo más:</p>
<pre>
<style type=?text/css?>
/*EJEMPLO 2*/
    p{
    color:#FF0000;
    font-size:20px;
    }
    .parrafo{
    color:#000000;
    font-size:12px;
    }
</style>
<p class=?parrafo?>Esto es un texto del parrafo
</pre>
<p>Veremos el parrafo en negro y 12 pixeles, ya que el estilo .parrafo tiene preferencia sobre &#8216;p&#8217; (aunque parezca una obviedad, en seguida veremos la explicación teórica de por qué es así). El resultado es:<br />
<img height="270" src="http://www.dwug.es/images/111/imagen1.gif" width="288" border="1"/></p>
<p>Pero hagamos un pequeño cambio:</p>
<pre>
<style type=?text/css?>
    /*EJEMPLO 3*/
    #contenido p{
    color:#FF0000;
    font-size:20px;
    }
    .parrafo{
    color:#000000;
    font-size:12px;
    }
</style>
<div id=?contenido?>

Esto es un parrafo
<p class="parrafo">Esto es otro parrafo
</div>
</pre>
<p>Curiosamente, en esta ocasión también veremos el segundo parrafo en rojo y a un tamaño de 20 pixeles (pese a aplicarle class=&#8221;parrafo&#8221;):<br />
<img height="306" src="http://www.dwug.es/images/111/imagen2.gif" width="288" border="1"/></p>
<p>?Dónde está el problema? Básicamente en el concepto de jerarquía a la hora de resolver conflictos. Esta jerarquía depende de 2 ideas:</p>
<ul>
<li><strong>Especifidad</strong></li>
<li><strong>Lugar y orden de definición.</strong></li>
</ul>
<p>La especifidad implica que cuando un elemento se vea afectado por dos o más reglas y exista conflicto entre sus declaraciones tendrán preferencia las de la regla más específica.</p>
<p>Esta especifidad conlleva una jerarquia en los tipos de regla utilizada:</p>
<ol>
<li>Los id tienen preferencia sobre las clases y las etiquetas</li>
<li><strong>Las clases tienen preferencia sobre las etiquetas</strong></li>
<li><strong>En cualquier caso, los estilos definidos dentro de la etiqueta me diante el atributo &#8220;style&#8221; (inline) tienen preferencia sobre las reglas declaradas en el encabezado del documemto (embedded) y éstas sobre las definidas en un archivo css externo (linked, enlazado con @import)</strong></li>
<li><strong>En caso de empate, tiene preferncia la última regla definida </strong></li>
</ol>
<p>Si recordamos el segundo ejemplo:</p>
<pre>
<style type=?text/css?>
p{
color:#FF0000;
font-size:20px;
}
.parrafo{
 /*sobreescribe a p en caso de conflicto entre reglas*/
color:#000000;
font-size:12px;
}
</style>
</pre>
<p>Veremos que la clase sobreescribe la etiqueta (a causa del punto 2: ). </p>
<p>El ejemplo 3 (&#8216;#contenido p&#8217; frente a &#8216;.parrafo&#8217;) puede ser un poco menos evidente, pero existe una forma sencilla de calcular, en caso de conflicto, qué regla tiene preferencia sobre otra (no es 100% eficaz, pero sí lo es al 99%):</p>
<p>La formula es la siguiente:<br />
<strong>(Numero de id&#8217;s en el selector x 100)+(numero de clases en el selector x 10)+(numero de etiquetas en el selector)</strong></p>
<p>Por tanto, en el tercer ejemplo, la operacion resultante es:</p>
<ul>
<li>#contenido p = 101</li>
<li>.parrafo = 10</li>
</ul>
<p>Y por ello la primera regla tiene preferencia. Recordando de nuevo el ejemplo 2:</p>
<ul>
<li>p=1</li>
<li>.parrafo=10
</li>
</ul>
<p>¿Como podemos superarlo? Si hubieramos definido las reglas como:</p>
<pre>
<style type=?text/css?>
/*EJEMPLO 4*/
#contenido p{
color:#FF0000;
font-size:20px;
}

#contenido p.parrafo{
color:#000000;
font-size:12px;
}
</style>
</pre>
<p>El resultado del cálculo será:</p>
<ul>
<li>#contenido p= 101</li>
<li>#contenido p.parrafo = 111</li>
</ul>
<p><img height="316" src="http://www.dwug.es/images/111/imagen3.gif" width="226" border="1"/></p>
<p>Conseguir?amos para #contenido p.parrafo un peso de 111, por lo que adquiere preferencia sobre #parrafo a secas (peso=100), utilizando por tanto el color negro y 12 px.El resto del bloque div conservar?a el estilo de #parrafo p.</p>
<p>Es decir, a trav??s de una mayor especifidad podemos evitar problemas </p>
<p>Aparte de utilizar una mayor especifidad para resolver este tipo de conflictos, existe otra solución, no tan recomendable, pero sí eficaz: El valor <strong>!important</strong>, que tiene preferencia sobre cualquier regla existente (por eso conviene utilizarla con precaución).:</p>
<p>Con !important escrito detr?s de un valor podemos sobreescribir cualquier otro que en principio tendr?a preferencia:</p>
<pre>
<style type="?text/css"?>
/*EJEMPLO 5*/
#contenido{
color:#FF0000;
font-size:20px;
}

.parrafo{
color:#000000 !important;
font-size:12px !important;
}
</style>
<div id="contenido">
<p class="parrafo">texto
</div>
</pre>
<p>El resultado es:<br />
<img height="310" src="http://www.dwug.es/images/111/imagen4.gif" width="224" border="1"/></p>
<p>Y por último, un ejemplo de cómo el lugar donde se defina la regla influye en su jerarquía (punto 3): Hemos definido una clase .parrafo, la hemos aplicado a una etiqueta </p>
<p> y hemos añadido a ésta un estilo interno (inline):</p>
<pre>
<style type=?text/css?>
/*EJEMPLO 6*/
.parrafo{
color:#000000;
font-size:12px;
}
</style>
<p class="parrafo" style="font-size:20px">texto
</pre>
<p>El resultado es éste (style sobreescribe a la clase para el conflicto en el tamaño de fuente):<br />
<img height="194" src="http://www.dwug.es/images/111/imagen5.gif" width="360" border="1"/></p>
<p><!--44c52759ab8a5643c3ace894a794a7b1--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dwug.es/go/228/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
