2013-07-09 6 views
5

Ich habe eine <div>, in der einige komplizierte Inhalte mit einer Maßstabsumwandlung angewendet wird. Mein Problem ist, dass das <div> den gleichen Platz einnimmt, den es genommen hätte, selbst wenn keine Transformation angewendet wurde. Ich habe eine jsFiddle snippet gemacht, um zu veranschaulichen, was ich meine.Wie kann ich einen Container so skalieren, dass er seinem skalierten (oder anderweitig transformierten) Inhalt entspricht?

I think I can understand why the behavior is like this, aber gibt es eine Möglichkeit, es so zu machen, dass der Container so viel Platz wie seinen Inhalt mit Skalierung (und andere Transformationen, wenn möglich) verwendet?

sollte ich beachten Sie, dass die width und height des <div> außen wirkt sich auf die Inhalte des skalierten Text explizit einstellen (und dieses Verhalten in meinem Fall nicht erwünscht ist). Den skalierten Inhalt in eine zu bringen, möchte ich vermeiden.

+1

Ich bin nicht sicher, welchen Browser Sie testen, aber für mich (Chrome 27/Firefox 22), I muss zu [this] ändern (http://jsfiddle.net/7HhpM/15/), um den Transformationseffekt tatsächlich zu sehen. Bearbeiten: Sieht so aus, als ob Chrome/Firefox die Transformation auf 'display: inline' nicht akzeptiert. Opera 12 funktioniert jedoch gut. – Passerby

+0

@Passerby Ja, ich arbeite mit Opera und habe vergessen, mein Snippet in anderen Browsern zu testen. Ich habe sie "inline" gemacht, nur damit mein Punkt visuell besser erkennbar ist, aber dieser Teil ist für die Frage nicht kritisch. Danke, dass du das herausgebracht hast, ich werde stattdessen dein Snippet einfügen. –

+1

Transform-Herkunft: oben links; Oder Koordinaten könnten ein Anfang zu Ihrer Antwort sein. –

Antwort

1

Ohne auf Javascript zurückgreifen, gibt es keine Möglichkeit, dies zu tun, denke ich nicht. CSS-Transformationen wirken sich nicht auf den Layoutfluss für Elemente in der Nähe der transformierten Elemente aus, sie ändern nur das Koordinatensystem in diesem Element. so sind Kinder betroffen, aber nicht Eltern oder Geschwister (MDN hat mehr Details dazu).

Es gibt eine große Antwort hier, dass eine JS-basierte Teillösung für Sie sein könnte: https://stackoverflow.com/a/10913299/2524360

+0

Es ist definitiv besser als nichts! –

0

Ich weiß nicht, ob dies Ihre Frage beantwortet, aber es scheint nicht 0 als Wert zu akzeptieren. Der Browser skaliert von 1, wie in 100% zu z.B. 4 oder 400%.

transform:scale(1,4); 
+0

http://www.w3schools.com/css3/css3_2dtransforms.asp – DorianHuxley

Verwandte Themen