사파리, 크롬과 파이어 폭스는 다음과 같은 코드에 대해 서로 다른 결과가 있습니다플렉스 성장에는 서브 유닛 또는 소수 값으로 브라우저에서 일관성 동작
<div class="container">
<div class="box-1"></div>
<div class="box-2"></div>
</div>
와 CSS :
.container {
display: flex;
width: 1000px;
}
.box-1 {
flex: 0.5 0.5 0;
}
.box-2 {
flex: 0.3 0.3 0;
}
https://codepen.io/andreiduca/pen/ybOwWV
을두 상자의 flex 기준은 0
입니다. 즉 남은 사용 가능한 공간은 1000px
입니다.
예상 결과 :이
모든 성장 요인의 합이 너무 남아있는 사용 가능한 공간이 1000px/0.8 = 1250px
로 구분됩니다 0.5 + 0.3 = 0.8
입니다. 1250px * 0.5 = 625px
.box-2
상자의 전체 폭은 625 + 375 = 1000px
입니다 1250px * 0.3 = 375px
얻을 것이다
.box-1
얻을 것이다 :각 상자는 성장한다 팩터에 따라 그 공간의 일부를 얻을 것이다
.container
전체를 채우십시오. 사파리가이 권리를 얻습니다.실제 결과는 :
는 크롬과 파이어 폭스는
1
의 최소 비율로 남은 공간을 분할, 결코0.8
것입니다. 나머지 공간은1000px/round(0.8) = 1000px
입니다.1000px * 0.5 = 500px
.box-2
1000px * 0.3 = 300px
의 전체 폭을 얻을 것이다
.box-1
얻을 것이다 :는 다시, 각 상자는 성장한다 팩터에 따라 그 공간의 일부를 얻을 것이다 상자는
500 + 300 = 800px
이고 전체 내용은.container
이 아닙니다. 우리는 배포되지 않은 공간 인200px
을 남겨 둡니다.그래서 질문은 : 어떤 브라우저에서 올바르게 표시되는지, 그 이유는 무엇입니까[email protected] 응답으로 당 100 배 이상의 사양을 읽은 후
조금 잘못 읽은 것 같거나 사용 가능한 공간이 1000px 인 요소의 1250px 여야한다는 문제가 보이지 않습니까? – LGSon
Safari에서 어떻게 보입니까? https://codepen.io/anon/pen/VbaNjR – LGSon
사양에 따르면 : https://www.w3.org/TR/css-flexbox-1/#resolve-flexible 길이, ** 9.7. 플렉시블 길이 해결 ** 단락 ** 4 ** 포인트 ** b **는 "고정되지 않은 플렉스 아이템의 플렉스 계수의 합이 1보다 작 으면 초기 여유 공간에이 합계를 곱하여 [ 잔여 여유 공간 "이 더 이상합니다. 알 수 있듯이 남은 여유 공간은'1000px * 0.8 = 800px'이어야하고 상자는'400 * 240 = 640px'의 총합을 갖는 '800 * 0.5 = 400px' 및'800 * 0.3 = 240px'가됩니다. . –