2016-09-13 10 views
0

私は次のプロジェクトでキャンバスを使って電子抵抗器の画像を作ろうとしていました。 これで抵抗の形にしましたが、マージンを取り除くことができませんでした。HTML Canvas要素のマージンを取り除く方法は?

埋め込みと余白を値0pxに設定しようとしました。しかし、動作していないようです。

私のHTML/CSSコード:それはbodyに適用されるので、あなたは余裕を見ているあなたの現在のコードで

.canvas-wire { 
 
    border: 1px solid #a09898; 
 
    background-color: #a09898; 
 
    vertical-align: middle; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.canvas-film-1 { 
 
    border-radius: 8px 0px 0px 8px; 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.canvas-film-2 { 
 
    border-radius: 0px 8px 8px 0px; 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.canvas-film-mid { 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.metal { 
 
    position: relative; 
 
    text-shadow: hsla(0, 0%, 40%, .5) 0 -1px 0, hsla(0, 0%, 100%, .6) 0 2px 1px; 
 
    background-color: hsl(0, 0%, 90%); 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.metal.linear { 
 
    background-image: -webkit-repeating-linear-gradient(left, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 6%, hsla(0, 0%, 100%, .1) 7.5%), -webkit-repeating-linear-gradient(left, hsla(0, 0%, 0%, 0) 0%, hsla(0, 0%, 0%, 0) 4%, hsla(0, 0%, 0%, .03) 4.5%), -webkit-repeating-linear-gradient(left, hsla(0, 0%, 100%, 0) 0%, hsla(0, 0%, 100%, 0) 1.2%, hsla(0, 0%, 100%, .15) 2.2%), linear-gradient(180deg, hsl(0, 0%, 78%) 0%, hsl(0, 0%, 90%) 47%, hsl(0, 0%, 78%) 53%, hsl(0, 0%, 70%)100%); 
 
    margin: 0; 
 
    padding: 0; 
 
}
<div style="background-color: black; padding: 5px 10px; width: 900px; height:500px;"> 
 

 
    <canvas class="canvas-wire metal linear" width="200px" height="5px"></canvas> 
 

 
    <canvas class="canvas-film-1" width="20px" height="30px"></canvas> 
 

 
    <canvas id="canvas-band1" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 

 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 

 
    <canvas id="canvas-band2" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 

 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 

 
    <canvas id="canvas-band3" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 

 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 

 
    <canvas id="canvas-band4" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 

 
    <canvas class="canvas-film-2" width="20px" height="30px"></canvas> 
 

 
    <canvas class="canvas-wire metal linear" width="200px" height="5px"></canvas> 
 

 
</div>

+0

あなたはバイオリンを作ることができますしてください?また、試してみると、キャンバスの表示をブロックするように暗闇の中で撮影することもできます。 – Ionut

+0

問題を正しく指定できますか? –

答えて

1

問題は<canvas>要素です。 <canvas>アイテムにはmargin-right:-4px;を設定する必要があります。このトピックに関する

canvas { 
 
    margin-right:-4px; 
 
} 
 
.canvas-wire{ 
 
    border:1px solid #a09898; 
 
    background-color: #a09898; 
 
    vertical-align: middle; 
 
} 
 
.canvas-film-1{ 
 
    border-radius: 8px 0px 0px 8px; 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
} 
 
.canvas-film-2{ 
 
    border-radius: 0px 8px 8px 0px; 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
} 
 
.canvas-film-mid{ 
 
    background: linear-gradient(#FFEB3B, #FF9800); 
 
    vertical-align: middle; 
 
} 
 
.metal { 
 
    position: relative; 
 
    text-shadow: hsla(0,0%,40%,.5) 0 -1px 0, hsla(0,0%,100%,.6) 0 2px 1px; 
 
    background-color: hsl(0,0%,90%); 
 
} 
 
.metal.linear { 
 
    background-image: -webkit-repeating-linear-gradient(left, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,0) 6%, hsla(0,0%,100%, .1) 7.5%), -webkit-repeating-linear-gradient(left, hsla(0,0%, 0%,0) 0%, hsla(0,0%, 0%,0) 4%, hsla(0,0%, 0%,.03) 4.5%), -webkit-repeating-linear-gradient(left, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,0) 1.2%, hsla(0,0%,100%,.15) 2.2%), linear-gradient(180deg, hsl(0,0%,78%) 0%, hsl(0,0%,90%) 47%, hsl(0,0%,78%) 53%, hsl(0,0%,70%)100%); 
 
}
<div style="background-color: black; padding: 5px 10px; width: 900px; height:500px;"> 
 
    <canvas class="canvas-wire metal linear" width="200px" height="5px"></canvas> 
 
    <canvas class="canvas-film-1" width="20px" height="30px"></canvas> 
 
    <canvas id="canvas-band1" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 
    <canvas id="canvas-band2" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 
    <canvas id="canvas-band3" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 
    <canvas class="canvas-film-mid" width="20px" height="30px"></canvas> 
 
    <canvas id="canvas-band4" width="7px" height="30px" style="background-color: red; vertical-align: middle;"></canvas> 
 
    <canvas class="canvas-film-2" width="20px" height="30px"></canvas> 
 
    <canvas class="canvas-wire metal linear" width="200px" height="5px"></canvas> 
 
</div>

詳細情報:次のソリューションを参照してくださいhttps://css-tricks.com/fighting-the-space-between-inline-block-elements/

+0

働いた!ありがとう@sebastianbrosch –

+0

なぜdownvoteの確認と答えを解決する? –

+0

私はdownvotedしていない –

2

。問題を解決するには、body {margin: 0}を適用し、ラッパーdivと同じプロパティを適用するだけです。

Hereは完全なコードを持つJSfiddleです。

+0

あなたのフィドルは、キャンバスアイテムの間にスペースがあるので、問題を解決していません。問題はボディとhtml上のマージンとパディングではありません! –

+0

あなたはそうです、私はOPがキャンバス全体の縁を意味すると思いました。その後、あなたの答えは正しい –

関連する問題