Estoy haciendo una lista horizontal para maquetar este diseño:
Lo hago con la siguiente estructura HTML:
Código:
El código CSS.<ul class="supnav"> <li class="lisusc">Suscripción:</li> <li class="lirss"><a href ="#">RSS</a></li> <li class="liface"><a href="#">Facebook</a></li> <li class="litwit"><a href="#">Twitter</a></li> </ul>
Defino la caja principal:
Código:
Como ven, de alto serán 18px + 5px arriba + 5px abajo = 28pxul.supnav{ width: 940px; height: 18px; background-color: #ececec; padding: 5px; overflow: hidden; }
Pongo el divisor principal en los elementos de la lista como background:
Código:
Como ven, quedará el divisor a la derecha y después de este, un margen de 5px..supnav li{ float: left; font-size: 13px; margin-right: 5px; background: url(images/supnav-div.gif) repeat-y 100% 0; }
Para poner los iconos, defino el background de cada enlace por separado:
Código:
Y ya sólo me queda darle los padding en los enlaces:.supnav li.lisusc{ padding-right: 10px; color: #585E66; } .supnav li.lirss a{ background: url(images/rss.gif) no-repeat 0px; } .supnav li.liface a{ background: url(images/facebook.gif) no-repeat 0px; } .supnav li.litwit a{ background: url(images/twitter.gif) no-repeat 0px; }
Código:
El problema está en que con Firefox, por ejemplo, los iconos quedan 1px por debajo..supnav li a{ padding: 0px 15px 2px 25px; color: #585e66; }
Luego hay un problema secundario, y es que los divisores verticales tienen 1px menos. En lugar de 18px hacen 17px.
Ejemplos de como me queda:
- En Firefox, iconos 1px por debajo:
- En Chrome (y también Firefox), divisor con 1px menos de alto:
Creo que el problema podría ser en que el fondo del texto (que es de 13px) está cortando las imágenes de fondo.
¿Hay algún modo de definir el alto de fondo de un texto? No encuentro nada.
Muchas gracias de antemano.