2011-06-24 16 views
4

私はCSSを使ってHTMLテーブルをスタイル付けしようとしています。私は、印刷レイアウト(または他のスタイルシート)でその内容が可視でなければならないので、CSSを通して単一セルの内容を隠す能力が必要です。 テーブルには<thead><tbody>セクションがあり、それぞれ<tr><th><td>には境界線が適用されているため、非表示にすると境界線(外側のものでも)が常に表示されます。「visibility:hidden;」を設定すると、Google Chromeで表のセル枠が消えるのはなぜですか「国境崩壊:崩壊」

私のスタイルシートでは、border-collapse: collapse;と設定し、私はvisibility:hidden;で非表示にしたいセルを非表示にしています。これは、Google Chrome(およびFirefoxのマイナーディスプレイのグリッチを除く)ではほとんど問題なく動作します。幅..)。あなたはこのコードをしようとした場合、それも小さなスペースにまで隠されたすべてのセルを持つ行を崩壊見ることができるように

table.example { 
 
    width:100%; 
 
    border-collapse: collapse; 
 
} 
 

 
table.example td{ 
 
    padding: 2px; 
 
} 
 

 
table.example .number { 
 
    text-align:right; 
 
} 
 

 
table.example .null{ 
 
    visibility:hidden; 
 
} 
 

 
table.example .number.negative{ 
 
    color:red; 
 
} 
 

 
table.example .Date{ 
 
    text-align:center; 
 
} 
 

 
table.example th{ 
 
    background-color: #dedbde; 
 
} 
 

 
table.example, th.example, td.example,.example thead,.example tbody{ 
 
    border: 1px solid #a5a6a5; 
 
} 
 

 
#Demo1 .hideme.Col1, 
 
#Demo1 .hideme.Col2 { 
 
    visibility:hidden; 
 
    border: 0; 
 
} 
 

 
#Demo1 { 
 
    width: 50%; 
 
} 
 

 
.Col1 { 
 
    width: 4%; 
 
} 
 

 
.Col2, .Col3, .Col4 { 
 
    width: 32%; 
 
}
<table class="example" id="Demo1"> 
 
    <thead> 
 
    <tr class=" example"> 
 
     <th class="Col1 example"></th><th class="Col2 example">Title1</th><th class="Col3 example">Title2</th><th class="Col4 example">Title3</th> 
 
    </tr> 
 
    </thead><tbody> 
 
    <tr class="r1 example odd first"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  2865    </a></td><td class="Col3 example Date">10.06.2011</td><td class="Col4 example Date">10.07.2011</td> 
 
    </tr><tr class="r2 example even"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  2864    </a></td><td class="Col3 example Date">10.06.2011</td><td class="Col4 example Date">10.07.2011</td> 
 
    </tr><tr class="r3 example odd"> 
 
    <td class="Col1 example hideme"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example hideme"><a href="#" class="detaillink">  2863    </a></td><td class="Col3 example hideme Date">10.06.2011</td><td class="Col4 example hideme Date">10.08.2011</td> 
 
    </tr><tr class="r4 example even"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  2863    </a></td><td class="Col3 example Date">10.06.2011</td><td class="Col4 example Date">10.08.2011</td> 
 
    </tr><tr class="r5 example odd"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  2299    </a></td><td class="Col3 example Date">10.05.2011</td><td class="Col4 example Date">10.06.2011</td> 
 
    </tr><tr class="r6 example even"> 
 
    <td class="Col1 example null"></td><td class="Col2 example null"></td><td class="Col3 example Date null"></td><td class="Col4 example Date null"></td> 
 
    </tr><tr class="r7 example odd"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  1249    </a></td><td class="Col3 example Date">10.03.2011</td><td class="Col4 example Date">10.04.2011</td> 
 
    </tr><tr class="r8 example even"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">  1248    </a></td><td class="Col3 example Date">10.03.2011</td><td class="Col4 example Date null"></td> 
 
    </tr><tr class="r9 example odd"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example null"></td><td class="Col3 example Date">10.02.2011</td><td class="Col4 example Date">10.03.2011</td> 
 
    </tr><tr class="r10 example even last"> 
 
    <td class="Col1 example"><img src="image.png" alt="test" height="15px" width="15px"></td><td class="Col2 example"><a href="#" class="detaillink">   563    </a></td><td class="Col3 example Date">10.02.2011</td><td class="Col4 example Date">20.03.2011</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

:私も、この動作の例を作成し

この問題は、私の現在のプロジェクトではあまり重要ではありません。ほとんどのユーザーはInternet Explorerを使用しますが、解決策が見つからず、この問題が将来私に影響する可能性があります他の人が既にこの問題にぶつかっていることを確認してください)、なぜこれが起きているのか本当に知りたいです。

+0

オフの手、私は '境として国境問題を参照してください:0;'スタイルは#DEMO1 .hideme.Col1、#DEMO1 .hideme.Col2' 'に適用されます。短い列までは、可視性と関係していることが分かります(たとえそれが不動産を保持すると考えられていても、目に見えません)。 –

+0

また、この他のSOの投稿は役立つかもしれません:http://stackoverflow.com/questions/57002/css-to-make-an-empty-cells-border-appear/57006#57006 –

+0

@ブラッド私は削除しようとしました'border:0'でも変更はありません(少なくともChromeではない)。そして、あなたは短い行については正しいですが、私はそれを回避する方法を見つけることができません(少なくとも醜いことではなく、すべてのブラウザで機能します)。 – ramsesoriginal

答えて

0

アップデート1

あなたのTDは、テキストのみを表示している場合は、この

テキストインデントを試すことができます:-9999px;

ブラウザの互換性についてはわかりませんが、インライン要素にのみ影響するはずです。これで視認性を取り除く必要はありません。


このdiv要素は、あなたがあなたの携帯に今持っている要素が含まれており、その唯一のDIVにvisibility:hiddenを設定し、各セル内のdivを置きます。

<tr class="r2 example even"> 
    <td class="Col1 example"> 
    <div> 
     what you want to hide here... 
    </div> 
    </td> 
</tr> 
+0

それで、その解決法はかなり簡単です(私は自分自身を考えていたはずです...)。残念ながら、それはマークアップをたくさん追加するでしょう(テーブルは既に1MB以上になっていて、データの**ロット**を表示する必要があります)、それは汚れているように感じます。純粋なCSSソリューション素晴らしい! – ramsesoriginal

+0

あなたのコードから、私はあなたがそれらの細胞の内部にテキストを表示していると思いますか?もしそうなら、あなたはtext-indentを置くことができます:-9999px;表示したくないTDについては、これはインライン要素にのみ影響します。また、私はブラウザの互換性についてよく分かりません。 –

+0

あなたが正しいです、私はテキストだけを表示します(そして、いくつかの小さなアイコンでインラインでも表示します)。いい案!それは動作します、ありがとう!それは "欠けている"のを扱う "'!何があっても外枠をケプする方法についてはいくつか考えていますが、近くにある2つのセルが隠れている場合は、それらの境界線を非表示にしますか? – ramsesoriginal

0

はTRの境界線を設定するだけでなく、tdは私のためにそれを修正するようです。

.collateral-tabs .std tr, 
.collateral-tabs .std td { 
    border: 1px solid #333; 
} 
関連する問題