初心者の質問です。私のsvg属性を変更しようとすると、なぜカラー変数color.svg
が機能しないのですか?他のすべてのものが動作します:他の色(後で追加されたサークル用)、およびsvgのサイズ(sizing taken from here)。Javascriptでsvg fill属性を設定する
定数:
// colors
var color = {svg: "black",
drop0: "rgba(204, 204, 255, 1)",
drop1: "orange"};
// margins
var margin = {top: 20, right: 10, bottom: 20, left: 10};
var width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
は、今私は、SVGを作成し、セットの属性を試してみてください。
// svg
var svg = d3.select("body").append("svg")
.attr({width: width + margin.left + margin.right,
height: height + margin.top + margin.bottom,
fill: color.svg})
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
// followed by stuff about adding shapes, etc, which work
私はCSSで設定したくないです。ブラウザには何のエラーもスローされません。私はこれらの行以外のすべてをコメントアウトしましたが、svgはまだ黒ではありません。
CSSのアプローチは、 '背景color'を設定することによりだろう。しかし、それがオプションでない場合は、背景となるsvgの幅と高さが同じ矩形を作成し、その上に 'fill'を設定することができます。 – JSBob
塗りつぶしを設定するとどうなるでしょうか? SVGの塗りつぶしを設定しても、SVGの背景には影響しません。ただし、SVG内に含まれているSVGグラフィックス(例:円、矩形、パス)には、独自の塗りつぶしが定義されていない場合は塗りつぶし設定*が影響します。 – meetamit
Gotcha!さて、背景として機能する長方形を作ったり、CSSで短くしたりしてください。ありがたいことに、svgには塗りつぶし属性があり、その中に含まれている他のグラフィックスにしか適用されないことを認識していなかったので、私は混乱しました。 :) – ehacinom