Webエンジニア学習日記 CSS編 #09 「position」

2023年5月11日

CSS プログラミング 学習

eyecatch htmlのタグを設置していて、どうしてもデザインどおりに設置できない時に役に立つのが、"position"のプロパティです。 画面の任意の座標に設置したり、画面に追従するページトップに戻るボタンや、ドラッグで表示の画像などを動かしたりする時は、このpositionプロパティを使用しています。

positionについて

このプロパティは、一言で説明すると、タグのどのように配置するかを設定する命令です。 プロパティの値は次のようなものがあります。
propertyで使える値と説明 static : 通常のHTMLタグ状態(何も設定しない場合はこの値になっています) absolute : 絶対座標で、タグの位置を変更できます。 relative : 絶対座標の起点を設定できます。 fixed : 表示している画面の絶対座標が指定できます。 stick : 画面の上に張り付いているタブの様な効果が設定できます。
実際にサンプルを見て自分でコーディングしてみないと、なかなか理解するのが難しいと思うので、それぞれの値についてのデモを掲載しておきます。

デモ : static

staticは、通常の状態なので、設定しなくても大丈夫です。 <div class='demo-1'> <div class='object-1'></div> <div class='object-2'></div> <div class='object-3'></div> </div> <style> .demo-1{ white-space:normal; width:100%; height:auto; border:1px solid black; } .demo-1 > *{ display:inline-block; width:50px; height:50px; border:1px solid red; margin:10px; } </style>

デモ : absolute

absoluteは、起点(通常はbodyやhtmlタグ)からの絶対座標が指定できます。 DOM構造では表現できない表示ができるようになります。 デモでは、上位タグの左上から、30px x 30pxの座標に、object-2を移動させています。 <div class='demo-2'> <div class='object-1'></div> <div class='object-2'></div> <div class='object-3'></div> </div> <style> .demo-2{ white-space:normal; width:100%; height:auto; border:1px solid black; position:relative; } .demo-2 > *{ display:inline-block; width:50px; height:50px; border:1px solid red; margin:10px; } .demo-2 .object-2{ position:absolute; top:30px; left:30px; } </style>

デモ : relative

relativeを設置すると、そのタグが起点になり、設置したタグを含めて、それ以下のタグが、起点を軸に座標指定をすることができるようになります。 特定のタグの中での座標指定ができると、インライン表現がやりやすくなるでしょう。 absoluteと同じ構造にしているので、表示のされ方の違いを理解しておきましょう。 <div class='demo-3'> <div class='object-1'></div> <div class='object-2'></div> <div class='object-3'></div> </div> <style> .demo-3{ white-space:normal; width:100%; height:auto; border:1px solid black; position:relative; } .demo-3 > *{ display:inline-block; width:50px; height:50px; border:1px solid red; margin:10px; } .demo-3 .object-2{ position:relative; top:30px; left:30px; } </style>

デモ : fixed

ページを表示した時から、画面左下に表示されている赤い物体です。 クリックすると、この項目に自動スクロールするようにしています。 <a class='demo-4' href='#demo_4'>デモ : fixed</a> <style> .demo-4{ padding:10px; background-color:red; color:white!important; position:fixed; bottom:30px; left:30px; cursor:ponter; z-index:100; } </style> <h2>デモ : sticky</h2> <div class='demo-5'> <div class='scroll'> <div class='object-1'></div> <div class='object-2'></div> <div class='object-3'></div> </div> </div> <style> .demo-5{ white-space:normal; width:100%; height:100px; overflow-y:scroll; border:1px solid black; position:relative; } .demo-5 > .scroll{ height:300px; } .demo-5 > .scroll > *{ display:inline-block; width:50px; height:50px; border:1px solid red; margin:10px; } .demo-5 .object-2{ position:sticky; top:10px; } </style> デモ : fixed

デモ : sticky

stickyは、スクロールと連動して、指定されたtop,right,bottom,leftで指定された値より小さくならないように座標を固定してくれる、少し特殊な動きをする命令です。 スマートフォンなどでたまに見かける方式なので、使いこなすことで、画面の使い勝手が良くなりますよ。 <div class='demo-5'> <div class='scroll'> <div class='object-1'></div> <div class='object-2'></div> <div class='object-3'></div> </div> </div> <style> .demo-5{ white-space:normal; width:100%; height:100px; overflow-y:scroll; border:1px solid black; position:relative; } .demo-5 > .scroll{ height:300px; } .demo-5 > .scroll > *{ display:inline-block; width:50px; height:50px; border:1px solid red; margin:10px; } .demo-5 .object-2{ position:sticky; top:10px; } </style>

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