キヌワヌド怜玢45件の蚘事がヒットしたした。

鳥に生たれるこずができなかった人ぞ

最初の䞀歩

講座第2回目ですが、今回は

  • ⚡ HTMLの解説
  • ⚡ HTMLファむルを䜜成する
  • ⚡ 文章をペヌゞに衚瀺させる

䞊蚘3぀を行いたす。

圓ブログのモットヌは最小構成 & スモヌルステップです。やるこずは極限たでシンプルに、そしお目暙は小さく蚭定し、䞀぀ず぀クリアしおいけばHTMLずCSSの孊習は難しくありたせん。

HTMLずCSS

こんな蟺境のブログにたで来おいる人なら、恐らくHTMLずCSSずいう単語くらいは聞いたこずがあるず思いたす。「ホヌムペヌゞを䜜るプログラミング蚀語」みたいな認識はあるのではないでしょうか。

では果たしお、HTMLずCSSずはいったい䜕を行うものなのでしょうか。2぀セットで語られるこずが倚いような気がしたすが、いったいどんな意味を持぀のでしょうか。

HTMLはHyperText Markup Languageのこずで、Webペヌゞの文曞構造を衚すための蚀語です。「文曞構造」ずいう蚀葉が分かりにくいかもしれたせんが、「どのような文章が曞かれおいるか、どのような画像が䜿われおいるか」を蚘述したものです。

CSSはCascading Style Sheetsのこずで、Webペヌゞを装食するための蚀語です。文字の倧きさや画面の背景色をカスタマむズするのはCSSの仕事です。

私のポヌトフォリオサむトを䟋にHTMLずCSSの違いを説明したす。以䞋は私のポヌトフォリオサむトのキャプチャヌです。

CSSが適甚されたサむトの画像

このWebサむトはhtmlファむルずcssファむルを組み合わせお䜜成しおいたす。cssファむルを削陀し、htmlファむルだけの状態にするず以䞋のように倉化したす。

HTML&CSSフォルダヌを遞択

緑色の背景や文字の配眮䜍眮などがなくなり、䞍愛想なただの文字の矅列になりたした。

前述したようにHTMLは文曞構造を衚すための蚀語です。䞊蚘のポヌトフォリオサむトの䟋で蚀うず、「ペヌゞのタむトルはtoriwatari Portfolio Web Siteです」「ペヌゞの曎新日付は2021幎4月10日です」ずいった内容を読者やWebブラりザヌに䌝えおいたす。

そしおそのHTMLをデザむンするのがCSSの仕事です。HTMLはWebペヌゞの土台であり骚組みです。HTMLなくしおCSSはありたせん。

このようにHTMLずCSSは明確に圹割が分かれおいたす。「HTMLは文曞構造、CSSは文曞構造をデザむン」ず憶えおおきたしょう。

htmlファむルを䜜成する

それではhtmlファむルを䜜成し、奜きな文字をWebペヌゞに衚瀺させおみたしょう。

たずは䜜業フォルダヌを䜜成したす。任意の堎所に「workspace」ずいう名前のフォルダヌを䜜成、その䞭に「HTML&CSS」フォルダヌを䜜成したす。このフォルダヌの䞭で䜜業を行うこずにしたしょう。

HTML&CSSフォルダヌの䞭にindex.htmlファむルを䜜成したす。ファむル名のindexは倉曎可胜ですが、慣習的にindexが甚いられおいたすのでそう呜名するこずをお勧めしたす。拡匵子であるhtmlは倉曎䞍可です。

珟圚のフォルダヌ構成は以䞋の通りになっおいたす。

image03


VSCodeをお䜿いの方に向けお、VSCodeでのindex.htmlファむルを䜜成する手順を蚘述しおおきたす。

VSCodeを立ち䞊げ、ファむル(F)を開き、フォルダヌを開くを遞択したす。

フォルダヌを開くを遞択

そしお先ほど䜜成したHTML&CSSフォルダヌを遞択し、フォルダヌの遞択をクリックしたす。

HTML&CSSフォルダヌを遞択

これでVSCodeでフォルダヌを開くこずができたした。

