CSSLab » CSS http://www.csslab.cl Un laboratorio de ideas para la web en español Thu, 12 Jan 2012 02:32:35 +0000 en hourly 1 http://wordpress.org/?v= Outlinr: a bookmarklet http://www.csslab.cl/2011/12/06/outlinr-a-bookmarklet/ http://www.csslab.cl/2011/12/06/outlinr-a-bookmarklet/#comments Tue, 06 Dec 2011 15:43:21 +0000 Jorge Epuñan http://www.csslab.cl/?p=899 Outlinr: web inspector para los pobres / web inspector for the poors

Selecciona tu idioma / Select your language:

EN

Frequently on my debugging stage (when I need to solve something within the HTML/CSS markup that is causing some conflict) I use the CSS outline property to contour the HTML elements so as I can visually locate where the elements are positioned, if they’re collapsing, which elements are involving, etc. I use outline because it’s a property that does not modify the box model and won’t going to break more elements that are already working fine. If I use border instead, it will add 1 or 2 px to the box and can add more unnecessary problems. In addition, I use the red color not only because it’s strongly visible, but it’s fastest writing on the keyboard (lazy huh?).

Anyway, that was the introduction. I made this bookmarklet that does the job for me directly on the browser, so I don’t add dirt to my stylesheet or to the HTML file. I could use the web inspector from the browser (or Firebug) but this method is quicker. The bookmarklet asks you for which selector to draw (div is by default but it could be any selector from jQuery sentences) and the color (red is the default but it can be blue, green, #f60, etc).

I hope it can be useful for somebody else than me.

Requirement: you have to be connected to the Internet, it calls jQuery from Google API’s.

ES

Frecuentemente en mi etapa de debugging (cuando necesito solucionar algo dentro del marcado HTML/CSS que estuviera provocando algún conflicto) utilizo la propiedad CSS outline para contornar los elementos HTML y ver dónde están ubicados, si están colapsando, qué elementos envuelve, etc. Utilizo outline porque es una propiedad que no influye en el modelo de caja y no va a hacer que se quiebren los elementos que ya sé que están correctamente posicionados. Si utilizara border le agregaría mínimo 1 ó 2 pixeles a la caja y seguro provocaría un problema más del que estoy tratando de resolver. Además, utilizo el color rojo no porque es uno de los colores más fuertes y menos comunes dentro de un layout, sino que es el más rápido de escribir (en inglés) dentro del CSS. Me acostumbré.

Enfin, esa fue la introducción. Hice un bookmarklet que hace ese trabajo por mí directo en el browser, sin tener que ensuciar mi hoja de estilos y menos el HTML. Podría utilizar el web inspector del browserFirebug) pero este método es más rápido. El bookmarklet te pregunta qué selectores dibujar (por defecto es div pero puedes utilizar cualquier selector mediante las sentencias de jQuery) y además del color (por defecto es red pero puedes utilizar blue, green, #f60, etc).

Espero pueda ser útil a alguien más que a mí.

Requisito: tienes que estar conectado a Internet ya que llama a jQuery desde Google API’s.

 

Outlinr ← click&drag

 

How to install a bookmarklet / Cómo instalar un bookmarklet

Uso de Bookmarklets

]]>
http://www.csslab.cl/2011/12/06/outlinr-a-bookmarklet/feed/ 4
bottom que no se va al bottom http://www.csslab.cl/2011/05/24/bottom-que-no-se-va-al-bottom/ http://www.csslab.cl/2011/05/24/bottom-que-no-se-va-al-bottom/#comments Tue, 24 May 2011 23:07:58 +0000 Jorge Epuñan http://www.csslab.cl/?p=745 Este es un fix corto y preciso. En browsers modernos (¡sí, tal como leíste esto no afecta IE6 ni IE7!) la propiedad background-position no funciona como uno espera.

La condición dice:


Si quieres poner una imagen como fondo del <body> y posicionarla abajo de la ventana del browser (background-position: bottom) y el contenido de tu sitio no llega hasta el fondo de la ventana, la imagen de fondo llegará sólo hasta donde llegue el contenido.

Ver ejemplo 1

Para solucionarlo, basta con definir:

html {
   height: 100%;
}

Ver ejemplo 2

Ahora, esta solución es útil cuando sabes que el contenido es y será menor al alto de la ventana; si tu contenido es dinámico es mejor que utilices min-height:

html {
   min-height: 100%;
}

Ver ejemplo 3

