2012-08-15 17 views
12

Im tratando de averiguar cómo hacer que la pestaña del carrito de compras que se colocará en la esquina derecha y también se giró 90 grados. La rotación mezcla de forma natural la posición, pero tal vez hay una solución alternativa de envoltura para diferentes envolturas, etc.posición absoluta elemento girado a la esquina derecha

Puntos extra si no es necesario definir el ancho. No me importan los navegadores más antiguos

+0

http://jsfiddle.net/Dvkgz/ – client

Respuesta

23

¿Qué le parece usar transform-origin? Ver DEMO.

CSS relevante:

#box { 
    position: relative; 
} 
.bg { 
    right: 40px; /* same as height */ 
    height: 40px; 
    transform: rotate(-90deg); 
    transform-origin: 100% 0; 
    position: absolute; 
    line-height: 40px; /* same as height, for vertical centering */ 
} 
+0

Genial, guau, nunca me hubiera dado cuenta. Voy a darle una oportunidad. ¡GRACIAS! – client

+0

¡Gracias por esta gran sugerencia! ¿Existe una descripción autorizada del soporte en diferentes navegadores para 'origen de tranform '? El [artículo de MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin#Browser_compatibility) está bastante incompleto en este momento. – bfncs

+0

Hasta donde yo sé, es compatible con todos los navegadores que admiten transformaciones. http://caniuse.com/#feat=transforms2d – Ana

4

Ana's answer es excelente y me señaló en la dirección correcta, pero se dio cuenta de que podría lograr el mismo efecto sin tener que establecer explícitamente la altura, la línea de altura y posición para el elemento que desea mover - en su lugar, acaba de establecer translate(0, -100%):

body { 
 
    margin: 0; 
 
} 
 

 
#box { 
 
    position: relative; 
 
} 
 

 
.bg { 
 
\t right: 0; 
 
\t padding: 1em; 
 
\t transform: rotate(-90deg) translate(0, -100%); 
 
\t transform-origin: 100% 0; 
 
\t position: absolute; 
 
\t background: #FF1493; 
 
}
<div id="box"> 
 
\t <div class="bg">   
 
\t \t <div class="txt">He's not the Messiah. He's a very naughty boy.</div> 
 
\t </div> 
 
</div>

... y un jsFiddle para una buena medida.

+0

si quiere leer el texto al revés, simplemente agregue .txt {transform: rotate (180deg); } – mtness

+0

hay un error tipográfico en su fragmento y violín, por cierto, debe ser de clase, no clss – mtness

+0

@mtness Bien manchado - ¡actualizado! – indextwo

Cuestiones relacionadas