html - @Media 打印 css

标签 html css printing media

我的 HTML 页面结构如下:

<html>
<head></head>
<body>
<nav>
  ....  navigation menu
</nav>
   <div>
         <div></div>
         <div class="to-print">
           <h2>My div to display in print mode<h2>
           <section>
               <article>....content....</article>
           </section>
         </div>
         <div></div>
   </div>
   <div>
      .... HTML elements
   </div>
</body>
</html>

如果用户尝试打印页面,我只想打印类为 to-print 的 DIV 的内容。我怎样才能做到这一点?

最佳答案

如果这是您的 html 的确切结构,那么这对您有用。

@media print {
  nav, 
  div > div:not(.to-print), 
  div + div:not(.to-print) {
      display: none;
  }
}

/* So you can see the styles working on the elements you want to hide outside of print */
  nav, 
  div > div:not(.to-print), 
  div + div:not(.to-print) {
      color: red;
  }
<nav>
  ....  navigation menu
</nav>
   <div>
         <div></div>
         <div class="to-print">
           <h2>My div to display in print mode<h2>
           <section>
               <article>....content....</article>
           </section>
         </div>
         <div></div>
   </div>
   <div>
      .... HTML elements
   </div>

关于html - @Media 打印 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699436/

相关文章:

javascript - html5 :how to align multiple div without shifting away when changing browser

javascript - 简单的文本字段计算不起作用

javascript - 如何从javascript动态设置表中的下拉选项

ruby - 如何打印语法高亮的 Ruby 代码?

java - 按位操作不与 Java 中的 print() 中的字符串连接

html - 为什么我不能更改 Canvas 的背景?

javascript - 为什么我不能使用 C# WebBrowser 控件触发选择更改事件?

JavaScript:使用 JavaScript 填写 HTML 表单并提交

css - 如何强制 Firefox 对包含 "#"或 "javascript:"的 anchor 标记使用自定义 CSS?

java - 在Java中打印数组时跳过一些字符