1. リンク

リンクをクリックして別のページへ移動することができます。リンクを作成するには

<a>
要素を使います。(a は "anchor" の頭文字です。)
href
属性にリンク先のパスを入れます。

2. パス

パスとは

パスとは、コンピュータ上でのファイルの場所を表すものです。パスには絶対パスと相対パスの 2 種類の表し方があります。Webでは基本的に相対パスを使います。

絶対パス

コンピュータのファイルシステムは階層構造になっています。絶対パスは、階層構造の基点となる場所からのファイルの場所を表す書き方です。そのコンピュータ内での場所なので、別のコンピュータにファイルを移動させた場合は、変わってしまいます。Web サイトで使うファイルは、Web サーバーにファイルをアップロードすることが前提なので、絶対パスは使用しません。

相対パス

相対パスは、あるファイルからのファイルの場所を表す書き方です。2 つのファイルの位置関係によって決まるので、2 つのファイルの位置関係さえ保っておけば、別のコンピュータにファイルを移動させても変化しません。Web サイトで使うファイルは、Web サーバーにファイルをアップロードすることが前提なので、相対パスを使用します。

相対パスのルール

3. 演習

リンクとパスを理解するために、以下のような構造のファイルを使って演習を行います。zipファイルをダウンロードしたら解凍してデスクトップに移動し、Visual Studio Codeでフォルダを開きます。

04

ファイルは移動させないで、以下ができるようにコードを書き加えてみましょう。

  1. 「index.html」に CSS ファイル「style.css」を適用させる。
  2. 「index.html」から「page-1.html」に移動するリンクを作成する。
  3. 「page-1.html」から「index.html」に移動するリンクを作成する。
  4. 「index.html」から「page-2.html」に移動するリンクを作成する。
  5. 「page-2.html」から「index.html」に移動するリンクを作成する。
  6. 「index.html」から「page-a.html」に移動するリンクを作成する。
  7. 「page-a.html」から「index.html」に移動するリンクを作成する。
  8. 「page-a.html」から「page-b.html」に移動するリンクを作成する。

次の 4 つは自力で考えてみましょう。

  1. 「index.html」から「page-b.html」に移動するリンクを作成する。
  2. 「page-b.html」から「index.html」に移動するリンクを作成する。
  3. 「page-b.html」から「page-a.html」に移動するリンクを作成する。
  4. 全てのページに CSS ファイル「style.css」を適用させる。

4. いろいろなCSSの書き方

CSSなどでHTMLの要素を選択するセレクタには、以下のようにたくさんの種類があります。

種類説明
全称セレクタ
*
全ての要素を選択する。
要素セレクタ
p
など
要素名で要素を選択する。
classセレクタ
.example
など
class属性で要素を選択する。
idセレクタ
#example
など
id属性で要素を選択する。
複数セレクタ
ul, ol
複数の要素を選択する。
子孫セレクタ
nav ul
ある要素の要素を選択する。

参考:CSS セレクター - CSS: カスケーディングスタイルシート | MDN

全称セレクタ

全称セレクタはユニバーサルセレクタとも呼ばれ、セレクタに

*
と書くことで、全ての要素にスタイルを適用できます。

/* 全ての要素に適用する */

* {
  box-sizing: border-box;
}

要素セレクタ

要素セレクタは、

body
h1
p
img
などの要素の名前(タグの名前)で対象を指定してスタイルを適用する方法です。同じ名前の要素全てに、同じスタイルが適用されるので、個別の要素にスタイルを適用したい場合は、後述のidセレクタやclassセレクタを使います。

/* 要素の名前でスタイルを適用する */

body {
  margin: 0;
}

img {
  max-width: 100%;
}

classセレクタ

classセレクタは、特定の

class
属性がつけられた要素を選択します。最初にドット
.
を付けて HTML 要素の
class
属性の名前を指定すると、その
class
属性を持つ要素を指定できます。
class
属性は、
id
属性と異なり、同じ
class
属性を持つ要素が複数あっても良いです。

例:

htmlでclass属性をつける

<p class="sub">段落</p>

cssでclassセレクタを指定する

/* class属性で要素を指定する */

.sub {
    color: gray;
}

idセレクタ

idセレクタは、特定の

id
属性がつけられた1つの要素だけを選択します。最初にシャープ
#
を付けてHTML要素の
id
属性の名前を指定すると、その
id
属性を持つ要素を指定できます。
id
属性は、ページの中で同じ
id
属性を持つ要素が複数あってはいけません。

例:

htmlでid属性をつける

<h1 id="title">タイトル</h1>

cssでidセレクタを指定する

/* id属性で要素を指定する */

#title {
  background-color: #ffeeee;
}

複数セレクタ

複数のセレクタを

,
で区切って書くと、異なる複数の要素に同じスタイルを適用することができます。

/* 複数の要素にスタイルを適用する */

ul, ol {
  padding-left: 1.5rem;
}

子孫セレクタ

複数のセレクタをスペースを開けて書くと、ある要素の中に含まれる特定の要素だけにスタイルを適用することができます。

/* 例:ul要素の中のli要素 */

ul li {
  list-style: none;
}

その他

このほかにも、セレクタには様々な要素の指定方法があります。

セレクタの優先順位

基本的にCSSは上から順番に読み込まれていくので、後に書かれている内容で上書きされます。

ただし、セレクタの書き方には詳細度と呼ばれる優先順位があり、優先順位の高いものが適用されます。セレクタの書き方を組み合わせると複雑になりますが、以下の原則を覚えておきましょう。

idセレクタ > classセレクタ > 要素セレクタ

参考:カスケードを理解する

CSSの読み込みについて

CSSは1つのCSSを複数のHTMLに適用したり、複数のCSSを1つのHTMLに適用したりできます。 1つのCSSを複数のHTMLに読み込ませれば、複数のWebページを同じ見た目にすることができます。

5. div要素とspan要素

HTMLは基本的に、内容によって適切な要素にする(適切なタグで囲う)必要がありますが、デザインのためにいくつかの要素をグループ化したり、特定の部分だけデザインを変えたりしたい場合があります。

そういった場合は、特定の意味を持たない要素である

div
要素と
span
要素のどちらかを使いましょう。
div
要素は縦に積み重なっていくブロックの要素で、
span
要素は文章中の一部分を囲うことができるインラインの要素です。

HTMLの

div
要素

<!-- 要素をグループ化できる -->

<div>
  <h1>
    見出し
  </h1>
  <p>
    本文
  </p>
</div>

HTMLの

span
要素

<p>
  文章の中の<span>一部分だけ</span>を囲むことができる。
</p>

中央寄せのテクニック

中央寄せのテクニックを紹介しておきます。HTMLで中央寄せしたい要素を

div
要素で囲み、class属性を追加しておきます。

<div class="container">
  <!-- 中央寄せしたい内容 -->
</div>

width
max-width
で横幅を決めて、左右の
margin
を自動(
auto
)にすると、中央寄せすることができます。

.container {
    width: 100%;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

6. 中間課題

中間課題
以下の条件で1ページの自己紹介ページを作成する。自己紹介の内容は自由。

  • ChromeでもSafariでも文字化けしないようにすること。
  • 見出し、本文、リストを適切に使い分けること。
  • 自己紹介の内容に、外部のWebサイトへのリンクを入れること。
  • 必ず画像を1枚以上使用すること。顔写真である必要はありません。
    使用する画像は個人情報や著作権に配慮すること。
  • 必ずCSSを適用し、背景の色、文字の色、大きさなどで簡単なデザインをすること。

提出日:第6回 6/7(水)
授業中に提出。提出方法は授業中に指示します。