IE8 e IE9: before e: after elementos posição absoluta estão escondidos
Eu estou tentando criar um botão com "caps" em cada extremidade e um fundo de repetição, a fim de manter o botão um tamanho flexível.
Para fazer isso, usei o:before
e:after
pseudo-elementos em CSS, junto composition:absolute
para obtê-lo fora do espaço coberto pelo fundo do botão principal (usando valores negativos).
Ele funciona em FF e Chrome, mas parece que no IE8 e 9, as imagens estão lá, mas estão "fora" do botão e, portanto, estão ocultas. Alguém sabe como colocar esses pseudo-elementos "fora" do botão, para que eles possam renderizar?
Eu quero manter o HTML parasomente a<button></button>
elemento, e estou usando SASS. Você pode ver um jsFiddle aqui:http://jsfiddle.net/Dqr76/8/ ou o código abaixo:
button {
display: inline-block;
zoom: 1;
*display: inline;
border:0;
background-image: url(../images/btn_bg.png);
background-repeat: repeat-x;
color: #fff;
font-weight: bold;
height: 22px;
line-height: 22px;
position: relative;
margin: 0 5px;
vertical-align: top;
&:before {
display: inline-block;
height: 22px;
background-image: url(../images/btn_left.png);
width: 5px;
position: absolute;
left: -5px;
top: 0;
content: "";
}
&:after {
display: inline-block;
height: 22px;
background-image: url(../images/btn_right.png);
width: 5px;
position: absolute;
right: -5px;
top: 0;
content: "";
}
}
Apenas um sidenote, antes que alguém o faça, eu sei que esses pseudo-elementos não funcionam no <IE8, e criaram uma solução que não está afetando este problema.