Gracias a inyaka por hacerlo notar.

]]>
http://www.csslab.cl/2011/05/24/bottom-que-no-se-va-al-bottom/feed/ 11
Displayfix: lo último en clearfix http://www.csslab.cl/2011/03/17/displayfix-lo-ultimo-en-clearfix/ http://www.csslab.cl/2011/03/17/displayfix-lo-ultimo-en-clearfix/#comments Thu, 17 Mar 2011 15:11:53 +0000 Jorge Epuñan http://www.csslab.cl/?p=723 Han pasado 5 años desde el primer artículo donde describí exhaustivamente la causa y solución más común de clearfix. Y me asombra que sigan apareciendo soluciones diferentes e innovadoras a este problema que es transversal a todos los browsers. En este artículo, muestro y demuestro el más simple (pero no versátil) de los que existen en el mercado.

Dado un contenedor que contiene uno o más elementos flotando en su interior, siempre y cuando puedas definir un ancho fijo:

#container {
   width: 600px;
   display: inline-block;
}
   .floto {
      float: left;
   }

Ver ejemplo

Este método se comporta bien cuando el ancho de los elementos interiores que están flotando es menor que el del padre; las cosas comienzan a complicarse cuando aumentan:

Ver ejemplo 2

Para contrarrestarlo, define también ancho fijo en los elementos flotantes:

#container {
   width: 600px;
   display: inline-block;
}
   .floto {
      width: 280px;
      float: left;
   }

Ver ejemplo 3

Nada es perfecto… es un método más.

]]>
http://www.csslab.cl/2011/03/17/displayfix-lo-ultimo-en-clearfix/feed/ 6
Tip Precoz 7: resize textarea http://www.csslab.cl/2010/07/19/tip-precoz-7-resize-textarea/ http://www.csslab.cl/2010/07/19/tip-precoz-7-resize-textarea/#comments Mon, 19 Jul 2010 17:24:08 +0000 Jorge Epuñan http://www.csslab.cl/?p=601 Si usas seguido Safari ó Chrome, habrás notado que estos browsers permiten -por defecto- que el <textarea> sea redimensionado por el usuario a través del arrastre en el rincón inferior-derecho. Esta es una propiedad de WebKit de accesibilidad que puede perjudicar el layout de nuestro lindo formulario.

Para quitarlo, basta declarar en CSS:

textarea {
	resize: none;
}

Ver ejemplo
(En Safari-Chrome)

]]>
http://www.csslab.cl/2010/07/19/tip-precoz-7-resize-textarea/feed/ 12
¿Con o sin comillas? http://www.csslab.cl/2010/07/07/con-o-sin-comillas/ http://www.csslab.cl/2010/07/07/con-o-sin-comillas/#comments Wed, 07 Jul 2010 16:04:47 +0000 Jorge Epuñan http://www.csslab.cl/?p=590 CSSLab: ¿Con o sin comillas?

Al declarar algunos valores en propiedades CSS como background-image, usualmente se permite poner o no el valor entre comillas dobles "" ó simples . Si escribes el código a mano, no las utilizas. Si usas algún editor, quizas las agrega. Pero ¿se debe o no poner comillas?

Esta pregunta que ha intrigado al hombre por años no tiene una respuesta definitiva. Por lo menos no la he encontrado de manos de la W3C, pero sí el uso de comillas en ciertas declaraciones tiene sentido:

… single quotes (‘), and double quotes (") must come in matching pairs …

Primero, no dice que deben ser utilizadas. Segundo, dice que si las utilizas, deben estar en par (si abres con comilla simple cierra con simple, etc.). Pero:

Inside the quotes, characters are parsed as a string.

Esto es lo importante. Si utilizas las comillas simples o dobles, el valor se pasa como string. Un ejemplo práctico y descuidado: si tienes una imagen con espacios en su nombre:

background: url('back ground.png')

Si utilizas comillas en su declaración la imagen se mostrará:

Ver ejemplo con comillas

Si no la utilizas, el browser no encontrará la imagen:

Ver ejemplo sin comillas

Este comportamiento es independiente del doctype que estés utilizando. Yo las uso.

Link:

]]>
http://www.csslab.cl/2010/07/07/con-o-sin-comillas/feed/ 6
CSS Reseter v2 http://www.csslab.cl/2010/06/01/css-reseter-v2/ http://www.csslab.cl/2010/06/01/css-reseter-v2/#comments Tue, 01 Jun 2010 21:45:53 +0000 Jorge Epuñan http://www.csslab.cl/?p=551 Inaugurando el rediseño de este sitio, orientado completamente hacia los nuevos estándares que espero algún día pronto sea aprobado y (bien) aplicado por los fabricantes de browsers, he mejorado la versión de mi ya fiel CSS Reseter que tanto me ha ayudado en innumerables proyectos.