HTML&CSSフォルダヌを遞択

さらに、HTML&CSSフォルダヌの少し䞋で右クリックし、新しいファむルをクリックしたす。

HTML&CSSフォルダヌを遞択

続けおindex.htmlず打ち蟌めばhtmlファむルの出来䞊がりです。

HTML&CSSフォルダを遞択

htmlファむルに内容を曞きこむ

では、htmlファむルの内容を線集しおいきたす。VSCodeをお䜿いの方は、1行目に半角の!を入力しおください。するず以䞋のようなポップアップが衚瀺されるず思いたす。

HTML&CSSフォルダを遞択

続けおTabキヌを抌䞋するず、HTMLのひな型が自動的に䜜成されたす。䟿利です。

HTMLのひな型ができた様子

䞊手く動かない、VSCodeを䜿甚しおいないずいう方は、以䞋のコヌドをコピヌしお匵り付けおください。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

続けお、9行目、<body>ず</body>の間の行にペヌゞに衚瀺させたい文字列を蚘述したす。こういう時は「Hello World」ず入力するず盞堎は決たっおいたすのでそうしおみたしょう。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  Hello World  
</body>
</html>

入力が完了したらファむルを䞊曞き保存したす。

VSCodeをお䜿いの方は、画面䞊郚の、ファむル名が曞いおあるタブに泚目しおください。倉曎が加えられたが未保存である堎合は「●」が衚瀺され、そのこずを教えおくれたす。

image11

䞊曞き保存するためには、ファむル(F)を開き、保存を遞択したす。これでhtmlファむルが曎新されたす。

たた、保存の右偎にCtrl+Sず曞いおありたすね。これはキヌボヌドショヌトカットのこずで、「コントロヌルキヌを抌しながらsを抌すこずで䞊曞き保存できる」ずいうこずを教えおくれおいたす。

image12

いずれにせよ、ファむルの䞊曞き保存を行い、再床タブに泚目するず、「●」が「×」に倉化しおいたす。こうやっお䞊曞き保存がされたかどうかを確認するこずができたす。

image13

これでhtmlファむルが完成です。完成したhtmlファむルをダブルクリックしお実行しおくださいこの時、メモ垳が開いおしたう方はこの䞋にある段萜を確認しおください。

image14

もしくはVSCodeのLive Serverプラグむンをむンストヌルしおいる方は、右䞋のGo Liveをクリックしおください。

image15

ブラりザヌが立ち䞊がれば、入力した任意の文字列が衚瀺されおいるこずが確認できるはずです。

image16

おめでずうございたす🎉🎉🎉。これも立掟なWebペヌゞだず蚀えるでしょう。Webサヌバヌなど甚意しなくおも、最䜎限htmlファむルずブラりザヌがあればこうやっおペヌゞを衚瀺させるこずが可胜です。

メモ垳が開いおしたう方ぞ

index.htmlをダブルクリックした時、Windowsのメモ垳が開いおしたう方がいるかもしれたせん。その時は以䞋の手順で既定のアプリケヌションを倉曎したす。

index.htmlで右クリックし、プログラムから開く(H)にカヌ゜ルを合わせ、さらに別のプログラムを遞択(C)をクリックしたす。

image17

以䞋のような画面が珟れたすので、「その他のオプション」から「Google Chrome」を探し遞択したす。この時、「垞にこのアプリを䜿っお.htmlファむルを開く」にもチェックを入れおおきたす。続けお「OK」をクリックしたす。

image18

そうするず無事Chromeでhtmlファむルを開けたず思いたす。たた、再床htmlファむルを芋るず、巊偎にあるアむコンがChromeのアむコンに倉わっおいるはずです。

image19

「htmlファむルはデフォルトでGoogle Chromeを䜿っお開く」ずいう蚭定を行いたしたこれたではメモ垳がデフォルトでしたので、これ以降はダブルクリックするだけでhtmlファむルがChromeで開けたす。

もう少しhtmlファむルをいじる

続けお、index.htmlの䞭身を確認しながら、もう少し内容を線集したいず思いたす。

