【发布时间】:2013-04-29 05:25:59
【问题描述】:
某些 HTML 表单元素附加了额外的 UI,例如 number 上的向上/向下箭头。然而,在打印页面时,不再需要这些按钮,因为用户无法在打印表单中与它们进行交互。
文本框很容易处理:
@media print {
input {
border: none;
border-bottom: 2px solid #000000;
}
}
使它们打印得非常好,就像一行带有文本的行。就像一个人会用手填写的表格一样。然而,对number 之类的输入执行相同操作会留下那些讨厌的向上/向下箭头:
还有更没用的打印输出,比如range,在页面上没有任何意义:
有没有办法解决这个问题?有什么方法可以将元素的那部分设置为不可见,但仍然可以看到值/文本?
我意识到可以用 JS 替换 type="" 属性,或者让另一个元素保存要在打印上显示的值,但是如果有一个只能用 CSS 完成的解决方案,那就更好了。
【问题讨论】:
-
这不是问题,我不想隐藏元素,我想隐藏附加到某些类型的
input元素的无关 UI,这些在打印时毫无意义。隐藏其自身的元素也会隐藏其值/文本,这很重要。 -
不,是浏览器提供的位使不同类型的
input有用,超出了简单的text框所能做的。正如我所提到的,number类型使用一对向上/向下按钮来增加/减少值。然而,这些按钮不是 HTML 按钮,它们是由浏览器为特定类型的input提供的。因此,隐藏它们并不困难。因此问题。 -
你可以试试 webkit 技巧,但要注意如果其他浏览器实现了 HTML5 控件,你将不得不更新你的代码stackoverflow.com/questions/3790935/…
-
@torm 也许 OP 确实想在 在浏览器中 使用 HTML5 输入功能。当打印页面并且那些表单控件变得无用时,问题就出现了。你误解了这里的问题
-
这里的用例是什么?如果它是表单提交的可打印报告,我不会费心尝试使表单元素打印友好,而是为用户提供打印优化的结果页面。