HTML 要素を画面外で表示したいとき
◆ とりあえず大きい数字で上のほうに置いておけば大丈夫だろう っていうのは嫌
◆ left:0; で画面左端に要素作ってその内側に right:0; の要素を入れると 画面の左隣に左側へ広がっていく要素ができる
◆ left:0; で画面左端に要素作ってその内側に right:0; の要素を入れると 画面の左隣に左側へ広がっていく要素ができる
見せたくない要素なら display:none; でいいですが 要素のサイズは確保して見せたくないものがあります
かといって visibility:hidden; みたいにスペースを開けたいものでもなくて 見た目としては完全にないものにして JavaScript で使うから幅と高さがある状態で確保しておきたいってときです
さすがに 10000px までいけば表示されないでしょうけど かなーり大きな要素だと ないとは言い切れないですし ムダに 10000 なんて数字を書いてるのもなんか嫌です
div.base は body 直下に配置します
div.base が画面左端で 0px になります
ここを基準に right:0 の div.hidden を置けば div.hidden の右端が画面の左端になるのでちょうど 画面に入らなくなります
div.hidden が大きくなっても 左側に広がっていくだけで画面に入ってくることはないです
2 重にタグで囲む分 ちょっと面倒はありますが とりあえず大きい数字で 10000 なんてやってるのよりはこっちのほうが気持ちが良いです
visibility:hidden; がついてるのは 画面に入るかもしれないということじゃなくて a タグや input タグが含まれるときに tab キーでフォーカスが移動しないようにです
かといって visibility:hidden; みたいにスペースを開けたいものでもなくて 見た目としては完全にないものにして JavaScript で使うから幅と高さがある状態で確保しておきたいってときです
よくみるの
.hidden{
position:absolute;
left:-10000px;
top:-10000px;
visibility:hidden;
}
position:absolute;
left:-10000px;
top:-10000px;
visibility:hidden;
}
さすがに 10000px までいけば表示されないでしょうけど かなーり大きな要素だと ないとは言い切れないですし ムダに 10000 なんて数字を書いてるのもなんか嫌です
画面の隣にもってくる
<div class="base"><div class="hidden">みせたくないよっっ</div></div>
.base{position:absolute;left:0;visibility:hidden;}
.hidden{position:absolute;right:0;}
.hidden{position:absolute;right:0;}
div.base は body 直下に配置します
div.base が画面左端で 0px になります
ここを基準に right:0 の div.hidden を置けば div.hidden の右端が画面の左端になるのでちょうど 画面に入らなくなります
div.hidden が大きくなっても 左側に広がっていくだけで画面に入ってくることはないです
2 重にタグで囲む分 ちょっと面倒はありますが とりあえず大きい数字で 10000 なんてやってるのよりはこっちのほうが気持ちが良いです
visibility:hidden; がついてるのは 画面に入るかもしれないということじゃなくて a タグや input タグが含まれるときに tab キーでフォーカスが移動しないようにです