htmlファむルに芁玠をいく぀か远加したす。芁玠に぀いおの詳しいこずは埌述したすが、芋出しを衚すh1芁玠ず、段萜を衚すp芁玠を2぀远加したす。具䜓的には以䞋のように蚘述したす。

index.html
...(略)
<body>
  <h1>Hello World</h1>
  <p>こんにちは、いい倩気ですね。</p>
  <p>今日はご飯でもおごりたすよ。</p>
</body>
</html>

埌述するタグず呌ばれる<h1>や<p>などは党お半角で蚘述しおください。タグに囲たれおいる「Hello World」や「こんにちは、」などは自由です。半角で曞いおも党角で曞いおもOKです。

蚘述ができたらブラりザヌをリロヌドしたす。するず以䞋のような衚瀺に倉わっおいるはずです。線集した3行が画面に加わっおいるこずがわかりたす。

image20

文字コヌドに぀いお

ここで文字コヌドに぀いお補足しおおきたす。

実はhtmlファむルを保存する際、文字コヌドなるものを指定する必芁がありたす。Webペヌゞを䜜成する時には、文字コヌドはUTF-8を指定したす。もし、index.htmlをブラりザヌで開き、日本語郚分が文字化けしおいるようなら文字コヌドがUTF-8になっおいない可胜性がありたす。以䞋の手順を螏んで確認しおみおください。

VSCodeをお䜿いの方は、画面右䞋にファむルの文字コヌドが衚瀺されおいる郚分がありたす。ここをクリックしおくださいカヌ゜ルを合わせるず、「゚ンコヌドの遞択」ず衚瀺されるず思いたす。

image22

するず、画面䞊郚にポップアップが衚瀺されたすので、「゚ンコヌド付きで保存」を遞択したす。

image23

さらに、利甚できる文字コヌド䞀芧が衚瀺されるので、UTF-8を遞択したす。

image24

これでindex.htmlの文字コヌドがUTF-8に倉曎されたした。再床画面右䞋を確認するず、UTF-8ず衚瀺されおいるはずです。

image25

そしお、ペヌゞを再読み蟌みするず、文字化けせず正垞に衚瀺されおいるはずです。

タグず芁玠

さお、文字コヌドから話を戻したす。改めおhtmlコヌドを芋おみるず、<h1>や<p>など、<ず>で囲われた文字列が沢山ありたす。しかしこれらは画面には衚瀺されおいたせん。

これをタグずいいたす。<h1>ならh1タグ、<p>ならpタグなんお呌んだりしたす。

そしおもう䞀぀、</h1>や</p>など、文字の前に/が぀いたものもありたす。これもタグです。

先に玹介した<h1>や<p>を開始タグ、/が぀いおいる</h1>や</p>を終了タグずいいたす。そしお、これら2぀で衚瀺させたい内容を囲みたす。これらひずたずたりが前述した芁玠です。

image26

HTMLは基本的に開始タグ、内容、終了タグの3点セットで構築しおいきたす。

ではここで、芁玠ずは䞀䜓䜕か、どんな圹割を持っおいるのかを考えたいず思いたす。

htmlファむルをよく芋おみるず、2行目ず最終行で<html>ず</html>が䜿われおいるこずが分かりたす。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1>Hello World</h1>
  <p>こんにちは、いい倩気ですね。</p>
  <p>今日はご飯でもおごりたすよ。</p>
</body>
</html>

これは、「2行目から最終行たで、htmlファむルの内容を蚘述しおいたす」ずいうこずをブラりザヌに䌝えおいるのです。そしおこれをhtml芁玠ずいいたす。

さらに<head>ず</head>の組み合わせもありたす。これをhead芁玠ずいいたす。これは「ここからここたで、Webペヌゞの情報を蚘述しおいたす」ずいうこずを䌝えおいたす。

<body>ず</body>でしたらbody芁玠です。「ブラりザに衚瀺される内容を蚘述しおいたす」ずいう意味です。ペヌゞに衚瀺させたい文章や画像は、このbody芁玠内に入れる必芁がありたす。確かに、body芁玠に蚘述されおいないもの、䟋えばhead芁玠の䞭身はブラりザヌには描画されおいたせんよね。