Para esta nueva versión, he agregado las nuevas etiquetas que conforman HTML 5 para elementos de tipo bloque (las que son inline no las necesitan) y aproveché de realizar las siguientes mejoras en lo existente:

  • Soporte para nuevas etiquetas HTML 5
  • Mejor reset para campos de formularios
  • Mejoras para listas ordenadas (<ol>) y tablas (<table>)

Ya está activo en este nuevo sitio, y espero sea aprovechado y de mucha ayuda en sus proyectos. La idea, como saben, es simplificar el codificado mediante el reset de estilos que traen por defecto los navegadores web.

Bajar hoja de estilo (.zip)

]]>
http://www.csslab.cl/2010/06/01/css-reseter-v2/feed/ 10
Videocast 4: formulario http://www.csslab.cl/2010/04/08/videocast-4-formulario/ http://www.csslab.cl/2010/04/08/videocast-4-formulario/#comments Thu, 08 Apr 2010 15:09:23 +0000 Jorge Epuñan http://www.csslab.cl/?p=533 Tenía hace unos meses preparado un nuevo videocast para ayudar a quienes están aprendiendo a maquetar en HTML+CSS a realizarlo con campos de formularios. Lejos es lo más complicado que me ha tocado perfeccionar, pero se trata principalmente de practicar y de realizar la mayor cantidad de variaciones posibles para lograr un buen manejo de las etiquetas y conocer cómo se comportan en los diferentes browsers. A modo de ejemplo, la siguiente imagen grafica un mismo archivo HTML con diferentes tipos de <input /> con diferentes estilos en diferentes browsers:

Diferencias de input entre browsers - CSSLab.cl

En esta ocasión el layout es bastante simple, uno típico que encontrarás en cualquier sistema de comentarios para blogs. Pero es un buen puntapié para que veas de qué se trata esto. Además, contiene las etiquetas fundamentales y más utilizadas para capturar datos de usuarios.

Videocast 4 versión stream
Videocast 4 versión completa

Espero sea de ayuda y que se entienda, como siempre lo muestro en 2 formatos: streaming para web y uno en alta calidad para que lo bajes y estudies offline. Además, puedes descargar el material utilizado para este videocast.

]]>
http://www.csslab.cl/2010/04/08/videocast-4-formulario/feed/ 7
Entendiendo vertical-align http://www.csslab.cl/2009/05/18/entendiendo-vertical-align/ http://www.csslab.cl/2009/05/18/entendiendo-vertical-align/#comments Mon, 18 May 2009 16:09:45 +0000 Jorge Epuñan http://www.csslab.cl/?p=422 Como muchos deben ya saber, es un tremendo lío alinear verticalmente un elemento HTML mediante CSS estándar; de hecho una de las razones de que aún personas siguen utilizando tablas para estructurar sitios: precisamente porque las celdas hacen este alineado horizontal y vertical tan fácil, mediante los atributos align="" y valign="". Pero utilizando web standards es otra cosa, una dimensión aún perturbante y siendo franco, algo complicada de entender y llevar a la práctica.

CSS tiene una ‘obscura’ propiedad llamada vertical-align. Lo obscuro se debe a que es confuso su entendimiento, y por ende su uso. Para ayudar a aclarar eso, este artículo lo atacará por dos ámbitos más que necesarios: alineado de elementos de formulario y de imágenes.

Vertical-align tiene uso principalmente en etiquetas que son por esencia de tipo inline. Si tratas de utilizar esta propiedad en un <div> por ejemplo, o en un <p> quizás es por eso que te hayas frustrado ya que estos elementos son de tipo block. Cuando vertical-align es definido para elementos inline, se comporta como el antiguo y obsoleto atributo valign="". Tomando este principio, su uso en imágenes junto a texto se ven resultados concretos:

Ver ejemplo 1

