2013-01-17 2 views
6

CSS 변환을 사용하여 요소 크기를 조정하면 문서 흐름에 어떤 영향을 미치는지 정말 혼란 스럽습니다.CSS 스케일 변형은 문서 흐름에 어떤 영향을 줍니까?

Consider this jsbin 또는 this codepen since jsbin seems to have gone down는 어디 스타일 시트

#scaled-contents { 
    height: 400px; 
    width: 400px; 
    background-color: blue; 
    color: red; 
    font-size: 3em; 
} 

#scaled { 
    transform: scale(0.25, 0.25); //browser prefixes... 
    width: 100px; 
    height: 100px 
} 

나는이 하나의 100 × 100 파란색 사각형과 유사하게 표시 기대와

p{slipsum text} 
#scaled 
    #scaled-content{some text} 
p{slipsum text} 

있습니다. 그러나 그것은 이동되고 크롬에서 다음의 p 요소와 약간 겹치기까지합니다. 또한, devtools에서 #scaled의 크기를 조사하면 쪼그리고 앉아서 길게 보입니다. 100x100 상자를 뛰어 넘는 것처럼 보입니다.

마지막으로 #scaled에 overflow: hidden;을 추가하는 것은 완전히 이상한 일을합니다.

무슨 일입니까? 콘텐츠 흐름이 어떻게 영향을 받습니까?

+0

링크 우리가 바이올린을받을 수 ... 죽은? – Mooseman

+0

@Mooseman - 오 젠장, 이것은 몇 분 전에 살아 있었고, 나는 그것을 사용했다. 좋아, 모든 것을 다시 써야한다 –

+0

@Mooseman - codepen으로 업데이트 http://codepen.io/anon/full/twGzE –

답변

9

CSS 변형은 문서 흐름에 영향을주지 않습니다. DOM 요소는 페이지 흐름 내에서 원래 위치와 크기를 차지합니다.

동일한 크기의 3 제곱 div가 있고 행에 인라인으로 표시되고 -webkit-transform : scale (2)를 가운데 정사각형에 적용하면이 정사각형은 200 % 큰 배율로 원래 위치의 중앙에 있고, 다른 두 개의 사각형과 중첩됩니다.

참조 예 :

http://jsfiddle.net/ypnEk/

HTML :

<div class="square one"></div> 
<div class="square two"></div> 
<div class="square three"></div> 

CSS :

.square{ 
    margin-top:50px; 
    width:50px; 
    height:50px; 
    display:inline-block; 
} 

.one{ 
    background:#222; 
} 

.two{ 
    background:#888; 
    -webkit-transform: scale(2); 
} 

.three{ 
    background:#ccc; 
} 
+0

다음 예제에서 어떤 일이 벌어지고 있는지 정말로 모르겠다. 요소의 크기를 조절하고 높이/너비를 설정하면 요소 자체 또는 내용 만 크기를 조절할 수 있습니까? 그러면 왜 다른 요소들과 겹칠 것입니까? –

+2

예제와 관련된 문제는 다음과 같습니다. 1. 포함 요소는 100px x 100px이며 400px 정사각형입니다. 따라서 파란색 사각형은 상자를 포함하는 상자에서 넘칠 것입니다. 2. 포함하는 요소의 25 % 스케일은 상자의 모든 내용을 크기 조정하지만 컨테이너 중심에서 크기를 조정합니다. 따라서 300px의 수직 오버플로가있는 100px 높이의 컨테이너가 있으므로 파란색 사각형은 여전히 ​​100px를 포함하는 요소 외부에 위치합니다. 귀하의 예제에 대한 빠른 수정은 -prefix-transform-origin을 추가하는 것입니다 : 0 0; #scaled를 사용하여 왼쪽 하단 모서리에서 눈금을 내립니다. – chrisgonzalez

+0

아아,'transform-origin'이 제가 누락 된 핵심이었습니다. 그게 내가 원했던거야. –

관련 문제