『作って学ぶ HTML&CSSモダンコーディング』について、Amazonの方で「2カラムの時はどうやるのか」というコメントをいただいたので、現在の2カラムの考え方についてまとめてみました。
また、これをきっかけに最近ちょっとモヤモヤしていた、これからのHTML&CSSについても書いてみました。
現在のWeb制作では、ページ全体でレイアウト構造を考えるのではなく、1カラムをベースにセクション単位で考えるのが主流です。そのため、2カラムレイアウトもセクション内に作る形で考えます。
たとえば、コードにすると次のようになります。ここではルートの<section class="twocols">でセクションを構成し、CSS Gridを使用して内部のコンテナ<div class="twocols-container">で2カラムを作っています。
<section class="twocols">
<div class="twocols-container w-container">
<div class="col">1列目</div>
<div class="col">2列目</div>
</div>
</section>
/* 2カラム */
.twocols {
padding: 100px 0;
background-color: #f3f1ed;
}
.twocols-container {
display: grid;
grid-template-columns: 1fr;
gap: 32px 25px;
}
@media (min-width: 900px) {
.twocols-container{
grid-template-columns: 7fr 3fr;
}
}
/* 横幅と左右の余白 */
.w-container {
width: min(92%, 1024px);
margin: auto;
}
このようにセクション単位で作るのは、「レスポンシブを管理しやすい」のに加えて、現在のWebサイト制作で使用される「フレームワーク的なもの」の都合が大きく影響しています。
たとえば、WordPress や React などです。
これらの都合が何かと言えば、WordPressではGutenbergのブロックですし、Reactなどではコンポーネントという考え方になります。
さらに、私達がブラウザを通して見ることのできるWebサイトのコードは、こうしたフレームワークの「出力結果」になっています。素のHTML&CSS(pure HTML&CSS)で直接書かれたページを見ることは、現状ではほとんどありません。Gutenbergのノーコード化・FSE化が進めば、目にする機会はもっと少なくなるでしょう。
そして、その「出力結果」に寄せる形で、素のHTML&CSSもセクション単位で書く流れになっています。デザインカンプを素のHTML&CSSでコーディングし、それを元にブロックのカスタマイズやコンポーネント化を行うケースを考えると、当然な流れではあるのですが…。
このような現状において、どこに軸足をおいて考えるかはとても大きな問題です。これまでと同じように、素のHTML&CSSの考え方でコードを書いていてもいいものでしょうか。
現状のHTML&CSSは、すでにこうしたフレームワークを前提としたものになっています。テクニック的なものも、素のHTML&CSSだけを軸に考えるのは難しくなってきています。
昔から「人様のコードを見て学べ」と言われてきましたが、見えるのは出力結果であるHTMLとCSSだけです。素のHTMLとCSSで書かれた参考になるコードはほぼありません。そこをどう考えるのか。
逆に、フレームワークの世界に触れてみると、テクニックの裏側にあるものが見えてきます。
最新の恩恵を受けるためには、素直にReactなどの世界に行ってしまうべきなのでは?
ちょっと軸足を動かしたほうが幸せになれるのでは?
2カラムレイアウトをきっかけに、そんなことを思う2021年末なのでした。