Los valores de vertical-align son:

  • baseline: valor por defecto, el elemento es ubicado en la base del elemento padre.
    vertical-align: baseline
  • sub: alinea el elemento como si fuera subescrito (<sub>).
    vertical-align: sub
  • super: alinea el elemento como si fuera sobrescrito (<sup>).
    vertical-align: super
  • top: la parte superior del elemento es alineado con la parte superior del elemento en la misma línea.
  • text-top: la parte superior del elemento es alineada con la parte superior del padre de los elementos de texto.
    vertical-align: text-top
  • middle: el más interesante; el elemento es ubicado en la mitad del elemento padre.
    vertical-align: middle
  • bottom: también interesante; la parte inferior del elemento es alineado con la parte más baja de la línea.
  • text-bottom: la parte inferior del elemento es alineada con la parte inferior del padre de los elementos de texto.
    vertical-align: text-bottom
  • %: alínea el elemento en valores porcentuales de la propiedad line-height (se permiten valores negativos).

Otro importante uso de esta propiedad es con etiquetas de formulario, principalmente cuando queremos alinear los nombres de los campos (generalmente envueltos en <label></label>) a los campos de formulario. En el siguiente ejemplo muestro sus usos con campo de tipo texto:

Ver ejemplo 2

Como décadas pasadas, esta propiedad también puede ser utilizada en reemplazo del atributo para celdas de tablas, bajo los mismos valores. Como las celdas por defecto tienen vertical-align: middle definidos, puedes utilizar los otros valores para lograr lo que necesites.

¿Milagrosa? Bueno, suena bien hasta ahora pero está lejos de ser la solución definitiva, ya que IE6 e IE7 soporta esta propiedad a su manera, como siempre.

vertical-align entre browsers

Links

]]>
http://www.csslab.cl/2009/05/18/entendiendo-vertical-align/feed/ 12
Floatfix: un nuevo clearfix http://www.csslab.cl/2008/12/01/floatfix-un-nuevo-clearfix/ http://www.csslab.cl/2008/12/01/floatfix-un-nuevo-clearfix/#comments Mon, 01 Dec 2008 21:05:26 +0000 Jorge Epuñan http://www.csslab.cl/?p=338 Ya es lunes, llego a revisar mis 600 RSS‘s que me esperan acumulados por el fin de semana y me quedo con un artículo que me llama la atención. Lo leo, lo analizo, lo pongo en práctica y ¡Zaz! Un nuevo paradigma se forma.

Por todos es conocido y utilizado Clearfix; luego les comenté sobre Clearfix Ultimate (bautizado por mí) y que me ha sido de gran utilidad desde entonces. Esta vez, les traigo uno nuevo: Floatfix (nuevamente bautizado así por mí). Con este método, superas el colapso del contenedor a causa de elementos bloque flotantes dentro de él utilizando la propiedad CSS… ¡float!

¿Float para arreglar otros floats?

Así es, si tu elemento caja que contiene otros elementos que están flotando colapsa, pues simplemente flótalo y todo volverá a la normalidad.

Volveré a explicar el asunto. Miren en el siguiente ejemplo como #container contiene (valga la redundancia) a 2 elementos que están flotando. Bueno, basta con que sea 1 y ya #container estaría colapsando (no los envuelve).

Ver ejemplo 1

SafariFirefoxOperaInternet Explorer 6Internet Explorer 7
#container {
     margin: 40px;
}
.flout {
     float: left;
}

Bueno, si utilizan .clearfix todo volvería a la normalidad; si tienen ancho fijo en el #container y agregan overflow: hidden también todo estaría normal, pero en vez de eso, sólo floten el #container a cualquier lado: left o right:

Ver ejemplo 2

#container {
     margin: 40px;
     float: left;
}
.flout {
     float: left;
}

Así de simple y de contradictorio. Funciona en todos mis browsers de pruebas y claro tiene sus pros y contras. Pero depende de cada uno manejar la mejor solución a sus problemas. Este es sólo uno más.

Link:

]]>
http://www.csslab.cl/2008/12/01/floatfix-un-nuevo-clearfix/feed/ 9
Menú con tabs con CSS, jQuery y Mootools http://www.csslab.cl/2008/10/23/menu-con-tabs-con-css-jquery-y-mootools/ http://www.csslab.cl/2008/10/23/menu-con-tabs-con-css-jquery-y-mootools/#comments Thu, 23 Oct 2008 20:27:16 +0000 Jorge Epuñan http://www.csslab.cl/2008/10/23/menu-con-tabs-con-css-jquery-y-mootools/ Esos menúes tipo tabs ó con subniveles tanto horizontales como verticales, son muy útiles al momento de desplegar grandes cantidades de navegación sin ser invasivos con el espacio. Puedes arquitecturar toda la estructura de tu sitio de manera tal que el usuario pueda encontrar fácilmente la información que desee, sólo con ir descubriendo con el mouse las subsecciones que están contenidas dentro del árbol general de navegación.

