웹 페이지를 인쇄 할 때 요소를 숨기려면 어떻게합니까?


440

웹 페이지에 웹 페이지를 인쇄 할 수있는 링크가 있습니다. 그러나 링크는 인쇄물 자체에도 표시됩니다.

인쇄 링크를 클릭하면 링크 버튼을 숨기는 자바 스크립트 또는 HTML 코드가 있습니까?

예:

 "Good Evening"
 Print (click Here To Print)

"Good Evening"텍스트를 인쇄 할 때이 "인쇄"레이블을 숨기고 싶습니다. 인쇄물 자체에 "인쇄"레이블이 표시되지 않아야합니다.

답변:


743

스타일 시트에서 다음을 추가하십시오.

@media print
{    
    .no-print, .no-print *
    {
        display: none !important;
    }
}

그런 다음 class='no-print'단추와 같이 인쇄 된 버전에 표시하지 않으려는 HTML에 인쇄 할 수없는 클래스를 HTML에 추가하십시오 (또는 기존 클래스 명령문에 추가하십시오).


17
이 답변은 완료되지 않았습니다. 두 개의 미디어 섹션이 있어야합니다. @media인쇄 및 @media화면. 인쇄 섹션에서 인쇄 스타일을 배치합니다. 화면 화면 섹션에서 화면 인쇄 스타일을 배치합니다. 해상도에 따라 여러 화면 섹션을 가질 수도 있습니다. 기본적 으로이 답변에 주어진 것을 추가하면 작동하지 않습니다. 내가 시도한 것을 믿어 라. 그러면 어떻게 69 개의 ​​공감대를 얻었습니까?
Codeguy007

6
실제로 주어진 코드를 사용하면 작동합니다. 방금 파이어 폭스에서 시도했습니다. 따라서 적어도 최신 브라우저에서는 이것이 해결책입니다.
luschn

8
내부에 여러 하위 요소가있는 <div>를 숨기려고했습니다. 인쇄 할 때 일부 요소가 여전히 보이는 문제가있었습니다. 해결책은이 CSS를 사용하는 것이 었습니다 :@media print { .no-print, .no-print * { display: none !important; } }
Philipp

6
지정된 매체에 따라 작동하거나 작동하지 않을 수 있습니다. 예를 들어, 하나의 스타일 시트에서 화면 스타일과 인쇄 스타일을 결합하려면 해당 스타일 시트 내에서 미디어 쿼리를 사용하십시오.이 답변에서 알 수 있듯이 "스크린"및 "인쇄"미디어 유형을 모두 지정해야합니다.<link rel="stylesheet" href="all.css" media="screen, print" type="text/css">
Clint Pachl

5
@ Codeguy007 : 당신의 요점을 이해하지 못합니다. @media screen화면 전용 스타일을 정의하려는 경우 에만 필요 하지만 여기에는 해당되지 않습니다. 기본적으로 모든 요소가 표시되며 요소를 숨기는 인쇄 전용 스타일을 정의하면 화면에 여전히 표시 될 수 있습니다. .
chiccodoro

173

부트 스트랩 3가 자신 이에 대한 클래스 라는를 :

hidden-print

다음과 같이 정의됩니다.

@media print {
  .hidden-print {
    display: none !important;
  }
}

직접 정의 할 필요는 없습니다.


에서 부트 스트랩 4 이이 변경되었습니다 :

.d-print-none

위대한 부트 스트랩 4 솔루션. 매력처럼 작동합니다.
디에고 빅토르 드 예수

지금까지 부트 스트랩 솔루션을 어떻게 놓쳤는 지 믿을 수 없습니다. 감사합니다!
ReturnTable

! important저를 구했습니다.
Evan Hu

168

가장 좋은 방법은 인쇄용으로 스타일 시트사용 하고 media속성을로 설정하는 것 print입니다.

종이에 인쇄하려는 요소를 표시하거나 숨 깁니다.

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

9
여기에는 다른 래퍼 내용을 표시하지 않고 CSS 모음을 더 나은 값으로 변경하고 페이지를 완전히 사용할 수 있도록 너비를 제거하는 CSS가 있어야합니다. 기본 스타일 시트를 media = "screen"으로 설정하면 인쇄 스타일 시트를 새로운 플레이 지운 드로 취급 할 수 있습니다.
Steve Perks

