回答:
display:none
非表示に設定し、表示に設定してみてくださいdisplay:block
。
display: block
、いくつかに設定する必要がありますdisplay: inline
(たとえば、<span>
または<a>
または<img>
DOMエレメント)。
hidden
しdisplay: none
ます。クラスを要素に追加して非表示にし、削除して表示します。削除すると、display
プロパティは要素のデフォルトに復元されます。
使用することdisplay:none
は、要素を削除するだけの良いオプションですが、スクリーンリーダーからも削除されます。それがSEOに影響を与えるかどうかについても議論があります。A List Apartには、そのトピックに関する優れた短い記事があります。
要素を非表示にしたいだけで削除したくない場合は、次のように使用してください:
div {
position: absolute;
left: -999em;
}
このように、スクリーンリーダーで読むこともできます。
この方法の唯一の欠点は、このDIVが実際にレンダリングされ、特に携帯電話でパフォーマンスに影響する可能性があることです。
visibility: hidden;
、あなたが他の絶対的な要素を持っているとしましょうz-index
。私が一緒に行く要素を隠すためだけにvisibility
visibility: hidden;
use を使用する代わりに、見てくださいdisplay: none;
。最初のオプションは非表示にしますが、まだスペースをとり、目のオプションは非表示になりますとしない任意のスペースを取ります。
この質問への答えは、display:noneとdisplay:blockを使用することですが、これは、cssトランジションを使用して、visibilityプロパティを使用してコンテンツを表示および非表示にしようとしているユーザーには役立ちません。
displayを使用するとcssの遷移がすべて強制終了されるため、これも私を狂わせました。
1つの解決策は、可視性を使用しているクラスにこれを追加することです。
overflow:hidden
これが機能するかどうかはレイアウトに依存しますが、常駐するdiv内に空のコンテンツを保持する必要があります。
表示:どれも解決策ではありません、それはそのスペースで要素を完全に隠します。
display:none
とvisibility: hidden
visibility:hidden
タグは表示されませんが、ページ上にタグが割り当てられます。
display:none
要素をそのスペースで完全に隠すことを意味します。(ただし、DOMを使用して操作することはできます)
display:none
非表示にして表示するように設定display:block
します。
as though they are not in the DOM at all (but without actually removing them from the DOM)
visibility: hidden
コンテンツの表示を停止するだけで、垂直/水平スペースを使用します。display:noneは、要素の垂直/水平スペースを削除します。
切り替えでdisplay
は、CSSをスムーズに移行できません。代わりに、visibility
との両方を切り替えますmax-height
。
visibility: hidden;
max-height: 0;
transform: translateX(-100%)
です。望まないdisplay: none
ここに、display:noneの後にそれらを戻す別の方法があります。display:block / inlineなどを使用しないでください。代わりに(JavaScriptを使用している場合)cssプロパティの表示を ''(つまり、空白)に設定します
私の知識以上に、それは4つの方法で可能です
<button style="display:none;"></button>
#buttonId{ display:none; }
$('#buttonId').prop('display':'none');
& $("#buttonId").css('opacity', 0);
offsetTop
、とdisplay:none
設定しますoffsetTop
使用していたここに私の解決策を0にvisibility: hidden
、私は再び要素が見えるようにする必要いったん0に幅と高さを設定し、その後、私が使用して3つの属性を削除しましたJavaScript。少しハッキーなソリューションですが、ほとんどすべてのユースケースでうまく機能します。