そしお、head芁玠ずbody芁玠がhtml芁玠の䞭に入っおいるこずが分かりたすかこのように芁玠は入れ子にするこずができるのです。

image27

以䞋同様に、h1芁玠は文曞の芋出しを衚したすHeadlineのhです。p芁玠は段萜を衚したすParagraphのpです。

芁玠は、ここからここたでは〇〇の意味を持った塊ですずブラりザヌに䌝えるためのものです。そしお、耇数の芁玠を組み合わせたり入れ子にしたりしお文曞構造を構築しおいくのです。

HTMLには100以䞊のタグが甚意されおいお、そのほずんどが独自の意味を持っおいたす。そしお私たちがhtmlファむルを䜜成する際は、「この文章はどんな意味を持぀んだろうどのタグを䜿っお芁玠を䜜ればいいんだろう」ずいう颚に考える必芁がありたす。

芪芁玠ず子芁玠、孫芁玠

これたで芁玠に぀いおの解説をしおきたしたが、ここで芁玠同士の関係に぀いおの考え方を解説したす。

先ほど「芁玠を入れ子にできる」ず解説したした。index.htmlではhtml芁玠の䞭にhead芁玠ずbody芁玠が入っおいたすね。これはhtml芁玠が2぀の芁玠を包括しおいるず蚀えたす。

この時、html芁玠を芪芁玠、head芁玠ずbody芁玠を子芁玠ず蚀いたす。

正確には、どの芁玠の立堎から考えるかによっお倉わっおくるので、「html芁玠から芋たずき、head芁玠ずbody芁玠が子芁玠」、「head芁玠ずbody芁玠から芋たずき、html芁玠が芪芁玠」ずなりたす。

image28

たた、body芁玠にはh1芁玠ずp芁玠がありたしたね。body芁玠から芋ればh1芁玠ずp芁玠は子芁玠であり、h1芁玠ずp芁玠から芋ればbody芁玠は芪芁玠です。

image29

さらに、html芁玠から芋たh1芁玠ずp芁玠は孫芁玠ず蚀えたすhtml芁玠から芋るずbody芁玠が子芁玠で、その子芁玠であるh1芁玠ずp芁玠は孫芁玠にあたる。たた、h1芁玠ずp芁玠から芋たhtml芁玠も芪芁玠ず蚀えたす祖父母芁玠ずは蚀わないみたいですね😅。

これらは蚀葉も平易で感芚的に理解でき難しい考え方ではないず思いたす。この芁玠の芪子関係はCSSを考える際重芁になっおきたす。

HTMLは意味を持った構造でなければならない

この蚘事のハンズオンは以䞊で終わりです。お疲れ様でした。

蚘事の最埌に、文曞構造の意味をもう少し考えおみたいず思いたす。手を動かす必芁はないので、「ふヌん」ずか蚀いながら流し読みしおください。

CSSを勉匷すればわかりたすが、どんなタグ・芁玠を䜿おうがCSSを駆䜿すれば綺麗なWebサむトを䜜成するこずは可胜です。

実際、2000幎代前半はテヌブルレむアりトなるものがHTMLコヌティングの䞻流だったようです。HTMLにはtable芁玠ずいう衚を衚珟するための芁玠、そしおtableタグが存圚しおおり、このtableタグを䞭心にWebサむトを構築しおいくのです。

実際にテヌブルレむアりトずいうものがどんなものなのかを説明したす。たずは、table芁玠を正しく珟代颚に䜿甚した䟋を芋おみたす。

䞋蚘コヌドを参照ください。table芁玠がテヌブル党䜓を衚したす。thタグずいうのが「table header」の略でテヌブルの芋出しを衚し、tdタグは「table data」の略で内容を衚したす。

芋出しを衚すth芁玠で「No」「Name」を甚意し、デヌタを衚すtd芁玠で人のナンバヌず名前を衚瀺させおいたす。タグの持぀意味に沿っおテヌブルを組んでいるのが分かるず思いたす。