2
물론. 이 방법을 사용하면 "인쇄 가능한 버전을 보려면 여기를 클릭하십시오"를 제거하거나 "이 페이지는 프린터 용입니다"또는 유사 항목을 추가하면됩니다. Steve Perks가 말했듯이 탐색, 광고 등과 같은 불필요한 내용을 모두 제거하는 것이 좋습니다. 페이지의 기본 컨텐츠 만 포함하십시오.
Arve Systad

39

이 CSS를 넣는 간단한 해결책은 다음과 같습니다.

@media print{
   .noprint{
       display:none;
   }
}

그리고 여기 HTML이 있습니다

<div class="noprint">
    element that need to be hidden when printing
</div>
<div class="noprint">
    element that need to be hidden when printing
</div>

3
여기서 클래스를 사용하는 것이 ID보다 나은 선택입니다. 간단한 이유로 ID를 사용하는 경우이 규칙을 페이지 당 한 가지에만 적용 할 수 있습니다. 수업은 필요할 때마다 적용 할 수 있습니다.
Nick F

12

CSS 파일

@media print
{
    #pager,
    form,
    .no-print
    {
        display: none !important;
        height: 0;
    }


    .no-print, .no-print *{
        display: none !important;
        height: 0;
    }
}

HTML 헤더

<link href="/theme/css/ui/ui.print.css?version=x.x.x" media="print" rel="stylesheet" type="text/css" >

요소

<div class="no-print"></div>

10

div 내에 링크를 놓은 다음 앵커 태그에서 JavaScript를 사용하여 div를 숨길 수 있습니다. 예 (테스트되지 않았으므로 조정해야하지만 아이디어를 얻음) :

<div id="printOption">
    <a href="javascript:void();" 
       onclick="document.getElementById('printOption').style.visibility = 'hidden'; 
       document.print(); 
       return true;">
       Print
    </a>
</div>

단점은 한 번 클릭하면 버튼이 사라지고 페이지에서 해당 옵션이 손실된다는 것입니다 (항상 Ctrl + P가 있음).

더 나은 해결책은 인쇄 스타일 시트를 작성하고 해당 스타일 시트 내에서 printOptionID 의 숨겨진 상태 (또는 사용자가 호출하는 것)를 지정하는 것입니다. HTML의 head 섹션에서이 작업을 수행하고 media 속성으로 두 번째 스타일 시트를 지정할 수 있습니다.


6

가장 좋은 방법은 페이지의 "인쇄 전용"버전을 만드는 것입니다.

아 잠깐만 .. 이건 더 이상 1999 년이 아니야 "display : none"과 함께 인쇄 CSS를 사용하십시오.


1
CSS 기술로 남용 될 수있는 내용을 사용자에게 명확하게 표시하기 때문에 인쇄 가능한 버전에는 여전히 가치가 있습니다
annakata

1
또한 링크 참조, 바닥 글 등과 같은 인쇄 버전에 추가 컨텐츠를 포함시킬 수 있습니다. 앞으로 몇 일 안에 CSS를 통해 많은 내용을 얻을 수 있습니다.
Steve Perks

8
@annakata : 사용자는 이미 브라우저에서 "인쇄 미리보기"를 사용하여이를 얻을 수 있습니다. 보너스로, 그것은 실제로 그것이 목적입니다.
재귀


3

diodus가 받아 들인 대답은 우리 모두는 아니지만 일부에게는 효과가 없습니다. 여전히이 단추 인쇄가 용지로 사라지는 것을 숨길 수 없습니다.

Clint Pachl이 추가하여 CSS 파일을 호출하는 작은 조정

      media="screen, print" 

뿐만 아니라

      media="screen"

이 문제를 해결하고 있습니다. 명확성을 위해 그리고 Clint Pachl은 주석에서 추가 도움을 숨기기가 쉽지 않기 때문에. 사용자는 원하는 형식으로 CSS 파일에 ", print"를 포함시켜야합니다.

     <link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">

기본 미디어가 아니라 "스크린"입니다.

    <link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">

모든 사람 이이 문제를 해결한다고 생각합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.