カテゴリー: HTML・CSS

ホームページの土台となるHTMLやCSSに関する情報をまとめています。ページのレイアウトやデザイン調整、ちょっとしたカスタマイズのアイデアなど、実際にすぐ使えるネタがたくさん!サイト作りをもっと楽しみたい人にぴったりです。

  • ウェブ今昔物語 第3話 tableレイアウトからfloat段落ち地獄編

    ウェブ今昔物語 第3話 tableレイアウトからfloat段落ち地獄編

    ホームページ制作がまだ「tableタグで枠を組む」時代だった頃、CSSという新しい風が吹き始めた。見た目のデザインをHTMLと切り離してコントロールできる――それは当時の制作者にとって希望の光だった。しかし、その中でも「float」によるレイアウトは、救世主であると同時に“段落ち”という新たな苦しみを生んだ。floatで横並びにしたつもりが、少しの差で要素が落ちていく…。そして気づけば、clearfixやIEハックとにらめっこする日々が始まった。

    今回は、そんなCSSレイアウト初期の試行錯誤floatとの格闘の歴史を振り返りながら、いまでは当たり前となったflexやgridの便利さを、あらためて噛みしめてみたい。

    ウェブ制作にレイアウトという概念が求められた時代

    1990年代後半から2000年代のはじめにかけて、ウェブサイトには見やすさ整理された構成といった視点が求められるようになり、文章をただ並べるだけでは足りず、どこに何を置くかといったレイアウトの考え方が少しずつ制作現場に根づきはじめていたが、当時のHTMLにはレイアウトを組むための機能がほとんどなく、制作者たちは見た目を整えるためにあの手この手を駆使してなんとか対応していた。

    改行タグを大量に入れたり、インデントを調整したり、透明の画像で無理やり余白を作ったりと、いま考えれば強引な方法ばかりだったが、それが当たり前でもあり、そんな中で登場したtableレイアウトは、見た目を表で組む手法として一気に浸透し、ページ全体をtableで構成するスタイルがごく普通のものとして受け入れられていった。

    次は、そのtable全盛期の実態と限界について振り返ってみよう。

    tableレイアウト全盛期

    CSSによる自由なレイアウトがまだ一般的でなかったころ、ウェブ制作の現場ではtableタグを使ってページ全体の構成を組む方法が主流だった。ヘッダーフッターサイドバーメインコンテンツといった各領域を表のセルで分割し、視覚的に整ったレイアウトを実現していた。

    多くのサイトが3カラム構成2段組みをtableで作り、入れ子構造を何層にも重ねて対応するのも珍しくなかった。デザインを崩さずに構築できる安心感はあったが、その反面、HTMLが極端に複雑化して、更新作業が面倒になるという弱点もあった。

    ちょっとした調整でも、複数のセルをまたぐrowspancolspanを慎重に調整しないとレイアウトが崩れるため、制作には常に神経を使う必要があった。それでも当時は、「HTMLだけでレイアウトが完結する方法」として、多くの制作者にとってこのスタイルが最適解だったのである。

    参考までに、当時よく使われていたtableレイアウトの典型例を紹介する。ヘッダーやフッターにはcolspanを使い、本文とサイドバーを2カラムで構成していた。

    当時よく使われていたtableレイアウトの典型例

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td colspan="2" bgcolor="#cccccc">
          <!-- ヘッダー -->
          <h1>サイトタイトル</h1>
        </td>
      </tr>
      <tr>
        <td width="200" valign="top" bgcolor="#eeeeee">
          <!-- サイドバー -->
          <p>ナビゲーション</p>
        </td>
        <td valign="top">
          <!-- メインコンテンツ -->
          <p>本文エリア</p>
        </td>
      </tr>
      <tr>
        <td colspan="2" bgcolor="#cccccc">
          <!-- フッター -->
          <p>© 2003 Example Inc.</p>
        </td>
      </tr>
    </table>

    このように、表組みで全体構造を実現するという考え方は当時の標準であり、レイアウトという概念そのものがまだHTMLに深く結びついていた時代だった。

    CSSの登場と期待、でもまだ自由じゃなかった

    HTMLだけでページの構造も装飾もすべて管理していた時代に、スタイルを外部に切り出せるCSSはまさに画期的な技術だった。文字の色やサイズ、背景色、余白の調整などをCSSで一元管理できるようになったことで、コードの見通しも良くなり、再利用性も高まった

    多くの制作者が、「これでtableレイアウトから解放される」と感じたはずだ。しかし、CSSの黎明期は装飾の制御こそ得意でも、レイアウト全体を自在に組むには機能が不十分だった。特に複数カラムの構成やブロック要素の並列表示にはまだ課題が多く、結局のところtableレイアウトから完全に脱却できないサイトも多かった

    さらに、ブラウザによる解釈の違いが大きく、同じCSSでも表示結果が異なることが頻発した。制作者たちはスタイルの調整を行うたびに、複数ブラウザで表示を確認しながら、微調整を重ねていく必要があった

    CSSの可能性には大きな期待が寄せられていたが、当初はまだ、レイアウトの主役というには頼りない存在だったのが正直なところである。

    float登場で段落ち地獄のはじまり

    CSSでのレイアウトが本格的に模索されはじめた頃、多くの制作者が注目したのがfloatだった。もともと画像の回り込み用に設計されたプロパティだったが、これをブロック要素に適用することで、CSSだけで横並びのレイアウトが実現できるように思えた。

    tableタグを使わずにレイアウトが組めるというのは、それまでの苦労を思えば革命的だったが、実際に運用すると多くの問題に直面することになる。なかでもやっかいだったのが、ちょっとした幅の計算ミスや余白のズレで要素が下に落ちる「段落ち」という現象だった。

    「float:left」を指定して2カラムにしようとしても、幅の合計が親要素を少しでも超えると下に回り込む。しかも当時のブラウザでは、要素のpaddingやborderが幅に含まれるかどうかが曖昧で、意図したとおりに並ばないことが多かった。

    この頃のCSSにはまだbox-sizingという便利な仕組みもなく、デフォルトではpaddingやborderを含まない「content-box」で幅が計算されるため、見た目と実際のサイズがズレやすかった。制作者たちは1px単位で微調整しながら、どうにか横並びを成立させようと苦労していた。

    paddingで落ちるwidthの罠

    floatで横並びレイアウトを組もうとしたとき、一番やっかいだったのがpaddingやborderが幅に含まれないというCSSの仕様。当時のルールでは、要素の「幅」は中身だけを対象に計算されていて、paddingやborderはあとから“追加”される扱いだった。

    たとえば、左右50%ずつにしたい要素にpaddingを足すと、その分だけ全体の幅が100%をオーバーして、意図せず下に回り込んでしまう(=段落ち)。見た目ではぴったり並んでいるように見えても、1pxでもオーバーしていれば、レイアウトは容赦なく崩れる……算数できないと泣きます。

    これを防ぐには、paddingやborderの分を自分で引いてwidthを調整するか、pxでガチガチに固定するしかなかった。でも、それってものすごく面倒だし、保守性も悪い。しかも、ブラウザによって解釈がズレるので、環境ごとにレイアウトが違って見えるなんてこともよくある話。

    「見た目どおりに並ばない」「1pxずれて落ちる」そんなトラブルは、floatレイアウトでは日常茶飯事の世界

    IEだけレイアウトが崩れるfloat地獄のエンドレス

    floatを使って要素を横並びにすると、今度は親要素の高さがゼロになるという新たな問題に悩まされるようになる。子要素を全部floatで指定すると、親が「中身がない」と判断されて、背景が消えたり、下の要素がせり上がってきたりで、レイアウトが一気に崩れる

    この高さゼロ問題に立ち向かうために登場したのがclearfix。空の要素を入れてclear: both;をかけたり、擬似要素:afterでブロックの終わりをマークしたりと、さまざまなやり方が試された。

    それでも、当時のIE(特にIE6〜7)はそう簡単には言うことを聞いてくれない。clearfixが効かない、そもそも擬似要素が認識されない、表示がバグる…というトラブルは日常茶飯事!
    そこで使われたのが、IEだけにCSSを分けて読み込む条件付きコメント
    や、* html や _padding といったIE特有のハック記法。きれいなスタイルシートの下に、IE用の裏コードがずらっと並ぶのはよくある光景だった。ウェブ業界のツワモノたちが次々とIE対策を編み出したものだ。僕もこの頃はどれだけ助けられたことか…(笑)

    floatを使えばレイアウトは柔軟になる…はずだったのに、崩れたらとりあえずclearfix、効かなきゃIE対策。
    そんな、出口の見えないfloat地獄ループに、多くの制作者がずっと足を取られていた。

    floatはレイアウト用じゃなく画像の回り込みが本職

    CSSにfloatが登場した当初、よく紹介されていたのは画像短い要素を左右に寄せて、文章を回り込ませるという使い方。たとえば、新聞や雑誌の記事のように、写真を左に置いて、その右側に本文が自然に流れ込むようなレイアウトがfloat本来の役割に近いかな(W3Cではそういう認識:以下参照)。

    “The ‘float’ property specifies whether a box should float to the left, right, or not at all. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.A floating box is positioned within the current line box. It is shifted to the left or right until it touches the containing block edge or another float. Inline content flows around the floated element.”

    公式仕様ページ(W3C) – CSS 2.1 §9.5

    けど、当時のCSSにはflexgridもなく、ブロック要素を横並びにする明確な手段がなかったから、floatで横並びが「なんとなくできそう」ってことで、カラム構成メインコンテンツの並列配置に使われたってこと。手段がなかったんだから仕方ないよね・・・(笑)

    段落ち親の高さゼロclearfixIEバグ……数々のfloatの副作用に悩まされながらもみんなが使っていたっていうのが事実だけど、それは、本来の想定を超えた使い方だったとも言えるかな。

    今のウェブ制作では、flexgridといった様々なレイアウトの方法がある。floatは、画像装飾的な要素を回り込ませたいときに使うのがちょうどいい。私も、今では画像の横に説明文を添えたいときなどに使う程度。苦労して無理やりレイアウトを組んでいたあの頃はかなりつらい時期だったけど、ま、それが今の私を作った土台にもなってるのかも・・・。

    まとめ:CSSレイアウトの前夜にいたウェブ業界

    HTMLやCSSに今のようなレイアウト機能がなかった時代、ウェブ業界は限られた手段の中でなんとか見た目を整える工夫を続けていた。段組を組むためにtableタグを使い、横並びを実現するためにfloatを無理やりレイアウトに転用し、崩れたらclearfixで直し、IEだけズレたらハックで対応する。そんな時代だった。

    今となっては非効率で遠回りなやり方にも見えるけれど、そうした時代があったからこそ、今のflexやgridのありがたみが実感できるとも言える。ウェブ業界が試行錯誤の中で積み重ねてきたノウハウは、今もどこかに受け継がれている。

    次回は、そんな混沌の時代を経て、ようやく登場する“現代的なCSSレイアウトの幕開け”、flexboxの話へと続いていく。

  • ウェブ今昔物語 第2話 ガラケー時代の奇妙な冒険編

    ウェブ今昔物語 第2話 ガラケー時代の奇妙な冒険編

    2000年代前半から10年代初頭──まだスマートフォンが存在しなかった頃、日本独自に進化した携帯電話「ガラケー」が主役だった時代だだ。

    スマホが当たり前になった今では想像しづらいかもしれないが、かつて私たちは「画面幅120px」「全体で10KB以下」「Shift_JIS必須」みたいな世界で、真剣にウェブサイトを作っていた時代があった。そう、iモードを中心としたガラケー全盛期である。

    この記事では、そんな“制限だらけのモバイル制作時代”を振り返りながら、今ではもう見ることのない技術・仕様・地雷たちを紹介していく。すべては、あの小さな画面の中で、ちゃんと「伝える」ための苦闘の記録だ。

    ちょっと懐かしさを感じながら、当時を一緒にのぞいてみよう。

    iモード時代のモバイルサイト制作を思い出す

    スマホが登場するずっと前、日本では折りたたみ式のガラケーがモバイル端末の主役だった。

    中でもDoCoMoが展開していたiモードは、“インターネットに接続できる携帯”として大ヒット。 それに続けとばかりに、auはEZweb、SoftBank(当時はJ-PHONEやボーダフォン)はYahoo!ケータイというサービスを展開していた。

    問題は、この各キャリアが微妙に異なるHTML仕様を採用していたことだ。 iモードは独自のiHTML、EZwebはHDML(のちにXHTML)など、“モバイル用HTML”が統一されていなかった

    そのため、制作者は「各キャリアごとに別ファイルを用意する」ことが前提。 「モバイルサイトを作る」というのは、**“3種類の別サイトを同時に管理する”**ようなものだった。

    また、スマホのようにレスポンシブ対応はできないので、PCサイトとは完全に切り分ける必要があった。 つまり、1つのプロジェクトにPC版+モバイル3種=4サイト分の工数が発生する時代だったわけだ。

    今では考えられないが、それが当たり前だった。

    画面幅120px、容量10KB、制限だらけの設計

    ガラケーサイト制作でまず立ちはだかるのが、画面と容量の圧倒的な制限だった。

    当時の標準的な表示領域は、幅120px・高さ130px程度。今のスマホと比べると、まるで名刺サイズのような感覚だ。

    この狭い画面に合わせて、文字サイズや改行位置を細かく調整し、少しでも「見やすく・伝わりやすく」見せる工夫が求められた。

    さらに、ファイルサイズの制限も手ごわい。1ページあたりのHTML全体が10KB以下でなければならず、
    画像についても1点20KB以下・GIFかJPEGのみ対応という条件が付きまとった。

    「どの情報を削るか」「どの画像を残すか」「どこまで装飾を諦めるか」──そんな取捨選択が、常に制作の裏側にあった。

    CSSも使えなくはなかったが、多くの機種ではスタイルシートが非対応か動作が不安定だったため、
    基本的にはタグ直書きとテーブルレイアウトで整えるのが現場の常識だった。

    制限されるからこそ工夫が生まれる──とはいえ、あれはなかなかの試練だった。

    そしてもうひとつの試練が、キャリアごとにバラバラだった「独自タグ」だ。

    ガラケー時代に存在した『独自タグ』とは?

    各キャリアの携帯サイトは、見た目こそ似ていても、中身のHTMLはまるで別物だった。
    原因は、DoCoMo・au・SoftBankのそれぞれが、独自にHTMLタグや属性を拡張・定義していたことにある。

    これにより、あるキャリアでは動いたタグが、他のキャリアでは無視されたり、場合によってはレイアウトが崩れたりもした。
    しかもこれらのタグは、PCブラウザでは表示も動作も確認できないため、実機でのテストが不可欠だった。

    通常はまずPCサイトを構築し、そこから各キャリア用のモバイルページを3つ派生させるのが定石だった。
    つまり、ひとつのWebコンテンツに対して、最大で4種類のHTMLを用意・管理する必要があったというわけだ。

    キャリア主な独自タグ・仕様備考
    DoCoMo(iモード)<i:emoji><i-mode:input>iHTML(独自HTML)仕様。タグ名も特殊
    au(EZweb)<input format="M">などHDMLやXHTMLに属性追加。独自の入力制御
    SoftBank(旧Vodafone)<emoji><accesskey> など他キャリアとの互換性なし、絵文字も独自形式

    3キャリアすべての実機で確認するなんて、正直ムリ!

    当時はキャリアが提供していた簡易チェックサービスとか、サードパーティ製のテストツールもあったにはあったけど、
    「まあ、だいたい合ってるだろう」くらいの気持ちで使っていた記憶がある。

    それでも本番でレイアウトが崩れて、朝から胃がキリキリ痛むなんてことも日常茶飯事。
    今だったら泣いてる・・・。

    これは僕の予測だが、、、ガラケーでホームページ見る人は恐らく皆無!
    無駄な努力だったのかもしれないorz

    キャリア依存の絵文字地獄とShift_JISの呪い

    ガラケー時代の“地雷”といえば、やはり絵文字文字コードの問題は外せない。まず絵文字についてだが、今のようにUnicodeで統一されている時代とは違い、当時は各キャリアがバラバラの絵文字セット内部コードを持っていた。同じハートの絵文字を表示させたいだけでも、DoCoMoauSoftBankそれぞれでまったく違うコードを書く必要があり、まるで別の言語を扱っているような感覚だった。

    さらにやっかいなのは、他キャリアの絵文字を受け取ったときの挙動で、たいていは白四角(□)になったり、記号化けになったりしてまともに表示されない。そのため、絵文字変換ライブラリを導入したり、最初から絵文字を諦めたりと、泣く泣く調整していた人も多いはずだ。

    そしてもうひとつの大きな壁が文字コード。ガラケーサイトではShift_JISが基本で、metaタグで明示しなければ文字化けはほぼ確定だった。一方で、PCサイトやCMSはUTF-8への移行が進んでおり、両対応しようとするとトラブルが続出。UTF-8で作ったページがガラケーで文字化けするという悲劇は、今でも鮮明に覚えている。

    私自身、古いCGIメールフォーム(mpmail)でShift_JISのメールをUTF-8に変換する処理に手を焼き、「???」だらけのメール本文を見て頭を抱えた経験がある。最終的にはエンコードを無理やり変換して整えたが、正直あれは呪いのようだった。

    絵文字文字コード──どちらも見た目では気づきにくく、気づいた頃には崩れている。そんな地味で厄介な罠が、ガラケー時代には潜んでいた。

    まとめ:小さな画面に詰め込んだあの頃の情熱

    スマートフォンがまだ影も形もなかった頃、日本ではガラケーがモバイルの主役だった。iモードを筆頭に、キャリアごとに違う仕様表示ルール文字コードに振り回されながら、制作者たちは120pxの小さな画面と10KBの容量に夢を詰め込んでいた。独自タグShift_JIS絵文字化けキャリア別の3分岐ソース──今では考えられないような制限と不自由さの中、それでも「少しでも使いやすく、見やすく」と知恵を絞って作り上げていた。思い出すだけで胃が痛くなるような場面も多かったけれど、あの混沌こそが、確かにモバイルウェブの原点だったのだと思う。

  • ウェブ今昔物語 第1話 HTML構造とブロックエディタの進化をめぐる編

    ウェブ今昔物語 第1話 HTML構造とブロックエディタの進化をめぐる編

    HTMLを手打ちしてきた僕の実体験から、Gutenbergで「ん?」と感じた違和感と、そこから気づいた“意味のあるマークアップ”の考え方をゆるっと紹介します。

    Gutenbergの標準構造に感じた違和感

    HTMLを触り始めたのは、まだホームページビルダーやDreamweaver(ドリームウィーバー)が一般的だった時代。気がつけばもう29年。HTMLコードをひたすら手で書いてきた、“生きた化石”みたいな制作者です。主流だった制作ソフトには一切頼らず、タグを打ち続けて鍛え上げてきたウェブオタクでもあります(笑)

    とはいえ、今でこそ「構造が意味を持つべき」なんて言ってますけど、昔はそんなの全然考えてなかったんですよ。どちらかというと、「どうすれば検索エンジンに気に入られるか?」ばかりを意識してました。今でいう“黒歴史SEO”に、どっぷりハマってたクチです。

    たとえば──

    • 背景と同じ色でキーワードを詰め込んだ「不可視テキスト」
    • フッターの端にびっしり並べた「被リンク集」
    • meta keywords に全力でキーワードを羅列しまくる

    ……とか、まぁ今思えば笑っちゃうようなことを本気でやってました(笑)でも、当時はそれが「正解」でしたし、実際に効果もありました。「被リンクを増やせば上がる」「キーワードを詰めれば順位が上がる」──そんな時代だったんです。

    でも今ではこういったSEOテクニック、見事なくらい通用しません(笑)。キーワードを詰め込もうが、リンクを並べようが、Googleのアルゴリズムにはまるっと見抜かれてスルーされます。むしろ「これ、不自然じゃない?」と突っ込まれて、順位を下げられることすらあるのが現状。昔の自分に言ってやりたい、「もうその手は効かないぞ」って(笑)。

    それからHTML5の登場とともに、「構造には意味がある」という考え方がじわじわと広まってきました。検索エンジンもユーザーも、見た目だけじゃなく“文書構造そのもの”を評価するようになってきたんですね。

    そんな流れの中、WordPressのブロックエディタ(Gutenberg)を使って記事を書いていると、ふと違和感を感じました。

    見た目はキレイに組めているのに、クラシックエディタの頃みたいに自分で構造を組んでいた感覚がない。出力されるHTMLを見ても、見出しと本文がただdivで区切られているだけで、意味のある“まとまり”が見えてこないのです。

    📌 クラシックエディタとは?
    クラシックエディタとは、WordPressに以前から標準搭載されていたシンプルな投稿画面で、HTMLを手動で整えやすいのが特徴です。クラシックエディタの頃は、自分で見出しを入れて、段落を組んで、必要なら <section> で囲んで…というふうに、構造を意識したマークアップが可能でした。

    📌 Gutenberg(ブロックエディタ)とは?
    Gutenbergとは、WordPress 5.0以降に標準搭載されたブロック型の投稿エディタで、文章や画像などの要素を「ブロック」として直感的に操作できるのが特徴です。視覚的なレイアウト編集に優れていますが、出力されるHTML構造が自動化されているため、細かいタグ構造やセマンティクスを意識したマークアップはやや行いづらくなっています。

    ウィドックではこの違和感をきっかけに、「もっと意味のあるHTMLを出力したい」と考え、独自の<section>ブロックを実装し、Gutenbergでも“まとまりのあるマークアップ”を実現できるようにしました。

    この記事では、その背景や考え方、具体的な実装方法を経験談を交えながら紹介していきます。

    sectionタグを導入する理由

    検索エンジンにも「ここからが大事!」ってわかってもらおう

    sectionタグを使うと、検索エンジンに「ここからここまでがひとまとまりですよ」とわかりやすく伝えられます。こうすることで、ページの重要な部分や内容の階層を正しく理解してもらいやすくなり、SEOにも良い影響をもたらします。たとえば、見出しとその内容がセットになっていると、検索エンジンもページの意味をバッチリ理解できます。

    スクリーンリーダーさんも助かる、読みやすい区切りづくり

    sectionタグでしっかりまとまりを作ると、スクリーンリーダーを使う人が「ここはひとつのグループだな」とわかりやすくなります。ページの区切りがはっきりしていると、読みやすく操作もしやすくなります。みんなに優しいウェブサイトを作るためには欠かせないポイントです。

    リッチな検索結果を狙うなら、構造化データとの仲良しが必須!

    きちんとsectionで区切ることで、Googleのリッチスニペットに使われる構造化データと相性バツグンになります。意味のあるまとまりで分けられていると、検索結果で目立つ表示ができてクリック率アップが期待できます。このあたりは日々進化しているので、今後も注目したいポイントです。

    Gutenbergでのブロック実装例

    WordPressのブロックエディタ、Gutenbergは確かに便利で直感的。でも生成されるHTMLの構造を見ると、どこか**「物足りないな~」**と感じることもあります。そこでウィドックでは、「ただの飾りじゃなくて、ちゃんと意味のあるsectionを出力したい!」という気持ちから、自前でsectionタグを出すカスタムブロックを作っちゃいました

    編集画面では投稿者が背景色や枠線を自由にカスタマイズできるので、思い通りに見た目を変えられます。表示画面では意味のあるsectionタグでシンプルにまとめるのがポイント。この二刀流で、「使いやすさ」と「正しいHTML構造」の両立を狙っています。

    ウィドックは面倒なビルドツールは使わず、手作業中心のシンプルな開発スタイルを貫いています。これなら必要な時にすぐ修正や拡張ができて意外と便利なんですよ。

    編集画面では背景色をRGBAで自由に入力可能、枠線の有無や位置も細かく設定できます。投稿者が気軽に見た目を変えられますが、実際のHTMLは意味のあるsectionタグのまま。まさに「わかってるカスタムブロック」です。

    独自sectionブロックの概要

    ウィドックで作ったsectionブロックは、ただの飾りじゃありません。意味のあるHTML構造を守るためのこだわりの結晶です。普通のGutenbergブロックは見た目は整っていても、HTMLはdivの寄せ集めでどこがまとまりかわかりにくいことがあります。そこでウィドックでは、「ここはひとまとまりですよ」と明示するために、ちゃんとsectionタグを使って意味を伝えることを徹底しています。

    編集画面では背景色や枠線の設定を自由に変えられるので投稿者にやさしく、表示画面は無駄をそぎ落としたシンプルなsection構造で仕上げています。このバランスが投稿者の使いやすさとSEO・アクセシビリティの両立に役立つのです。

    単なる見た目の装飾以上に、意味のある文書構造を保つための大切なブロックとして活躍しています。

    PHPとJavaScriptでの登録方法のポイント

    カスタムブロックの登録は、まずWordPressのfunctions.phpにPHPのコードを書いて「このブロックを使いますよ」と宣言するところから始まります。ここでブロックの名前や、どのスクリプトやスタイルを読み込むかを指定し、WordPressに認識させるわけです。

    編集画面の中身はJavaScriptで作っていて、投稿者が触るUI部分を制御しています。投稿者が背景色や枠線を選べるラジオボタンやカラーピッカーを用意し、直感的に設定できるようにしました。

    ウィドックではなるべくシンプルな環境構築で進め、必要な部分だけを手作業で修正・拡張できるようにしています。これにより、環境の複雑さに悩まされず、メンテナンス性を高めることが可能です。

    また、PHP・JavaScript両面での連携がスムーズになるよう、名前空間の付け方やファイルの整理にも気を配っています。こうした細かな積み重ねが、長期的な保守性や拡張性を高めるポイントになるんですね。

    カスタムブロック編集画面と表示画面の使い分け

    カスタムブロックを作るときは、編集画面と表示画面で役割をしっかり分けることがとても大事です。編集画面は投稿者が直接触る場所なので、使いやすくわかりやすい操作性が求められます。

    例えば、ウィドックのsectionブロックでは、背景色を自由に変えたり、枠線のオンオフを切り替えたり、細かく設定できるUIを用意しています。こうした設定があると、見た目のカスタマイズが簡単になるので投稿者も気軽に使えますよね。

    一方、表示画面はサイトを訪れたユーザーが実際に見る部分です。ここでは意味のあるsectionタグでしっかりまとまったHTMLを出力することに注力。装飾のための余計な余白や複雑な要素は避けて、シンプルかつ意味のある構造を保つことがポイントです。

    こうして編集画面と表示画面の使い分けをしっかり作ることで、投稿者にとって使いやすく、かつSEOやアクセシビリティに強いウェブサイトを実現できます。

    PHPでサクッとブロック登録の基本を押さえる

    WordPressでカスタムブロックを使うには、まずPHPでそのブロックを登録する必要があります。ここでは最低限のコードで**「このブロックを使いますよ」とWordPressに伝える**簡単なやり方を紹介します。

    基本的にはregister_block_type()関数を使い、ブロックの名前や編集画面用のJavaScriptファイル、スタイル用CSSファイルを指定します。

    たとえばテーマのfunctions.phpに次のように書けば、そのまま動きます。

    function wedok_register_section_block() {
        register_block_type( __DIR__ . '/blocks/section' );
    }
    add_action( 'init', 'wedok_register_section_block' );

    blocks/sectionフォルダ内にblock.jsonやJS、CSSを置いておけば、これで管理画面に新しいブロックが表示される仕組みです。まずはこのシンプルな登録の仕組みを押さえましょう。

    JavaScript(JS)で編集画面のUIを作る超シンプル実装

    sectionブロックの編集画面は、InnerBlocksを使って子ブロックを自由に追加・編集できるシンプルな構成です。投稿者は段落や見出し、画像など好きなブロックをsectionの中に自由に配置可能で、固定テキストやプレースホルダーはありません。

    JavaScriptのコードは最小限にまとめられています。

    const { registerBlockType } = wp.blocks;
    const { useBlockProps, InnerBlocks } = wp.blockEditor;
    
    registerBlockType('wedok/section', {
        edit() {
            return wp.element.createElement('section', useBlockProps(),
                wp.element.createElement(InnerBlocks)
            );
        },
        save() {
            return wp.element.createElement('section', useBlockProps.save(),
                wp.element.createElement(InnerBlocks.Content)
            );
        }
    });

    このコードにより、投稿者は編集画面で自由にコンテンツを組み立てられ、表示画面では意味のあるsectionタグで囲まれた構造が出力されます。複雑なUIは不要で、シンプルかつ直感的な実装がポイントです。

    カスタムブロック編集画面と表示画面の使い分け

    カスタムブロックを作るときは、編集画面と表示画面で役割をしっかり分けることがとても大事です。編集画面は投稿者が直接触る場所なので、使いやすくわかりやすい操作性が求められます。

    たとえばウィドックのsectionブロックでは、背景色を自由に変えたり、枠線のオンオフを切り替えたり、細かく設定できるUIを用意しています。こうした設定があると、見た目のカスタマイズが簡単になるので投稿者も気軽に使えますよね。

    一方、表示画面はサイトを訪れたユーザーが実際に見る部分です。ここでは意味のあるsectionタグでしっかりまとまったHTMLを出力することに注力。装飾のための余計な余白や複雑な要素は避けて、シンプルかつ意味のある構造を保つことがポイントです。

    こうして編集画面と表示画面の使い分けをしっかり作ることで、投稿者にとって使いやすく、かつSEOやアクセシビリティに強いウェブサイトを実現できます。

    今日のおさらいとこれからのヒント

    この記事では、WordPressのブロックエディタGutenbergで感じた構造の違和感をきっかけに、独自にsectionタグを使ったカスタムブロックを作る理由を詳しく解説しました。

    sectionタグを使うことで、検索エンジンにページ構造を正しく伝えやすくなることや、スクリーンリーダーに優しい設計となること、さらには構造化データとの相性が良くリッチな検索結果への可能性が高まることをお伝えしました。

    また、ウィドックのカスタムsectionブロックは、編集画面で見た目を自由にカスタマイズできる使いやすさと、表示画面で意味のあるHTML構造を保つ堅実さを両立させています。

    この記事を通じて、単なる見た目の良さだけでなく、意味のあるHTML構造の重要性を改めて実感していただけたら嬉しいです。

    これからのウェブ制作では、こうした「意味のある構造」と「使いやすさ」の両立がますます求められていくでしょう。

  • 見出しに装飾は不要!CSS最小限で伝わるデザインを作る方法

    見出しに装飾は不要!CSS最小限で伝わるデザインを作る方法

    見出しデザインに凝りすぎて、かえって読みづらくなっていませんか?見出しは装飾ではなく、情報の構造を伝えるための要素です。特にウェブサイトでは、フォントの太さやサイズ、余白の取り方だけで、十分に印象を与えることができます。この記事では、CSSを最小限に抑えつつ、視認性とデザイン性を両立する見出しのスタイル設計について解説します。見やすく、わかりやすいデザインを実現します。

    見出しは装飾しなくても伝わる

    Webサイトの見出しって、つい装飾したくなることがあります。ラインを入れたり、背景色をつけたり、アイコンで飾ったり…。でも実務では、そういった装飾をあえて使わないほうが読みやすいケースが多いんです。

    とくに次のようなサイトでは、装飾なしの見出しが効果を発揮する。

    • コーポレートサイトや士業・事務所系のサイト
    • コンテンツが多くて、見出しに“整理の役割”が求められるサイト
    • スマホ閲覧を前提に、スッキリと読ませたいレスポンシブサイト

    飾るよりも伝えることを優先する。見出しはそのページを“整理する道しるべ”です。

    実務で支持されるシンプルな見出し設計

    見出しを飾らないことには、明確なメリットがあります。装飾を省くことで、デザインが地味になると感じるかもしれませんが、実際は内容に集中しやすく、更新にも強いデザインになります。

    メリット解説
    視線誘導しやすい派手すぎず、文章の流れが自然になる
    デザインが統一されるページごとに見出しが変わらないから安心感が出る
    修正しやすいクラスごとにスタイルを当てていれば、あとで調整しやすい
    CMSとの相性がいいWordPressやGutenbergともスムーズに連携できる
    アクセシビリティに強い装飾に頼らず構造で伝えるから、音声読み上げなどにも対応しやすい

    見た目を盛るより、意味を正しく伝える方が、実は“伝わるデザイン”になる。

    見出しに使うHTML構造の基本

    CSSの話に入る前に、まずはどんなHTML構造にスタイルを当てるのかを明確にしておく。

    <article class="article-content">
      <h2 class="section-title">サービス案内</h2>
      <p>各サービスの内容をご紹介します。</p>
    
      <h3 class="sub-title">ホームページ制作</h3>
      <p>中小企業・個人事業主向けに、実用性の高いWebサイトを制作しています。</p>
    
      <h3 class="sub-title">写真撮影</h3>
      <p>商品・人物・店舗など、商用利用向けの写真撮影を行っています。</p>
    </article>

    ポイントは「タグに直接スタイルを当てない」こと。.section-title.sub-title のように、クラスで管理しておけば、あとからデザインを柔軟に変えられる。

    最小限のCSSで整える見出しスタイル

    見出しを整えるうえで使うCSSは、たった3つの要素だけで十分。

    フォントサイズを調整する

    .section-title {
      font-size: 1.8rem;
    }

    本文よりやや大きめのサイズにすることで、どこがセクションの区切りかが自然と伝わる。
    h3h4 にもクラスをつけて、それぞれ少しずつ小さくしていく。

    太さで見出しらしさを出す

    .section-title {
      font-weight: 700;
    }

    フォントの太さは、“ここが見出しだ”という視覚的なヒントになる。
    軽く見せたいときは 600 に下げるのもあり。

    余白で見出しの区切りを作る

    .section-title {
      margin: 2em 0 1em;
    }

    文字のまわりにちょっと余白をとるだけで読みやすくする。
    とくに上の余白を広めにすると、次の話題が始まる感じが出る。

    スタイルの実用パターン

    実務では、こうしたクラスごとのスタイルを事前にまとめておくと便利。

    .section-title {
      font-size: 1.8rem;
      font-weight: 700;
      margin: 2.5em 0 1.2em;
    }
    
    .sub-title {
      font-size: 1.4rem;
      font-weight: 600;
      margin: 2em 0 1em;
    }
    
    .mini-title {
      font-size: 1.2rem;
      font-weight: 500;
      margin: 1.5em 0 0.8em;
    }

    このくらいの差をつけておくだけでも、見出しが自然に整理される。

    避けたい見出し装飾パターン

    読みやすさ・整理しやすさを重視するなら、次のような装飾は避けた方がいい。

    装飾なぜ避けるか
    背景色をつける色が強すぎて本文より目立ってしまう
    左にラインをつける業種によっては軽く見えすぎることもある
    アイコンをつける意味より装飾が先に目立ってしまう
    アニメーションを使う集中をそいだり、モバイルでの動作が不安定になる

    見出しは飾るより、構造で見せる。これが実務で使えるスタイルの基本!

    ブロックエディタでの見出し設計

    WordPressのブロックエディタ(Gutenberg)でも、見出しは h2h4 を正しく使うだけで十分。
    大切なのは順序と階層を守ること

    見出しタグ使い方の目安
    h2大きな章やセクション(例:サービス内容)
    h3各サービスの項目(例:ホームページ制作)
    h4補足説明、Q&A、注意点など

    構造が整理されていれば、装飾がなくてもページ全体がスッキリする。

    見出しで伝えるシンプルな設計を続ける

    Webサイトにとって、見出しはただの飾りじゃない。
    情報を整理して、読みやすくするための“骨組み”になる。

    • サイズと太さと余白だけで、構造はしっかり伝わる
    • クラス指定で見出しを管理すれば、調整も簡単
    • デザインよりも“伝わりやすさ”を優先した設計が、実務では選ばれる

    誰にでも読みやすい、シンプルで整理されたページを作っていこう。

    免責事項
    設定変更・作業・インストール方法などの紹介記事はあくまで参考情報です。読者が記事をもとに実行したことによるいかなる損害・不具合についてもウィドックでは一切責任を負いません。すべて自己責任で行ってください。

  • UIデザインの定番配置がUXを高める理由と迷わせない設計の考え方

    UIデザインの定番配置がUXを高める理由と迷わせない設計の考え方

    ウェブサイトやアプリの使いやすさを大きく左右するのが、UI(ユーザーインターフェース)デザイン「配置」です。ヘッダーやナビゲーション、ボタンの位置などが直感的であればあるほど、ユーザーは迷わずに目的の操作にたどり着けます。逆に、どこに何があるのか分からないUIは、ストレスを生み離脱率の増加につながります。この記事では、多くのサイトで採用されている「定番の配置」に注目し、なぜそれがUX(ユーザー体験)を向上させるのかを、具体例を交えながら解説します。デザインの自由度を保ちつつ、迷わせない設計を実現します。

    Webデザインの定番レイアウトには理由がある

    ウェブサイトを設計するうえで、ロゴは左上、ナビゲーションは右上、サイドバーは右……といった**「定番の配置」**には、単なる慣習ではなく、明確な理由とUXの裏付けがあります。

    初めて訪れたサイトでもすぐに操作できるのは、これらの配置がユーザーの学習コストを最小限に抑えるからです。UIデザインにおいて最も重視すべきは、「目新しさ」ではなく、「迷わせないこと」です。特に中小企業のコーポレートサイトやサービス紹介ページでは、ユーザーにとっての安心感・分かりやすさが最優先されるべき要素です。

    対象読者と得られること

    この記事は、小規模サイトを制作・運用している個人事業主や中小企業の担当者を主な対象としています。
    「おしゃれなデザインにしたい」「他と差をつけたい」と考えたときに、安易に奇抜な配置に走るリスクを避け、UX視点で理にかなったサイト設計を行うためのヒントを提供します。

    具体的には以下の内容が得られます。

    • 定番配置がUX的に優れている理由
    • ページ内の導線設計の基本
    • 慣れに基づいた配置がもたらすユーザーの安心感
    • 小規模サイトでこそ有効な「当たり前デザイン」の活用方法

    ユーザーが迷わない「定番配置」の要素

    ロゴは左上、ナビゲーションは右上

    ほとんどのWebサイトでは、ロゴが左上に配置されています。これは「家の玄関」のような存在で、サイト全体の“はじまり”を象徴する場所だからです。そして、右上にはグローバルナビゲーション。ユーザーの視線移動を考慮すると、Z型・F型レイアウトにおいて視線が最後に到達する位置に主要メニューがあると認識しやすいのです。

    コンテンツは左、補足情報は右(サイドバー)

    記事やサービス紹介など、「主役」になる情報は左に置き、問い合わせや関連情報など「補足」になる情報は右に配置するのが基本です。これは、新聞や雑誌など紙メディアのレイアウトにも通じており、ユーザーの“情報の摂取順序”に沿った設計となります。

    フッターにも役割がある

    ページの最後に位置するフッターは、迷子になったユーザーを受け止める重要なパーツです。問い合わせ先やサイトマップ、SNSリンクなどを配置することで、離脱を防ぎつつ、再訪問やコンバージョンに繋げる導線を確保できます。

    なぜ「変わった配置」はUXを損なうのか?

    「目立つデザイン」や「ユニークなレイアウト」は、確かに一時的な注目を集めることができますが、それがユーザーの迷いを生む原因になることも少なくありません。

    たとえば、メニューが画面下にあったり、ハンバーガーアイコンしか存在しない構成などは、用途によっては直感的でないケースがあるため、特にWebに不慣れな層が対象のサイトでは注意が必要です。

    UXとは、単なる操作性ではなく**「ユーザーが目的を達成できる体験」**であるため、必要以上に個性を出すことが体験を妨げるのであれば、それは本末転倒です。

    定番デザインをベースに、必要な工夫を加える

    もちろん「定番を守ればそれでOK」というわけではありません。
    重要なのは、基本に沿ったうえで“優先順位や目的に応じて最適化する”ことです。

    • CTA(問い合わせボタン)の目立たせ方
    • スマホ閲覧時の折りたたみメニュー
    • コンテンツの視線誘導に合わせたアイキャッチや見出しデザイン

    など、ユーザーを迷わせないことを前提にしつつ、情報の優先順位に応じた調整を行うことで、「定番の安心感+独自の魅力」を両立させることができます。

    まとめ:慣れに寄せることがUXの最短ルート

    「突飛な配置」は一部のプロモーションサイトには向いていますが、実用性を求める中小企業のWebサイトには、定番配置こそ最適解です。

    「見た目が普通」と感じることは、逆にユーザーが自然に操作できている証拠でもあります。

    ウィドックでは、「有るべき所に、必要なものがあるデザイン」を信条に、迷わせないサイト設計を大切にしています。デザインで差をつけるよりも、使いやすさで選ばれるサイトを目指しましょう。

    免責事項
    設定変更・作業・インストール方法などの紹介記事はあくまで参考情報です。読者が記事をもとに実行したことによるいかなる損害・不具合についてもウィドックでは一切責任を負いません。すべて自己責任で行ってください。

  • W3C準拠のHTML構造がサイトの信頼性と品質を高める理由

    W3C準拠のHTML構造がサイトの信頼性と品質を高める理由

    HTML構造の正確さは、見た目やレイアウトだけでなく、サイト全体の信頼性と評価にも深く関わります。HTMLはウェブページの“設計図”として、ブラウザや検索エンジン、さらには支援技術に正確な情報を伝える役割を担っています。たとえ表示上は問題がないように見えても、見出しタグの使い方が不適切だったり、タグの入れ子が誤っていたりすると、SEOにもアクセシビリティにも悪影響を及ぼすことがあります。

    特に企業や団体のホームページでは、情報の正確な伝達や信頼性の確保が重要視されるため、W3C準拠のマークアップはその土台となります。正しいHTML構造を意識してサイトを設計することで、検索エンジンに正しく評価されやすくなり、ユーザーからの信頼や利用継続にもつながるサイト運営が可能になります。

    HTML構造の正確さは、見た目だけの問題ではありません

    HTMLは、ブラウザに正しくページを解釈させるための“設計図”です。レイアウトやスタイルが正常に見えていたとしても、文法エラーがあるHTMLは、検索エンジンや支援技術(スクリーンリーダーなど)にとって大きな障害となり得ます。

    特にビジネスサイトでは、見た目以上に「信頼性」や「アクセシビリティ」が求められる場面が増えており、その第一歩として、正しいHTML構文に基づいたマークアップが不可欠です。

    W3C HTML Validatorとは?その役割と活用意義

    W3C

    W3C(ワールド・ワイド・ウェブ・コンソーシアム)は、HTMLやCSSなどのWeb技術に関する国際的な標準(仕様)を定めている非営利団体です。日々私たちが使うホームページやアプリが、世界中のブラウザで同じように動作するように、そのルールを管理している存在です。

    このW3Cが公式に提供している検証ツールが「W3C HTML Validator」です。HTMLページのURLやソースコードを入力すると、その内容がW3Cの仕様に準拠しているかどうかを自動的にチェックしてくれます。

    W3Cバリデーションツールを活用する主なメリットは以下のとおりです。

    • HTMLの文法ミスやタグの入れ忘れを素早く発見できる
    • 誤ったマークアップによる表示崩れや動作不良を未然に防げる
    • ブラウザ間の互換性を高め、環境に左右されにくい安定した表示が実現できる
    • アクセシビリティやSEOの改善につながる可能性がある

    ウィドックでは、納品前のすべてのページに対してこのW3C Validatorを活用し、重大な文法エラーが1つも残らないように、丁寧に検証・修正を繰り返しています。これは単なるルールの遵守ではなく、信頼性・保守性・検索評価といった“品質”を支える重要な工程と考えています。

    HTML構造の乱れがもたらすトラブルとは

    HTMLの構文エラーや構造的な不整合は、次のような問題につながることがあります。

    • 検索エンジンのクロール・インデックスエラー
    • アクセシビリティツールでの読み上げミス
    • CSS・JavaScriptとの意図しない干渉
    • フォームやナビゲーションなどの機能不全
    • Google Search Consoleでの警告表示

    とくにGoogleが提供する各種ツールでは、構造の整合性がアルゴリズム評価にも影響を与えるため、SEO対策の観点からもW3C準拠は避けて通れません。

    ウィドックが大切にする「見えない品質」

    当方では、デザイン性や操作性といった「見える部分」だけでなく、ソースコードの正確性や可読性といった「見えない品質」にも重きを置いています

    たとえば以下のような対応を徹底しています。

    • 開発段階でのW3C Validatorによる繰り返し検証
    • semanticなHTML構造の採用(例:section / article / nav)
    • aria属性によるアクセシビリティ対応
    • 過剰なdivやspanの乱用を避けた構造設計
    • 将来的な保守や改修を想定したコード整備

    これはエンジニアの自己満足ではなく、お客様の利益を守るための品質保証の一環です。

    今後のSEOやウェブ標準にも対応できる体制を

    HTML仕様や検索エンジンの評価基準は、常に進化しています。そうした変化に柔軟に対応するためにも、基本に忠実なHTML設計は将来への備えでもあります。

    WeDOKでは、初期の設計段階から「W3C準拠」を前提にし、将来的なWeb環境の変化にも耐えうる構築方法を採用しています。これは単なる一時的な対応ではなく、中長期的な価値を生む制作ポリシーなのです。

    自動付与されるタグによるバリデーションエラー

    HTMLバリデーションにおいては、制作者が正しく構築したコードだけでなく、ブラウザや外部スクリプトによって自動的に追加されるコードもチェック対象になります。

    そのため、例えば以下のようなケースでは、制作者が意図していないエラーが検出されることがあります。

    <script type="speculationrules">

    このようなコードは、Google Chromeなどがパフォーマンス最適化のために一時的に挿入する非標準仕様であり、現時点ではW3Cに正式には含まれていないため、バリデータ上はエラーとして表示されます。

    ウィドックでは、HTMLの設計・構築段階において、仕様に準拠したマークアップを徹底しています。
    バリデーション結果に含まれるこうした仕様外エラーについては、発生原因を適切に判断し、サイトの品質に問題がないことを確認した上で公開しています。

    まとめ:見えないところこそ、誠実に。

    HTML構造はユーザーには見えにくい部分ですが、検索エンジン・支援技術・保守担当者など、Webのさまざまな“目”に見られています。

    WeDOKでは、すべての制作物において、W3C準拠の正しいHTML構造をベースとした設計・構築を徹底しています。信頼されるWebサイトとは、こうした見えない部分の丁寧さから生まれると考えています。

  • ウェブサイトの導線設計を成功させる3つの施策とは?

    ウェブサイトの導線設計を成功させる3つの施策とは?

    ウェブサイトを訪れたユーザーに「どこを見ればいいのか分からない」「目的の情報にたどり着けない」と思わせてしまっては、どんなに魅力的なコンテンツも活かされません。導線設計は、訪問者を目的のページへとスムーズに誘導し、成果につなげるための重要な要素です。この記事では、ウェブサイトの導線設計を成功させるために意識すべき3つの施策を取り上げ、実例を交えてわかりやすく解説します。導線の改善を通じて、サイト全体のUX(ユーザビリティ)コンバージョンの向上を目指しましょう。

    1. 集客導線(流入経路)

    役割

    サイトに訪問者を呼び込むための導線です。検索エンジン・SNS・チラシ・メール・名刺など、あらゆる流入元が対象です。

    代表的な施策例

    • Google検索に強い記事コンテンツ(SEO)
    • SNSでのシェアしやすい構成
    • チラシや名刺に「QRコード+URL」を記載

    ワンポイント

    すべての導線に「具体的な着地点(LPやトップページ)」を持たせましょう。
    SNSからのリンク先がトップページのまま…では流入後の離脱率が上がりやすくなります。

    2. 回遊導線(内部遷移)

    役割

    訪問者が1ページで終わらず、他のページも見てくれるようにする導線です。これにより滞在時間や信頼感が向上し、結果的にコンバージョン率も上がります。

    代表的な施策例

    • 関連ページへのリンク(「こちらもおすすめ」など)
    • グローバルナビ/パンくずリスト
    • サイトマップ/カテゴリ一覧

    ワンポイント

    「次にどこを見ればいいか」を常に示す設計が重要です。
    特にスマホでは、ボタンの位置やサイズ、目立ちやすさに注意しましょう。

    3. コンバージョン導線(目的達成)

    役割

    最終的に「お問い合わせ」「購入」「予約」など、ユーザーのアクションにつなげる導線です。

    代表的な施策例

    • CTA(Call to Action)ボタンの配置と文言
    • フッターに常設された問い合わせリンク
    • 各サービスページからのフォームリンク

    ワンポイント

    「今すぐ」「無料」「簡単」など、心理的ハードルを下げる言葉とともに、わかりやすく目立つ場所に配置することが大切です。

    ミス例よくある状況解決策
    CTAが1ページの一番下にしかないスクロールせずに離脱されるサイド固定や途中に複数設置する
    関連ページリンクがない読み終えた後に他の行動が取れない関連記事やサービスをレコメンドする
    SNSからのリンク先が不適切トップページに飛ばすだけ特集LPやキャンペーンページを用意する

    まとめ

    ホームページの成果は、見た目のデザインよりも「導線設計」にかかっているといっても過言ではありません。今回ご紹介した「集客導線」「回遊導線」「コンバージョン導線」の3つは、どんな業種でも共通する基本設計です。まずは自分のサイトにこれらの導線が存在するか?しっかり機能しているか?
    ぜひチェックしてみてください。

    免責事項
    設定変更・作業・インストール方法などの紹介記事はあくまで参考情報です。読者が記事をもとに実行したことによるいかなる損害・不具合についてもウィドックでは一切責任を負いません。すべて自己責任で行ってください。