CSS Tricks frontera con cajas colapsadas
08 de marzo 2011 a las 3:23 pm por Thierry Koblentz | En CSS 101 , Diseño , Desarrollo | 8 Comentarios Estos trucos te ayudarán a lograr los diseños sin necesidad de recurrir al uso de imágenes, el gradiente de CSS3 o marcas extrañas. Por el colapso de las cajas con cero line-height y height los valores, se puede mostrar el contenido fuera de la caja de contenido, a lo largo de las fronteras.
Bi-color de fondo
Este ejemplo no incluye Internet Explorer 7.6 soluciones (ver el código fuente de esta página de demostración para los arreglos de IE).
.parent { display:inline-block; text-align: center; border: 1px solid #cecece; } .child { display:inline-block; line-height: 0; height: 0; border-top: 1em solid #ffc; border-bottom: 1em solid #fdcf46; padding:0 .6em; vertical-align:bottom; } <ul id="menuBar-A"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> Los puntos y las tuberías entre elementos de la lista
En este ejemplo se muestra correctamente en navegadores IE después de algunas correcciones de simple.
ul.one, ul.two { margin-left:0; display:inline-block; *display:inline; zoom:1; height:12px; line-height:12px; padding:0; } li { float:left; display:inline; height:2px; line-height:2px; position:relative; top:.3em; } ul.two {border-left:1px solid #333;} ul.one li {border-left:2px solid #333;} ul.two li {border-right:2px solid #333;} ul.one li.first-child, ul.two li.last-child { border:0; } a { color:#000; padding:.4em .9em; *position:relative; } <div id="menuBar-B"> <ul class="us"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> </ul> <ul class="ourOffer"> <li class="services"><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> </div> Triángulos izquierdo y derecho de puntero
Este ejemplo no incluye Internet Explorer 7.6 soluciones (ver el código fuente de esta página de demostración para los arreglos de IE).
#box { line-height: 0; height: 0; border: .4em solid transparent; border-left-color: #333; border-right-color: #333; padding: 0 .3em; display: inline-block; } <ul id="menuBar-C"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> IE 6 y la transparencia de la frontera
IE 6 no es compatible con la palabra clave " transparent "para el color del borde. Cuando se utiliza este valor, es decir 6 dibuja un borde negro.
La solución a esto es utilizar el filtro de croma que muestra un color específico del contenido del objeto de la mayor transparencia. Por ejemplo, para crear una flecha hacia la derecha señalando que puede utilizar esta regla:
#Box { height: 0; width: 0; border: 10px solid transparent; font-size: 0; _border-color: pink; _filter: chroma(color="pink"); border-left-color: #333; } La declaración de font-size es otra solución para IE 6. Es para asegurarse de que este navegador no aumentar la altura de la caja.
Parar las prensas que acabo de aprender un nuevo truco (gracias Chungho Fang)!
La magia [para crear transparencia en la frontera IE] es establecer 'border-style' a cualquiera de guiones o de puntos
Eso es todo! Esto es sólo una forma más de utilizar los bordes para lograr la imagen-less.
Para leer más
Compartir y ampliar: Marcar con del.icio.us | Digg it! | reddit!
8 Comentarios »
RSS feed para los comentarios de esta entrada.
Deja un comentario

Copyright © 2006-2011 Yahoo! Inc. Todos los derechos reservados. Política de privacidad - Condiciones del servicio
Desarrollado por WordPress en Yahoo! Web Hosting .


Genial! Pero ¿qué pasa con Opera?
Comentario por Cuprum - 09 de marzo 2011 #
@ Cuprum
Opera parece perder el texto. Poniendo por encima de la caja de contenido si el line-height se establece en 0 o por debajo si el line-height no es llevado a cero.
Alguien debe presentar un error ;-)
Como nota al margen, a menudo puede hacer que las cosas funcionen en todos los navegadores (incluyendo IE6), pero me golpeó una pared con Opera.
Este navegador es realmente un dolor. Tiene problemas, pero no se puede arreglar como lo hacemos con IE6 / 7 (ya que no pueden dirigirse a las versiones). Además de eso, no tiene cuota de mercado es así, ¿por qué debemos perder el tiempo?
Gracias por su colaboración
Comentario por Thierry Koblentz - 09 de marzo 2011 #
Parece que Opera no le gusta el cero line-height. Me sustituyó un line-height de 0,1, que parece solucionar Opera. AFAICT esto sólo afecta a Internet Explorer 8, que es más fácil de corregir que Opera, me parece.
Cordialmente, David
Comentario por David Hucklesby - 14 de marzo 2011 #
Hola David,
Eso es un gran descubrimiento, muchas gracias por compartir.
Comentario por Thierry Koblentz - 15 de marzo 2011 #
Buen post, pero dejar de fijación para IE6.
Comentario por Mike - 16 de marzo 2011 #
Hola David,
¿Qué significa esto de la construcción (de su clase ul.two):
display: inline-block;
* Display: inline;
Tengo curiosidad por la palabra clave estrella ... ¡Gracias!
Comentario por Pablo - 17 de marzo 2011 #
Hola Pablo,
En estas reglas, hay dos diferentes filtros de CSS (hacks CSS), uno se llama el hack de estrellas, el otro se llama el subrayado hackear propiedad.
Ellos trabajan de esta manera:
*property:value; /* IE5/6/7 see this */
_property:value; /* IE5/6 see this */
Si los ponemos en este orden es para asegurarse de que la segunda declaración sobrescribe el valor dado a IE7.
Usted podría intentar lo siguiente:
color:blue; /* blue in all browsers */
*color:yellow; /* switching to yellow for IE less than 8 */
_color:green; /* switching to green for IE less than 7 */
Tenga en cuenta que estos ataques son confiables, pero el validador de CSS se les marca como errores (porque esto no es propio de la sintaxis de CSS).
Comentario por Thierry Koblentz - 17 de marzo 2011 #
He encontrado un fallo de renderizado con triángulos CSS que no he encontrado en otra parte. Firefox 4 en XP se extraña.
Aquí hay una demo: http://zevbrokeit.posterous.com/nubs-problem
¿Tiene alguna sugerencia?
Comentario por Zev Goldberg - 24 de marzo 2011 #