このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
visibility
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
visibility 属性は、グラフィック要素の表示/非表示を制御します。値をhidden またはcollapse に設定すると、現在のグラフィック要素は表示されなくなります。
メモ:テキスト要素のvisibility 属性がhidden に設定されている場合、そのテキストは表示されませんが、テキストレイアウトの計算では空間を占有します。
pointer-events 属性の値に応じて、visibility 属性がhidden に設定されているグラフィック要素もイベントを受信する場合があります。
メモ:プレゼンテーション属性であるため、visibility には対応する CSS プロパティvisibility があります。両方が指定された場合、 CSS プロパティの方が優先されます。
In this article
要素
この属性は、次の SVG 要素に対応する属性として使用することができます。
<a><audio><canvas><circle><ellipse><foreignObject><iframe><image><line><path><polygon><polyline><rect><text><textPath><tspan><video>
使用上のメモ
| 値 | visible |hidden |collapse |
|---|---|
| 値 | visible |
| アニメーション | 可 |
visibleこの値は、要素が描画されることを示します。
hiddenこの値は、要素が描画されないことを示します。ただし、要素はレンダリングツリーに属しており、つまり、
pointer-events属性に応じてポインターイベントを受け取り、tabindex属性に応じてフォーカスを受け取り、境界ボックスの計算やクリップパスに寄与し、テキストのレイアウトに影響を与えます。collapseこの値は
hiddenと同じです。
例
>例 1
html,body,svg { height: 100%;}<svg viewBox="0 0 220 120" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="200" height="100" stroke="black" stroke-width="5" fill="transparent" /> <g stroke="seagreen" stroke-width="5" fill="skyblue"> <rect x="20" y="20" width="80" height="80" visibility="visible" /> <rect x="120" y="20" width="80" height="80" visibility="hidden" /> </g></svg>例 2
次の例は、SVG 画像パスの CSSvisibility を切り替えます。
HTML
<button> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" > <path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z" /> <path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z" /> <path d="M0 0h24v24H0z" fill="none" /> </svg> <span> クリックしてね </span></button>CSS
svg { display: inline !important;}span { vertical-align: 50%;}button { line-height: 1em;}.invisible { visibility: hidden;}JavaScript
const button = document.querySelector("button");button.addEventListener("click", (evt) => { button .querySelector("svg > path:nth-of-type(1)") .classList.toggle("invisible"); button .querySelector("svg > path:nth-of-type(2)") .classList.toggle("invisible");});結果
仕様書
| Specification |
|---|
| CSS Display Module Level 3> # visibility> |
| Scalable Vector Graphics (SVG) 2> # VisibilityControl> |
ブラウザーの互換性
関連情報
display属性- CSS の
visibilityプロパティ