Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Pagesで構築したブログをスマホ対応させてみた / make mobile-c...

thatblue
September 20, 2024

GitHub Pagesで構築したブログをスマホ対応させてみた / make mobile-compatible with lightweight css framework

Sendai Frontend Meetup #13 での発表資料です。
https://sfeug.connpass.com/event/329167/

スライド中にある、モバイルブラウザのビューポートのデフォルト値について、背景となる情報をしぃるさんが補足してくださっています。
https://x.com/akathea_/status/1837074872977215794

thatblue

September 20, 2024
Tweet

More Decks by thatblue

Other Decks in Programming

Transcript

  1. ところで GitHub PagesってRubyで動いてるんですよ!(謎のドヤ) ソース ブランチからサイトを公開する場合、 GitHub Pages では、既定で Jekyll を

    使用してサイトをビルドします。 https://docs.github.com/ja/pages/getting-started-with-github-pages/about-github-page s#static-site-generators Rubyで動く静的サイトジェネレータ
  2. Flexboxとは? • 並べたアイテムをいい感じに折り返したりしてくれるレイアウト方法 ◦ 画面幅に合わせていい感じに間隔を空けて並べたり、縦方向に 並べたりもできる フレックスボックス (Flexbox) は、アイテムを行または列に並べるための 1

    次元のレ イアウト方法です。アイテムがたわんで (伸びて)追加の空間を埋めたり、縮んで小さ い空間に収まったりします。 https://developer.mozilla.org/ja/docs/Learn/CSS/CSS_layout/Flexbox
  3. 親要素の幅に合わせて いい感じに 折り返してくれる width: 400px; width: 100px width: 100px width:

    150px width : 50px width: 200px; width: 150px width : 50px width: 100px width: 100px display: flex display: inline-block
  4. レイアウトの指定 内容(雑な抜粋) pure-* というクラスを指定して レイアウトを作っていく <div class="pure-g"> <div id="main" class="pure-u-4-5">

    <!-- 本文 --> <div class="pure-g"> <div class="pure-u-1"> <!-- 最新記事 --> </div> </div> <div class="pure-g"> <div class="pure-u-1-3"> <!-- 過去の記事 --> </div> </div> </div> <aside id="aside" class="pure-u-1-5"> <!-- サイドバー --> </aside> </div>
  5. レイアウトの指定 内容(雑な抜粋) pure-g(gridの略)で グリッドレイアウトの宣言をする 指定するとdisplay:flex 属性が付く <div class="pure-g"> <div id="main"

    class="pure-u-4-5"> <!-- 本文 --> <div class="pure-g"> <div class="pure-u-1"> <!-- 最新記事 --> </div> </div> <div class="pure-g"> <div class="pure-u-1-3"> <!-- 過去の記事 --> </div> </div> </div> <aside id="aside" class="pure-u-1-5"> <!-- サイドバー --> </aside> </div>
  6. レイアウトの指定 内容(雑な抜粋) pure-u-*(unitの略)で 子要素であることの宣言をする 末尾の数字列で横幅を指定する 指定するとdisplay: inline-block 属性が付き、末尾の数字を分数と 捉えた横幅が指定される (pure-u-4-5であれば5分の4なので

    80%) <div class="pure-g"> <div id="main" class="pure-u-4-5"> <!-- 本文 --> <div class="pure-g"> <div class="pure-u-1"> <!-- 最新記事 --> </div> </div> <div class="pure-g"> <div class="pure-u-1-3"> <!-- 過去の記事 --> </div> </div> </div> <aside id="aside" class="pure-u-1-5"> <!-- サイドバー --> </aside> </div>
  7. 実際のデザインとの対応 <div class="pure-g"> <div id="main" class="pure-u-4-5"> <!-- 本文 --> <div

    class="pure-g"> <div class="pure-u-1"> <!-- 最新記事 --> </div> </div> <div class="pure-g"> <div class="pure-u-1-3"> <!-- 過去の記事 --> </div> </div> </div> <aside id="aside" class="pure-u-1-5"> <!-- サイドバー --> </aside> </div> pure-u-1 pure-u-4-5 pure-u-1-3 pure-u- 1-5
  8. メディアクエリとは? • 特定のCSSを適用する条件を指定することができるクエリ ◦ 画面サイズや、画面の向き(というかウィンドウが縦長 or 横長)などが指定 できる • 印刷用のスタイルも指定できて大変便利なんですが今回は割愛します

    CSS メディアクエリー(CSS Media Query)を使用すると、例えば、「ビューポートは 480 ピクセルよりも広い」というような、ブラウザーとデバイスの環境が指定した ルールに一致する場合にのみ CSS を適用できます。 https://developer.mozilla.org/ja/docs/Learn/CSS/CSS_layout/Media_queries
  9. レイアウトの指定 内容(updated) クラスの指定は狭い⇒広いの順で 指定していくと混乱しづらい <div class="pure-g"> <div id="main" class="pure-u-lg-4-5"> <!--

    本文 --> <div class="pure-g"> <div class="pure-u-1"> <div class="pure-g"> <!-- 最新記事 --> <div class="pure-u-md-1-2"> <!-- 最新記事サムネイル --> </div> <div class="pure-u-md-1-2"> <!-- 最新記事詳細情報 --> </div> </div> </div> </div> <div class="pure-g"> <div class="pure-u-sm-1-2 pure-u-lg-1-3"> <!-- 過去の記事 --> </div> </div> </div> <aside id="aside" class="pure-u-lg-1-5"> <!-- サイドバー --> </aside> </div>