Joken講座
HTML
CSS
目標: 自分のサイト、または自分が考える今年の高専祭のホームページを作る!
どちらを目標にしてもらっても構いません。自分で作りたいサイトがある人はそれでも構いません。
※今年の高専祭は11/3,4です
わからなかったら思いっきり手をあげて Help Meee!!!!
と叫んでください。
Webサイトのイメージ画像 = デザインカンプ
デザインカンプを先に作っておくと、作るときにとても楽になる。
プロのデザインカンプの参考資料
↑このレベルは難しいので、まずは紙でWebページの構成を図示してみよう。(3分)
だいたい頭の中で構想が出来てたら、途中でも大丈夫。
そのWebページ、実際に作っていくぞ!!
どのWebページを作るにも基礎が必要です。まずはHTMLを学ぶところから始めましょう。
とりあえず、サンプルをこちら(Github)にあげていますので、適宜参考にしてください。
HTMLはタグによって記述されます。
<開始タグ> ~ </終了タグ>
で内容を囲みます。
以下の例はhtmlタグのなかに、headタグとbodyタグがあります。
このようにして入れ子構造を作ることができます。
<!DOCTYPE html>
<html>
<head>
<!-- HEAD -->
</head>
<body>
<!-- BODY -->
<p>こんにちは</p>
</body>
</html>
自分の環境にsample1.html
というファイルを作り、そのファイルにこれをコピーしましょう。.html
の部分がHTMLの拡張子であり、このファイルがHTMLファイルであることを表しています。
作ったHTMLファイルをWebブラウザで開きましょう。(GoogleChromeなどのモダンブラウザがおすすめです)
いくつかあるWebブラウザでの開き方
sample1.html
をダブルクリックして開く。sample1.html
を右クリックして「パスをコピー(Copy Path)」する。コピーしたパスをブラウザのURL入力欄に貼り付けして読み込み。開けたら、こんなのが表示されるはずです。
GoogleChromeをお使いの方は、右クリックで開くメニューから「検証」をクリックして開発者ツールを開いてみましょう。
こんなのが開いたらOK。ここでHTMLのタグの構造が確認できます。
<head>
と<body>
の隣にある、三角ボタン(▶︎)を押してみましょう。内部の様子が確認できます。構造がツリー状になっていることがわかりますか? これをツリー構造と言います。
確認
タグ
<開始タグ> ~ </終了タグ>
で囲んで作る<p>
は段落(paragraph)。<h1>
は見出し(Header1)。属性
<html lang="en"> ~~ </html>
って書くと、langの部分が属性と呼ばれ、enの部分がその属性の値になる。htmlタグ
<html>~</html>
の直下には、<head>
と<body>
がそれぞれ一つずつ必要。lang="ja"
これでブラウザは日本語の文章であることがわかる。
headタグ
<meta charset="UTF-8">
で、文字コードを指定したり、<title>タイトル!!</title>
でページのタイトルが設定できたり、<meta name="description" content="このサイトは、〜〜です。">
でページの説明を追加できたりする。bodyタグ
コメント
<!--
から-->
までの間のテキストはコメントと見なされ、表示されない。理解できたかな?
早速実践!!
同じ所に新しくsample2.html
を作って、以下のHTMLを貼り付けて読み込もう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>奈良高専高専祭2019</title>
</head>
<body>
<!-- BODY -->
<h1>高専祭!!!</h1>
<p>こんにちは。高専祭のホームページです!</p>
</body>
</html>
↓ツリー構造はこんな感じ
↓タイトル(<title>
)はちゃんとタブに反映されたかな?
↓見出しと段落がちゃんとそれっぽくなってるかな?
見出し:h1~h6タグ
<h1>
〜 <h6>
まである。見出しの大きさで変えよう。リンク:aタグ
<a href="./sample1.html" target="_blank">サンプル1へ飛ぶ</a>
_blank
を指定すると別のタブで開くようになる。画像を表示:imgタグ
<img src="./sample.png" alt="サンプル画像">
<h2>好きな果物</h2>
<ul>
<li>りんご</li>
<li>みかん</li>
<li>スイカ</li>
</ul>
<h2>TKGの作り方</h2>
<ol>
<li>ご飯をよそう</li>
<li>生卵を割る</li>
<li>醤油をかける</li>
</ol>
とりあえず囲みたいとき:divタグ
他にもたくさんのタグ・属性があります。以下のリンク先も見ながら、自由に実行して確認してみよう。
HTML5リファレンス
要素にはブロックレベル要素とインライン要素の2種類に分けることができます。デザインする上で重要な要素です。
<h1>
とかp
とかdiv
とか<a>
とか<img>
とかコピぺして試してみよう↓
<h2>改行なし</h2>
<p>今年の高専祭は<strong>とても熱い!!!</strong></p><p>すごい!!!</p><div>高専のHPは<a href="https://nara-k.ac.jp">こちら!</a></div>
<h2>改行あり</h2>
<p>
今年の
高専祭は
<strong>
とても
熱い!!!
</strong>
</p>
これを実際にサイトで見てみると、HTMLファイル上でどれだけテキストを改行しても意味がないことがわかります。サイトの表示では、ブロックレベル要素とインライン要素の違いが、改行するかしないかを決定していることがわかりますか?
一列にズラっと並んでいても、ブロックレベル要素は横幅いっぱいに広がるので、次の要素は改行されます。
逆に、一つ一つ改行してもインライン要素は内側のテキストにフィットするので、改行されません。
langの説明の時に少し紹介したが、ほとんどの要素で共通して使用できる属性があり、汎用属性という。
詳しくはここを見て
bodyタグの中にどのように書いていけば、Webサイトが作れるだろうか? 基本的な設計の形があるので、それを学んでいこう。
ここでは基本中の基本である2つのレイアウトを取り上げます。
例1:スマホ対応が楽な、シングルページレイアウト。縦に長い。
<body>
<header>
<menu></menu>
</header>
<main>
<section id="about"></section>
<section id="works"></section>
<section id="contact"></section>
</main>
<footer></footer>
</body>
例2:サイドメニュー付きレイアウト
<body>
<header>
</header>
<div class="wrapper">
<div class="side_menu">
<menu></menu>
</div>
<main>
<section id="about"></section>
<section id="works"></section>
<section id="contact"></section>
</main>
</div>
<footer></footer>
</body>
HTMLの記述では、<div class="side_menu">
とmain
は縦に並びそうに見えますが、次回のCSSを学ぶと、このHTML構造のまま、見た目だけ横に並べることができます。
横並びにするためには、横並びにしたい要素の外に、それらをラップするためのブロックライン要素を置いた方がやりやすいです。それが<div class="wrapper">
です。
横並びには外側をブロックライン要素で囲むと覚えておいてください。基本的な構造は変わりません。
他に教えて欲しい(作りたい)特殊なレイアウト例があれば教えてください。
HTML入門はここでおしまい! 次はCSSをやります!
以下のサイトには様々なかっこいいサイトが取り上げられています。
縦長のwebデザインギャラリー・サイトリンク集|MUUUUU.ORG
このサイトを見たり、様々なサイトで検証ツールを開いたりして、構造を参考にしながら、サイトのデザインをある程度完成させてください。
課題は以下の通り。
Gitを使うぞ!!
とろんぽっと頼んだ!!!