d3.jsを使用していくつかのSVGを描いたページがあります。 SVGグラフィックスを構築している間に、私は一定の高さである&の幅(これは私が望む最大の高さ/幅を表しています)を指定しました。これはうまく機能し、CSSで、私が望むようにすべてがページに集中しました。しかし、私はまた、画面幅が固定幅を下回ったときにSVGを拡大することを望んでいました。スケーリングの問題に取り組むためにメディアクエリを使用中にSVGを中央に置く
、私は、SVGからの高さと幅の属性を削除し、代わりにviewBox
を使用(0 0 <width> <height>
を与え、そしてpreserveAspectRatio
クール - 。今ではすべてのページの幅いっぱいに拡大縮小、すなわちのようなCSSでwidth = 100%
を。
だから、私は私のメディアクエリを追加し、彼らが働く - SVGsの最大幅は保存され、その下に、彼らは拡張され
しかし:。できるだけ早くMQSは、SVGsアクティブであり、その含有するものとして。 divを左に揃えています。私はCSSを使って長い時間を過ごしました。また、グーグルでグーグルで回っていて、それを解決できませんでした。
ここに私のコード(若干単純化されたもの)があります。誰も助けることができますか?
HTML:
<div class="overall-container">
<div class="svg-container">
<h2>Smaller SVG</h2>
<svg id="ebu-cb"
version="1.1"
baseProfile="full"
viewBox="0 0 768 576"
preserveAspectRatio="xMinYMin meet"
xmlns="http://www.w3.org/2000/svg">
</svg>
</div>
<div class="lg-svg-container">
<h2>Larger SVG</h2>
<svg id="smpte-cb-hd"
version="1.1"
baseProfile="full"
viewBox="0 0 1280 720"
preserveAspectRatio="xMinYMin meet"
shape-rendering="crispEdges"
xmlns="http://www.w3.org/2000/svg">
</svg>
</div>
</div>
CSS:
body {
text-align: center;
}
svg {
border: 2px solid black;
margin: 0 auto;
}
div {
margin-bottom: 3rem;
}
メディアクエリ:(作品が、私はメディアを追加する場合、突然SVGsとdiv
sが???整列ませ差が残っていませんSVGのインラインでクエリを実行してください)。
中央配置のためのあらゆる種類のCSSオプションがありましたが、プレースメントを変更することはできませんでした:(私はここではっきりと分かっていないと感じていますか?
注:SVGはJSファイルで生成されます。私はそれぞれのためにviewBox
の属性で指定された幅と高さで描画しています。
を、私はメディアで言及クラス '.sd'と' .hd'でマークアップのいずれかの対応する要素を見ることができないことは –
@NikhilNanjappaを問い合わせます申し訳ありませんが、今修正されました。コードを簡略化して簡略化しましたが、CSSのクラス名を変更するのを忘れました。ありがとうございました。 – arokath
あなたはsvgコンテナに最大の幅を与えました。その最大幅を維持して中央にしたいですか? –