귀하의 제안 원래 제안 (음수 여백 설정)을 기반으로 동적 브라우저 너비에 백분율 단위를 사용하여 비슷한 방법을 시도했습니다.
HTML
<div class="grandparent">
<div class="parent">
<div class="child">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore neque repellat ipsum natus magni soluta explicabo architecto, molestias laboriosam rerum. Tempore eos labore temporibus alias necessitatibus illum enim, est harum perspiciatis, sit, totam earum corrupti placeat architecto aut minus dignissimos mollitia asperiores sint ea. Libero hic laudantium, ipsam nostrum earum distinctio. Cum expedita, ratione, accusamus dicta similique distinctio est dolore assumenda soluta dolorem quisquam ex possimus aliquid provident quo? Enim tempora quo cupiditate eveniet aperiam.</p>
</div>
</div>
</div>
CSS :
.child-div{
margin: 0 -100%;
padding: 0 -100%;
}
.parent {
width: 60%;
background-color: red;
margin: 0 auto;
padding: 50px;
position:relative;
}
.grandparent {
overflow-x:hidden;
background-color: blue;
width: 100%;
position:relative;
}
음수 여백은 컨텐츠를 상위 DIV 밖으로 흐르게합니다. 따라서 padding: 0 100%;
콘텐츠를 Chlid DIV의 원래 경계로 다시 푸시하도록 설정했습니다 .
음수 여백은 또한 .child-div의 총 너비가 브라우저의 뷰포트 밖으로 확장되어 가로 스크롤이 발생합니다. 따라서 overflow-x: hidden
조부모 DIV (부모 Div의 부모)에를 적용하여 돌출 너비를 잘라 내야합니다.
여기 JSfiddle이 있습니다
나는 Nils Kaspersson의 시도했다 left: calc(-50vw + 50%)
; Safari 브라우저가 제대로 작동하지 않을 때까지 Chrome & FF (IE에 대해서는 확실하지 않음)에서 완벽하게 작동했습니다. 실제로이 간단한 방법이 마음에들 때 곧이 문제가 해결되기를 바랍니다.
이것은 또한 부모 DIV 요소가 있어야하는 문제를 해결할 수 있습니다 position:relative
이 해결 방법의 두 가지 단점은 다음과 같습니다.
- 추가 마크 업이 필요합니다 (예 : 조부모 요소 (예 : 좋은 ol '테이블 세로 정렬 방법이 아닌 것처럼)).
- Child DIV의 왼쪽과 오른쪽 테두리는 단순히 브라우저의 뷰포트 외부에 있기 때문에 표시되지 않습니다.
이 방법으로 문제가 발견되면 알려주십시오.;). 도움이 되길 바랍니다.
position: relative
? 무엇position: relative
을 원하십니까? 나는 내가 무엇을 요구하고 있는지 추측한다 : 당신은 무엇을하려고합니까?