当前位置: 首页 > 面试题库 >

如何仅使用CSS for Print显示某些部分?

华永新
2023-03-14
问题内容

我的页面上有很多数据,表格和内容。我想制作一个仅显示很少的选定内容的印刷版本。

我不是在写另一个仅用于打印的页面,而是在阅读CSS的“ @media print”功能。

首先,哪些浏览器支持它?由于这是一项内部功能,因此只有最新的浏览器支持它才可以。

我当时正在考虑使用“可打印”类标记一些DOM元素,并且基本上将“ display:none”应用于除具有“可打印”类的那些元素之外的所有内容。那可行吗?

我该如何实现?

编辑:这是我到目前为止:

<style type="text/css">
@media print {
    * {display:none;}
    .printable, .printable > * {display:block;}
}
</style>

但这掩盖了一切。如何使那些“可打印”元素可见?

编辑:现在尝试否定方法

<style type="text/css">
@media print {
    body *:not(.printable *) {display:none;}
}
</style>

从理论上讲,这看起来不错,但是却行不通。也许“不”不支持高级CSS …


问题答案:

从这里开始。但基本上您在想的是正确的方法。

谢谢,现在我的问题实际上正在变成:如何将CSS应用于类及其所有后代元素?这样我就可以将“ display:block”应用于“可打印”区域中的任何内容。

如果将元素设置为display:none;所有元素,则所有子元素也将被隐藏。但是无论如何。如果您希望将样式应用于其他样式的所有子样式,请执行以下操作:

.printable * {
   display: block;
}

这会将样式应用于“可打印”区域的所有子项。



 类似资料:
  • 问题内容: 我喜欢Django,但对于特定的应用程序,我只想使用其中的一部分,但是我对Django在内部的工作方式还不够熟悉,因此也许有人可以为我指明正确的方向查看。 具体来说,我想使用: 模型和数据库抽象 该缓存API,但我想通过缓存来避免数据库查询,而不是HTML生成,并且由于在Django的缓存框架适用于后者,我不 知道是否还没有这真的合适。 我不会使用: Templating urlcon

  • 我想在Spring中创建一个页面,其中包含url http://myapp.com/sign-in?email=myemail@提供商。通用域名格式 是用户每次想要登录时通过电子邮件收到的一次性密码。 每当用户访问此页面时,我希望发生两件事: 检查提供的凭据是否正确。 如果是,则显示页面的超文本标记语言内容。 我已经完成了第一部分: 我需要如何更改代码才能显示主页(中的超文本标记语言文件),但前提

  • 我需要让对象的某些部分序列化默认值,而有些部分不序列化。 在下面的帖子中,我了解了如何根据类型做到这一点:Json。NET:如何使DefaultValueHandling仅适用于某些类型? 但是这个解决方案只适用于类型,不会是递归的。 预期行为: 重新序列化时: ContractProvider中是否有我可以重写的内容,或者我可以添加到成员或类中的属性来选择DefaultValueHandling

  • 我正试图从java写到Excel。 苏珊067643 但是,当前代码会覆盖该名称。结果,excel文件如下所示 有人愿意帮我吗?任何输入都将不胜感激!

  • 我有工作的c转换器: 在Web配置中,我有: 一切都很好,但它适用于所有控制器,我需要它只执行一些控制器。 我们可以指定哪些转换器或参数应该与自定义转换器一起使用,哪些不应该?

  • 问题内容: 我正在使用Elasticsearch索引我的文档。 是否有可能指示它仅返回特定字段,而不是它存储的整个json文档? 问题答案: 是的 使用源过滤器。如果您使用JSON搜索,它将看起来像这样: 在ES 2.4及更低版本中,您还可以在search API中 使用fields选项: ES 5+中已弃用此功能。而且,源过滤器更强大!