スタイルを設定したい HTML があります。html はテーブル (および実際のテーブル) であり、境界線を付けたいと考えています。この要素には、上隅に小さな三角形を配置するために使用する :before 疑似要素もありました。
JSFiddle はこちらです。それが理にかなっていることを願っています。マークアップと CSS は、実際には大きなサイトの小さな部分であるため、可能な限り削除しました。
http://jsfiddle.net/GolezTrol/28yDb/2/
border-collapse: collapse;
ここでの問題は、テーブルと疑似要素の上にある2 つの列を持つことの組み合わせにより:before
、要素の上の境界線が部分的に消えることです。最初の列の長さだけがあります。
ボーダーの上にあるのは疑似要素だと思いますが、この要素は非常に小さく、私が知る限り、これは問題ではありません。念のために疑似要素を追加visibility: hidden;
したところ、三角形がなくなったことがわかりますが、境界線はまだ不完全です。
残念ながら、これは MediaWiki によって出力されるため、マークアップを変更することはできませんが、CSS を完全に制御できます。
HTML:
<div id="globalWrapper">
<div id="column-content">
<div class="thumb tright">
<table class="infobox vcard" style="">
<tbody>
<tr>
<th colspan="2" class="fn org" style=""> Example text</th>
</tr>
<tr>
<th>Row head</th>
<td>Content</td>
</tr>
CSS:
/* Generic table styling */
table {
border-collapse: collapse;
/*border-spacing: 0;*/ }
/* The box */
.thumb.tright table.infobox.vcard {
border: 3px solid #fae104;
position: relative;
}
/* Triangle */
.thumb.tright table.infobox.vcard:before {
content: "";
position: absolute;
width: 0;
height: 1px;
border-top: 5px solid transparent;
top: -7px;
border-left: 10px solid #555;
visibility: hidden;
right: -1px; }
を削除すると機能することはすでにわかっていますが、それborder-collapse: collapse;
が適切な解決策であるかどうかはわかりません.
ところで。Chrome 29 と Internet Explorer 10 の両方でこの問題が発生しました。他のブラウザーはテストしていません。
アップデート
問題を解決するために「border-collapse」を使用する、または使用しない代わりに、これも機能することがわかりました。
.thumb.tright table.infobox.vcard tbody {
display: block;
}
したがって、テーブル自体はまだテーブルであり、境界線や配置などと同様に、疑似要素もテーブル上にあります。以前はスタイルが設定されていなかった tbody はブロックになり、問題は両方のブラウザーで解決されます。試行錯誤でこれを見つけましたが、その背後にある理由はまだわかりません。
更新されたフィドル: http://jsfiddle.net/GolezTrol/28yDb/9/