我有一個包含大量數據,表格和內容的頁面。 我想製作一個打印版本,只顯示很少選擇的東西。如何僅使用CSS打印某些部分?
而不是寫另一個頁面只是爲了打印,我正在閱讀關於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是不太可能的。 – Strelok 2010-08-12 00:34:38
它實際上可以像@Strelok所建議的那樣進行:您可以將不應包含在打印中的所有元素標記爲不打印,從而避免標記您實際需要的元素的容器。 .no-print {display:none:} 但它真的很笨。你想要做到這一點的方式更清潔,更聰明。但悲傷,這似乎是唯一的方法。希望它不是。 你想要做什麼是一個很好的用例父CSS選擇器:https://css-tricks.com/parent-selectors-in-css/ 你可以說: * {顯示:無; } .printable,.printable <* {display:block} 悲傷的是選擇器不存在。 – jgomo3 2015-08-01 03:53:47