2012-02-22 101 views
2

我使用簡單的CSS與現代的瀏覽器:IE 9和Firefox 10打印CSS拒絕隱藏元素

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

有了這個內容它的工作原理。

@media print 
{ 
    #wrap, div.push, div.footer, div.barra_sopra_datatables, div.fg-toolbar, img{ 
     display: none; 
    } 

    body { 
     font-size: 10pt; 
    } 

    * { 
    margin: 0; 
    padding: 0; 
    } 


} 

我需要隱藏一個表的一些列,所以只是爲了測試我試圖

tr:first-child { 
    display: none; 
} 

,但它隱藏所有的TR元素。

我alsove還試圖td:first-childtable tbody tr td:first-child和其他選擇,並他們都失敗。我需要保持與IE 8的兼容性。kimblim.dk表示IE 8支持這些選擇器,爲什麼它不起作用?我不想設置許多指出的背景顏色不起作用。

+1

什麼是你的表格HTML?除了打印以外,其他媒體中的相同風格是否也能正常工作 – BoltClock 2012-02-22 16:52:07

+1

另外,如果你需要「隱藏一些列」,試圖隱藏一行將不會訣竅。 – 2012-02-22 16:55:01

+2

我剛剛在IE8中測試(真正的兼容模式下不是IE9),我無法重現您的問題。 '@media print'部分和'td:first-child {display:none;}'部分都可以正常工作。那麼你能發佈一個鏈接到你的網站嗎?我需要看看是否還有其他事情正在進行。 – 2012-02-22 17:16:00

回答

1

我認爲你不能只是不顯示錶格單元格。
display:none意思是說,根本不要顯示它,所以儘可能不要在第一時間出現。也許瀏覽器認爲,如果第一列不再存在,下一列是新的第一列,然後它也隱藏這些列。

試圖給一個表細胞的一類hide-in-print然後

@media print { 
    .hide-in-print { 
    display: none; 
    } 
} 

也許@media print尚未完全支持IE。如果這是真的,請嘗試有條件的評論。

+0

不,它在IE8上工作正常。還有其他一些事情會導致OP的問題。 – 2012-02-22 17:16:52