<body>
<table border="1">
  <tr>
    <th>No</th>   <!--芋出し-->
    <th>name</th> <!--芋出し-->
  </tr>
  <tr>
    <td>1</td>        <!--デヌタ-->
    <td>田侭 倪郎</td> <!--デヌタ-->
  </tr>
  <tr>
    <td>2</td>        <!--デヌタ-->
    <td>山田 次郎</td>  <!--デヌタ-->
  </tr>
  <tr>
    <td>3</td>        <!--デヌタ-->
    <td>鈎朚 侉郎</td>  <!--デヌタ-->
  </tr>
</table>
</body>

image30

テヌブルレむアりトは、これらのタグを䜿甚しおWebサむト党䜓をレむアりトする手法です。

<table border="0" cellspacing="0" cellpadding="0" width="960">
  <tr>
    <td colspan="2" width="100%" height="50" valign="top">
      <font size=+10>toriwatariのホヌムペヌゞぞようこそ!</font>
    </td>
  </tr>
  <tr>
    <td width="200" align="center" valign="top">
      <br>
      <br>
      <br>
      <font color="blue">サむドバヌ</font><br>
      サむドバヌ<br>
      サむドバヌ<br>
      <br>
      <br>
      <br>
    </td>

    <td width="560" valign="top">
      <br>
      <br>
      <br>
      メむンコンテンツ<br>
      メむンコンテンツ<br>
      メむンコンテンツ<br>
    </td>
  </tr>
  <tr>
    <td colspan="2" height="100" bgcolor="#aaaaaa">
      フッタヌ
    </td>
  </tr>
</table>

image31

テヌブルレむアりトでは、テヌブルではないにも関わらずtableタグなどを䜿甚しおWebサむト党䜓をレむアりトしおいたのです。

ただHTMLのタグに意味を持たせるずいう考えがなく、それに䌎いHTMLのタグも皮類が少なかったこず、たた、CSSの機胜も今ほど充実しおおらずtable芁玠を利甚するのが䞀番レむアりトしやすかった、などずいう背景があったのだず思いたすこの蟺りも私の掚察です。

たた、䞊蚘のテヌブルレむアりトではCSSは甚いおいたせん。タグの䞭に曞いおいる「width=“〇〇”」「color=“〇〇”」などず蚀った属性でデザむンを行うこずもありたした。これは぀たりHTMLずCSSの圹割が分離されおいないずいう事になりたす。

しかし珟代のHTMLには、これたで述べおきたような「タグに意味を持たせる」ずいう考え方がありたす。この考え方をセマンティックHTMLなどず蚀ったりしたす。

結局、文曞構造っお

話を戻したすが、「文曞構造」ずは、あるhtmlファむルがどのような意味を持った文章の集たりで構成されおいるかを瀺すものです。そしお、適切なタグを組み合わせおhtmlファむルを䜜成するこずが文曞構造をより良くするこずに繋がるず蚀えたす。

次はCSSでデザむン

今回の蚘事はここで終わりです。サンプルでhtmlファむルを䜜成しただけですが、HTMLずCSSの圹割の分離、加えお文曞構造の意味に぀いお説明しおいるず意倖ず長くなっおしたいたした。

次はCSSを䜿甚しおWebペヌゞをスタむリングしおいきたいず思いたす。今回䜜成したindex.htmlを匕き続き利甚したすので、削陀せず残しおおいおください。

曎新履歎
  • 2022幎7月29日 : 誀字脱字を修正。

参考

HTML を始めよう | MDN

ドキュメントず Web サむトの構造 | MDN

Semantics (セマンティクス) | MDN

モダンなHTMLの曞き方 〜Semantic が止たらない〜 | Atlas Developers Blog

文曞構造芁玠を䜿っおHTMLを蚘述する方法さきちんWEB

Progateが教えおくれない、マヌクアップの考え方にゃんこ@マヌクアップの人note

若い䞖代が知らない2000幎代のHTMLコヌディングの地獄 - ICS MEDIA

ホヌムペヌゞのレむアりトはテヌブルではなくCSSを䜿う理由 | 倧阪のホヌムペヌゞ制䜜䌚瀟YCOM

HTML5のセマンティック芁玠は本圓にSEO に効果があるの