SafariFirefoxOperaInternet Explorer 6Internet Explorer 7

Por suerte hacer estos tipos de menúes es bastante fácil: basta con tener claro cómo funcionan los menúes con listas e ir anidando unas dentro de otras; incluso sólo con CSS es suficiente para hacerla funcionar, pero lamentablemente el peor browser de la historia universal (IE6) no soporta pseudo-classes en selectores que no sean links (<a>). Así que lo mejor y que más soporte cross-browser nos entrega es utilizar Javascript en este proceso. Y qué mejor que utilizar jQuery ó Mootools, 2 de los frameworks con los que me gusta jugar.

En este artículo veremos el proceso para crear un menú con tabs y cómo hacerlo funcionar mediante CSS y con la ayuda de Javascript.

Como mencionaba, un menú con tabs se compone básicamente de listas anidadas sobre otras listas. El HTML sería el siguiente:

<ul id="menu">
  <li><a href="#">Uno</a></li>
  <li class="cabeza"><a href="#">Dos</a>
     <ul>
        <li><a href="#">Dos.Uno</a></li>
        <li><a href="#">Dos.Dos</a></li>
        <li><a href="#">Dos.Tres</a></li>
     </ul>
  </li>
  <li><a href="#">Tres</a></li>
  <li class="cabeza"><a href="#">Cuatro</a>
     <ul>
        <li><a href="#">Cuatro.Uno</a></li>
        <li><a href="#">Cuatro.Dos</a></li>
     </ul>
  </li>
</ul>

Ver ejemplo del HTML

Si el mundo fuera hermoso y no existiera IE6, nos bastaría con un poco de CSS y selectores avanzados de atributos para hacerlo funcionar:

ul {
  list-style: none;
}
  ul li {
    float: left;
    width: 100px;
    text-align: center;
  }
    li.cabeza>ul {
      display: none;
    }
      li.cabeza:hover>ul {
        display: block;
      }

Ver ejemplo con CSS

Para mejorar el manejo del despliegue de los subniveles, le coloqué una class="cabeza" a cada elemento de lista (<li>) que contenga cada nuevo subnivel. Ahora es más fácil diferenciarlas con CSS ó Javascript, como mostraré a continuación. Primero, con jQuery:

$(document).ready(function(){
  // primero escondemos todos los subniveles
  $('li.cabeza > ul').hide();
  // luego le agregamos el evento de mouseover y mouseout mediante hover de jQuery
  $('li.cabeza').hover(
    function() {
      $('ul', this).show();
    },
    function() {
      $('ul', this).hide();
  }); });

Ver ejemplo jQuery

Muy simple. Ahora, con Mootools (1.11):

window.addEvent('domready', function() { 
  // creamos una variable 'list' que será el selector <li> con class="cabeza", ya que la usaremos más de una vez.
  var list = $$('li.cabeza'); 
  // luego escondemos cada <ul> que esté contenido dentro de li.cabeza mediante display: none
  list.getElement('ul').setStyle('display', 'none');
  // ahora agregamos los eventos de mouseenter y mouseout respectivos
  list.each(function(el) {
    el.addEvent('mouseenter', function(){
      $(this).getElement('ul').setStyle('display', 'block');
    });
    el.addEvent('mouseleave', function(){
      $(this).getElement('ul').setStyle('display', 'none');
    });
  }); 
});

Ver ejemplo Mootools

Finalmente si usas un browser bueno, cualquier de los 3 métodos funcionará igual; viene de ti implementarlo de la mejor forma para que tus usuarios que aún usen IE6 para visitar tu sitio puedan disfrutar de una buena navegación y del contenido que ofrece.

]]>
http://www.csslab.cl/2008/10/23/menu-con-tabs-con-css-jquery-y-mootools/feed/ 13
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| viagrea onling viagra tablets name and cost levitra and dapoxetine youtube/viagra cialis extra generic viagra accepting american express buy generic viagra online with no prescription with mastercard generic levitra 20 mg levitra pro buy viagra online in ireland is it illegal to order viagra from outside the united states cheapest generic cialis buy cheap levitra overnight delivery cialis wears off airport security generic viagra generic finasteride viagra for sale using paypal ukAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription