はじめに:
私はウェブサイトを作っていて、その中に es を入れて を作りたいと思って<table/>い<canvas/>ます。
私がやった事:
<table/>いくつかの<canvas/>es を含む を作成して、それらを描画できるようにしました。
<table>
    <tr>
        <td>item1</td>
        <td><canvas></canvas></td>
    </tr>
    <tr>
        <td>item2</td>
        <td><canvas></canvas></td>
    </tr>
    <tr>
        <td>item3</td>
        <td><canvas></canvas></td>
    </tr>
</table>
CSS:
canvas {
    margin: 0;
    padding: 0;
    height: 50px;
}
table {
    margin: 0;
    padding: 0;
    width: 500px;
    border: 0;
    border-width: 0;
    border-spacing: 0;
}
tr {
    margin: 0;
    padding: 0;
}
td {
    margin: 0;
    padding: 0;
    border: 0;
    border-width: 0;
    border-spacing: 0;
    height: 50px;
}
キャンバスを大きな箱のように見せるために、キャンバス同士をぶつけてみたいと思います。コード例を作成しました: http://jsfiddle.net/Whb8u/
window.onload = function(){
    if(window.addEventListener){
        var items = document.getElementsByTagName('canvas');
        for(var i = 0; i < items.length; i++){
            drawcanvas(items[i]);
        }
    }
};
function drawcanvas(item){
    var context = item.getContext("2d");
    var canvasWidth = item.parentNode.offsetWidth;
    var canvasHeight = item.height = item.parentNode.offsetHeight;
    context.fillStyle = 'rgb(100,100,100)';
    context.fillRect(0, 0, canvasWidth, canvasHeight); 
}
問題:
キャンバスは互いに接触しません。テーブルborder、margin、paddingおよびは既に削除しましたspacing。
キャンバスには の固定が必要heightです50px。(コードでは、最初にヒットさせようとしましたが、これは高さよりも重要です)
しかし、JavaScript でサイズを変更しても、<td/>常に5pxよりも大きくなり<canvas/>ます。
なぜこれが起こるのか、および/またはそれを修正する方法を知っている人はいますか?
概要:
灰色のボックスは互いに衝突しません。なぜこれが起こるのか、および/またはそれを修正する方法を知っている人はいますか? コード例: http://jsfiddle.net/Whb8u/