@media print{}
인쇄용 사이트를 조정 하는 섹션이 있습니다. 메인 블록 앞에 페이지 나누기를 강제하고 있습니다. 그러나 Firefox에서는 요소가 겹칩니다 (다른 브라우저는 예상대로 모든 것을 렌더링합니다). 다음 인쇄 미리보기에서 알 수 있듯이 빨간색 블록은 3 페이지로 이동하지 않고 상단 또는 이전 콘텐츠에 표시됩니다.
HTML 구조는 다음과 같습니다.
<div class="cols">
<div class="col col1de2">This is the yellow block</div>
<div class="col col2de2">This is the blue block</div>
</div>
<div class="extra">This is the red block</div>
... 그리고 이것은 관련 CSS입니다.
.cols{
overflow: hidden;
}
.col{
float: left;
width: 40%;
}
.extra{
page-break-before: always;
clear: both; /* Attempted workaround: didn't work */
}
JSFiddle의 결과 프레임 (아마도 PDF 프린터 로 인쇄해야하지만 프레임에서 인쇄 미리보기 메뉴 항목 을 트리거하는 방법에 대해 확실하지 않음) 을 인쇄해야하지만 그 동작을 볼 수 있습니다 .
수정 또는 해결 방법을 알아낼 수 있습니까?
이 때문에입니다 float
. s에 page-break
미친 듯이 간다 float
. 사용 사례에서 Firefox가 이것에 대해 더 까다로운 것 같습니다.
옵션 1:
단일 열로 할 수 있다면 스타일 float
에서 제거하십시오 @media print
.
필요한 변경 사항은 다음과 같습니다.
@media print {
.col { float: none; width: auto; } /* remove the floats for print */
.extra { page-break-before: always; } /* no change here */
}
옵션 2 :
부모 가 아닌 수레를 지우십시오 ( 실제로 바이올린의 바깥 쪽 대신 내부 부모에 있었어야했지만 여기서는 중요하지 않습니다 ); 그러나 div
당신 .col
의 추가 형제 자매에서 그것을 지우십시오 .
필요한 변경 사항은 다음과 같습니다.
마크 업
<div class="cols">
<div class="col col1de2">Sed lacinia mi..</div>
<div class="col col2de2"> Suspendisse sit amet..</div>
<div class="clear"></div> <!-- clear the float here -->
</div>
CSS
.col { float: left; width: 40%; } /* no change here */
.clear { clear: both; } /* clear here */
요약하자면 : page-break-x
적용되는 요소의 바로 앞이나 뒤에있는 부동 또는 지우기 부동이 없는지 확인하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다