1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

HTML/CSSのみで追従するスプリットスクリーンレイアウト実装

Last updated at Posted at 2022-11-04

スプリットスクリーンレイアウト

画面全体をバチコーンと分割したレイアウトをスプリットスクリーンレイアウトといい、オシャレなサイトでよく使われている印象です。
スプリットレイアウトと言われているときもあり正式名称は謎です。

実装

今回は画面を二分割した上で、片方のコンテンツがスクロールしている間、もう片方はページ上部にくっついているものを実装してみました。
SP幅(とりま749px以下)では1カラムにし、PC表示ではタイトルとテキストエリアを交互にしています。

See the Pen Untitled by MAKI I (@IKEMAKI) on CodePen.

(1カラム表示になる場合は、0.5xにするかCODEPEN上でご覧くださいm(_ _)m)

文章が入ることでHTMLが見づらいかもしれませんが、

<h2>ページのタイトル</h2>
<ul>
    <li><h3>タイトル</h3><p>テキスト</p></li>
    <li><h3>タイトル</h3><p>テキスト</p></li>
</ul>
<div>空のセクション</div>

内容はこれだけです。

ポイントとしては以下のような感じです。

  • position:stickytop:0でくっつける。heightを指定しないとくっつかない
  • 横並びはflexbox
  • orderでPCとSPの並び順を変える

PCの偶数行は左右を入れ替えたく、本当は余計な入れ子を増やさずflexやgridでうまくできないかなーと思ったのですが、
orderを使うには指定しないといけないしなーということでリスト要素にしました。
より賢いやり方があれば教えてくださいませ。

終わりに

stickyが普通に使えるようになって、jsを使わなくてもこういう表現ができるようになったのはとってもハッピーですね。
前後のセクションなど他の要素に干渉しないのも好印象です。

次はjsと組み合わせて、スクロールによってアニメーション発火するさらにオサレな感じでやってみようかと思います。

それでは!👋

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?