CHAPTER
ナビゲーションを作り込もう
外書5サイトやウエブヘージ内の他ヘージヘリンクを設定します。 ウェブヘージ内に設定したリンクは「グローバルナビ」や「ローカルナビ」として、 さまざまなCSSフ
ロハテイやオ旨定方法を使つてデザインを作り込みます. また、ユーザがサイト内で操作に迷わないよう 「バンくずナビ」や「ヘージの先頭へ戻る」を設置します。6
搬
定 し、
リンク
新たに紹介するHttMLタグ ●a リンクを設定する 紹介する疑似クラス
Jink
未訪間のリンク :hOVer 要素にカーソルが重なっているとき :aCIVe 要素をクリックしているとき :vigted すでに訪問済みのリンク ・fOCus
要素 にフォーカスしているとき(tab キーで移動) 1絶対 ハ スや相対 ハスを理解 します 新たに紹介するCSSプ
ロパティ list-style-image リス隋己号を画像にする ・background‐image
背景画像を指定する ・background―repeat
背景画 像 の繰返 し方 法を指定する background―pOstion 背景画像 の開始位 置 を指定する 新たに紹介するCSSプ
ロバティ .box-sizing ボツクスの横幅と高さに罫 線とパディングを含むか否 かを設定する ・text‐decoration 背景画像を指定する 紹介する疑似クラス :first―child ある要素内で最初の要素 Jast―ch‖d ある要素内で最後の要素 inth―child(n) ある要素内で最初からn番 目の要素 ・:nthlast―chiid(n)ある要素内で最後からn番 目の要素 ヘ ーシ内リンク: l
リンクを
外部サイトや他のページヘのリンクなど、ブラウザでページ間を移動する基本的なリンク方法について 学習します。また、設定したリンクのリンク色をCSSで
変更します。―― ―
6‐
1‐
1
外部サイトヘリンクする
テキストにリンクを設定し、インターネット上に公開されているさまざまなウェブサイトにアクセスします。 r Q *\vh .tsi k !.re. t⇒
01 htmlを 開き、「受賞結果はこちら」 というテキストにリンクを設定します。リンクしたい部分を
<a>∼
</a>
のように囲み、aタ グには「<a href=‖ リンク先の∪RL‖ >」 のようにhref属 性を追加して、∪RLを入力します。 リンク先の∪
RLは
、ここでは「httpノ/contest basercms net/」 と設定します。[po「tfolio/01 htm]
[.…略]
くheader c■ ass="artic■eDetai■Head"> くhl c■ ass=‖pageTit■e・>cafe Debutく/hl>
くing src=“inages/img_01_01.jpg" alt="" width="720" height="390"> くp>baser CMsカフェサイト用テーマくbr>
baser cMsテーマコンテスト2012飲食店系テーマ賞受賞
(くa href=Ⅲhtしp://cOntest.basercms.net/・>受賞結果はこちらく/a>)く/P> く/header> [略.…] ブラウザで表示すると、aタ グを設定 した部分の文字色が青に変わり、下線が付きます。クリックして指定した
URLに
アクセスできるか、確認してみましょう。J2r+,
Afrt#Ft
lportfolio/o1 html] EETO baser CMSカフェ サイ ト用テーマ baser CMSテーマ コンテス ト20]2飲食店系テーマ賞受賞 同様に、「関連リンク」 と「撮影協力」部分のテキストもaタ グで囲み、それぞれアクセスしたいURLに
リンクを 設定します。 [portfolio/01 html] [.…略]くfooter c■ ass="artic■eDetailFoot"> <sectaon> <h2 class= <ul> <1i>< r < I i->': e <Ii>.: r
<ri>.
:
</ul> <,/section>くaside c■ass=“creditunit"> くp>撮影協力く/p>
くh2 class=“ heading―typec・>kitchen nestく/h2>
くp>北海道札幌市中央区南3条西8丁 目 大洋ビル2階 く/p>
くul>
くli>くa href=Ⅲhttp://、,、v、マ rle S t―kitchen ョp・>http://―。nest―kitchen.〕pく/a>く/■i>
くli>・(a href=・ http://w、N facebook.cOm/KitchenNost・ >Facebook ′ヾ―ジく/a>く/■i>
V
"heading― typeC">FIl連リンクく/h2>href=・http://basercms.net/themes/archives/14・ >Cafe Debutのタウンロギ ベージく/a>く/1i>
href=・http://cafedebut.cat―speak.net/・ >cafe DebutO)デtページく/a>く/1i> href=・http://basercms net/・ >baser CMS公式サイトく/a>く/1i>
く/u■> くp>Cafe Debutテーマのイメージ撮影にご協力いただきました。とっても素敵なお店です。く/P> く/aside> く/footer> [略.…]
ブラウザの出力結果
[portfdio/01 htm] ,horeoldrnJ,,{r , I [i]L7 Lrut I QteIa.@72>a:tsy, . cigcsrtt-a) ' !ry e.!!s 1ai! . [4a@-r4リンク先を新しいタブで開くtarget属 性
target属 性に属性値を設定すると、新 しいタブで開きます。target属 性の属性値は任意の半角英数字 を指定します。 皿 くul>1=諄
糊 爛 蹴
誦 嵐庶「
el翠
僻 蠣蔚 路
偲
> く/u■>ブラウザの出力結果
C1
新 しく開いたタブには、属性値で指定したフレーi
ム名 が付きます。 そのため、 上のように複数のリ ンク先に同じ属性値 を指定 している場合、続 けて リンクをクリツクすると、後からクリツクしたリンクが、1
先 にクリツクして開いたタブで、 ページを切 り替え て表示されます。つねに新しいタブで表示したい場合は、属性値を「target="blank‖ 」 とします。
呵
くul>
くli>くa href="http://m.nest― kitchen.jp・ しarget=・ _blankⅢ>http://―.nest―kitchen.jpく/a>く/■i>
くli>くa href="http://―.facebookocom/KitchenNest" target=・ bla nk・>Facebook ペーンく/a>く/1i>
く/u■> ブラウザの出力結果 「
ただ し、 通 常の リンクでも、 リンクテキストを 0、 三
右クリックして表示されるメニューから「新 しいタ
│
プを開 く」 を選択すれば、 新 しいタブで開くこと ができます。 リンクを新しいタブで開くかどうかは、│
ユーザの選択に委ねるべきという考え方があるため、l target属
性(とくに「target=‖ blank“」)は むや│
みに設定しないようにしましょう。リンク色を変更する
リンクの文字色はプラウザ標準値では青になっていますが、 テキストにマウスを乗せたときの文字色も変更します。 サイトのデザインに合わせて柔らかい色に変更します。また、 関連 リンク ロcaFe Debutのダウンロー ドペ_= ・ い のデ モペニ ジ ロoase・cMsaこ■サィ ト ・ Lヒ∝ュmを試 ,ダ上 撮 影 撻 ヵ⇒
関連 リン ク 撮影にカstyle cssを開き、 ページ全体のリンク(a要 素)の文字色をすべて変更するため、 セレクタを 「a」 として color
プロバティを指定します。
ブラウザの出力結果 [portfolb/01 html] [common/css/style css]
eimport ur■(http://fonts.googleapis.com/cs
s?family=Antic+Didone), body ( C。10r: #333333, } /★ リンク★/ a { CO10r: ″999966, } 田■ リンク [略.…] リンクテキストにカーソルを重ねるとカーツルが矢印から指マークに変わるので、どのリンクを選択中なのかわかりますが、 さらに変化があつたほうが選択中のリンクがよりわかりやすくなります。 右下のように、セレクタを「aihoVer」 と記述すると、カーソルを重ねたときの装飾が変わります。 ここでは、文 字色を変更しました。 ブラウザの出力結 果 [po「tfO110/01 html] 関連 リンク [common/css/style csS] [.… 略] /★ リンク★/ a { C。■。r: #999966, } a:hover { co10r: ″996600, ) [略.…]
リンクの装飾と疑似クラス
サンプルサイトでは、 セレクタ「a:hover」 と 記述 してリンク(a要 素)にカーツルが重なつている ときの文字色を変更 しましたが、 このようなセレク タを「疑似クラス」 と呼びます。 リンクには他にも、右表に示す疑似クラスのセレ クタが用意されています。 疑似 クラスによるa要
素の装飾aJlnk{c010r i999966i} a:hover{CO10r:_・ 9966001}
すべてのリンク aJink 未訪間のリンク a:hover リンクにカーソルが重なつているとき a:active リンクをクリックしているとき a:visited すでに訪問済みのリンク a:focus リンクにフォーカスしているとき(tab キーで移動)
nut>t
aivisited l colori=666666:} │1連 リン ク 田ヨ リンク a:focus { color: 1996600 1 田連 リンク ■tabキー て フォー カスが移 動 します a:active{cO10ri‐・ 339999:}冬
nM[
M0
フオーカス時は、ブラウザの標準値で「ou‖ine」 プロノヽティが指定されているため、点線で囲まれます。ou‖ineは ほとんどborderと 同じように
上下左右別々に指定することはできません。 値を指定できますが、
6‐
1‐
3
他のベージヘ リンクする
サイトの主要なナビゲーションとなる□―カルナビとグローバルナビを作成し、サイト内の他のHttMLフ アイルヘリ ンクします。 konlorlkol〕 ,osllo◎ローカルナビ
ローカルナビには、現在表示している「Cafe Debut」 以外の他の作品ヘアクセスできるようにリンクを設定します。 kolllorikol:,ls 10 Cafo Dobut サブカラム(#pageBodySub)内
の「おしらせ」 の上に、ローカルナビとなるテキストをリスト形式で挿入します。 ブラウザの出力結果 [portfolb/01 html] komorlk(〕11lasha Cafo Debut [portfolio/01 html] [.… 略] くdiv id="pageBodySub"> く tl l>くli>ハ タ│ なりたしヽFFi l去イ1い く/1i>
くli>ヽlordPressテ サインワークフ ,く/1i> くli>Cafe Debutく /11> く/ul> くsection c■ass="newsList"> くh2>おしらせく/h2> [.…略 .…] く/section> く/div> [略.…]
「2-3-1セクションタグを挿入する」(27ペ ージ)で 解 説したように、サイトの主要なナビゲーションは
<nav>
タグで囲む必要があります。グローバルナビと区別する ために、クラス「localNavi」 を追加しておきます。 [portfolio/01 htm] [.…略] くdiv id="pageBodySub">くnav class=・localNavl・ >
くul>
くli>バンタになりたヽヽ魔法使tヽく/1i>
くli>wordPressデザインワークブックく/1i> く■i>cafe Debutく /1i>
く/ul> く/nav>
くsection class=・ newsList"> くh2>おしらせく/h2> [.…略 .…] く/section> く/div> [略.…] テキストにリンクを設 定 します。href属性 に他 のHttMLファイリレのフアイル名をオ旨定 します。 [portfo lo/01 htm] [.… 略] くdiv id="pageBodysub"> くnav class="localNavi"> くu■>
hrof=・03 html・>′`ンタになりたい魔法使いく/a>く/1i>
hrof=・02 html・,WordPressデザインワークブックて/a>く/1i> href=・01 html・>Cafe Debutく/a>く/1i>
I}→
>←,
<li> : -r <li>:t: <Ii>:,r </uI> </nav> くsection c■ass="newsList"> くh2>おしらせく/h2> [.… 略 .…] く/section> く/div> [略.… 〕 まだ他のHttMLフ ァイルがないため、リンクをクリックしても「このウェブページは見つかりません」と表示されます。ブラウザの出力結果
[portfo io/01 html]ヽo1lor kO‖la、ぃ
Cafe Debut
0●
・・El
臼
www
リンク動作を確認するため、01.htmlを 複製して02.htmiと いうファイル名に変更し、「po「tfolio」 フォルダ内に
配置します。
フォルダ構成
lmages 02.htmlを テキストエディタで開き、01.htmlと の違いがわかるように、ページタイトルを変更します。 [portfolio/02 html] [.… 略]くartic■e class="artic■ eDetai■“> くheader c■ ass="artic■eDeta■■Head“>
くhl c■ass="pageTitle">wordPressデ ザインワークフラクく/hl>
くing src="images/ing_01_01.jpg" a■ t=“" width="720" height="390''>
[略.…]
臼
¨
臼
02 htmlに リンクしたテキスト「
WordPressデ
ザインワークブック」 01 htmlに リンクしたテキスト「Cafe Debut」 をクリックすると、 つのフアイル間をお互いに行き来できるようになりました。 ブラウザの出力結果 [portfdio/01 html][portfolio/02 html] 01 ninl リンク動作を確認したら、 作成したファイル02 htmlは いったん削除しておきます。01 htmlに グローバルナビな どを挿入してから02 htmlを コピーすると、効率的な作業を行うことができます。02 htmiは 、「7‐1ペ
ージを複製 しよう」(216ページ)で、再度01.htmlを 複製して追加します。◎グローバルナビ
グローノツレナビには、他のフォリレダ階層にあるファイルにもアクセスできるようにリンクを設定します。 ページヘッダー(#pageHead)内
に、グローバルナビとなるテキストをリスト形式で挿入します。)r,+f Ofrrfift
lportfolio/o l .html] をクリックすると、02 htmlに移動します。同様に、 01 htmlに 移動します。01 htmlと 02 htmlの2
Cd€ tuM │ │ 02 htnl WordPra$7Vi >2 -, a, t [portfo1lo/01 html] [.… 略] くheader id="pageHead"> くhl id="siteTitle">komorikomashaく /hl> くp id="catchcopy">1人 じゃできない[...略...]楽し いものづくり。く/p> くul> くli>ホームく/1i> くli>′ ´tした1=│ クし`こく/1i> くli>つく/:ものく/1i> くli>おといあわ│く/1i> く/ul> く/header> [略.…]グローバルナビはサイトの主要なナビゲーションのた め、
<nav>タ
グでリスト全体を囲みます。 ローカルナ ビと区別するために、クラス「globalNavi」 を追加し ておきます。 [portfollo/01 html] [.…略] くheader id="pageHead"> くhl id=“siteTitle">komorikomashaく /hl> くp id="catchcopy">1人 じゃできない[...略 ...]楽 し いものづくり。く/p>くnav c]ass=・91oballlavi・>
くul> くli>ホームく/1i> くli>わたしたちにつヽヽてく/■i> くli>つくったものく/■i> く■i>おといあわせく/1i> く/u■> くプnav> く/header> [略.…] テキストにリンクを設定します。ローカルナビのhref属 性にはフアイル名を指定しただけでしたが、グローバルナビでは、 同じフォルダに配置される 「つくつたもの」以外は、他のフォルダ階層にあるフアイルにリンクするため、「ホーム」 のリンク先は「/index html」 と記述し、「わたしたちについて」 と「おといあわせ」 は 「/フオルダ名/index html」 と記述します。 [portfo io/01 html] [.… 略]
くheader id=‖pageHead">
くhl id="siteTitle">komorikomashaく /hl>
くp id="catchcopy">1人 じゃできない[...略 ...]楽 しいものづくり。く/p> くnav c■ ass="g■obalNavュ">
くu■>
くli>くa href=・ ../index.html・>ホ ームく/a>く/■i>
くli>くa href=・ ../abot,t/index.html・>わ たしたちについてく/a>く/■i>
くli>くa href=・index.html・>つ くったものく/a>く/■i>
くli>くa href=・ . /contact/index.html・ >お といあわせく/a>く/■i>
く/u■> く/nav> く/header> [略.…] この段階では、リンクをクリックしても、まだ「このウェブページは見つかりません」と表示されます。 ブラウザの出力結果 [portfo1lo/01 html] konlo「 kornasln □ このウェプページは見つかりません
0●
― = Cafe Debut01 htmiを複製して「index htm」 というファイル名に変更し、「portfo!,o」 フォリレダ内に配置します。 フォルダ構成
臼
□
コ
tm︲
油
帆
ind
`
SEl〕
M[MO K子
lfl[肌
llle斗ンターネット上 に公 開 したときに、
URLか
ら HttMLファイル名を省略して参照することがで きます。 http://example.com/portfolio/index.html ↓http://example.com/portfolio/
index htmlを テキストェディタで開き、メインカラム(#pageBodyMain)の
内容を削除します。 [portfolio/index html] [.‥ 略] くdiv id=''pageBodyMain“ > <article class="articleDetaiI">亡
Iを:誕idll詈s:」雄祖
:I:]ttttlHead">
回
くhl c■ ass=‖pageTitle">cafe Debutく /hl>[.… 略 .‥] くp>cafe Debutテーマのイメージ撮影にご協力いただきました。とっても素敵なお店です。く/p> く/as■de> く/footer> く/artic■e> く/div> [略.…]
メインカラムに、削除した内容の代わりに見出し(pagettitle)を入力します。 ブラウザで表示し、 グローノウレナビの 「つくつたもの」 とローカルナビの 「Cafe Debut」 をクリックすると、お 互いのフアイル間を行き来できるようになつていることが確認できます。 [portfo io/index html] [.… 略〕 くdiv id="pageBody"> くdiv id="pageBodyMain"> くhl class=・ pageTitle・>つ く[たもυつく/hl> く/div> くdiv id="pageBodySub・ > [略.…] ブラウザの出力結果 [portfdio/mdex html][portfolb/01 html] 01 hinl … rndex ntrr 中 フォルダ構成
臼
www
「わたしたちについて」 ページ用に「about」 フォ ル ダを作成 し、「portfolio」 フォル ダ内の「index html」 をコピーして配置します。曰
曰
臼
曰
臼
¨
臼
p
o
r
t
f
。
︲
︲
「about」 フォルダ内のindex htmlを テキストエディタで開き、 ら「わたしたちについて」に変更します。 また、「サンプルサイトについて」(ixページ)で見たように、 持たないので、ローカルナビ部分を削除します。 [about/index html] [.¨略]
くdiv id=“pageBody">
くdiv id="PageBodyMain‖> くhl class=・pageTitle">わたしたち(こつtヽてく/hl> く/div> ページタイトリレ(pageTiJe)を「つくつたもの」か 「わたしたちについて」 のページはローカルナビを くdiv id="
<nav class=class="IocalNavj-"> fu. fi+ l
<ur> r E!'|? |
く■i>くa href="03.htm■ ">バッタになりたい1巨法イ吏いく/a>く/■■>
く■i>くa href="02.htm■ ">WordPressう言ザインワークブックく/a>く/1i> くli>くa href="01.html">Cafe Debutく /a>く/■i>
く/ul> く/nav>
くsection class="newsList“> くh2>おしらせく/h2>
くul>
く■i>くtime datetime="2013-10-01">2013.10.01く /time> コモモとモリコで、書籍「HTML/CSSの教科書(仮題)」を執筆中です。お楽しみに。く/■i>
く■i>くtime datetime=“ 2013-10¨01">2013.10.01く /time> コモモ。モリコ。ひろましゃ3人 のサイト「komOrikomasha」 をオープンしました。く/1i> く/ul> く/section> く/div> く/div> [略.…] 「わたしたちについて」のページでは、「つくつたもの」ページが他の階層にあるフアイルヘのリンクです。また、「わ たしたちについて」 は、自分自身のフアイルヘのリンクです。そのため、下記のようにリンクを修正します。 [about/index html] [.… 略] くheader id="pageHead“> くhl id=''siteTit■e">komorikomashaく /hl> くp id=“catchcopy">1人じゃできない[.… 略 ...]楽しいものづぐり。く/p> くnav c■ ass="g■oba■ Navユ ">
くu■>
くli>くa href="../index.htm■・>ホ ームく/a>く/■i>
く■i>くa href="index.html">わ たしたちにつもヽてく/a>く/■i>
く■i>くa href="../portfolio/index.htm■ ">つ くったものく/a>く/■i>
く■i>くa href="../contact/index.html・ >お といあわせく/a>く/■i>
く/ul> く/nav> く/header>
[略.…]
ブラウザで「about」 フォリレダ内のindex.htmlを 開いて、 しく動作していることを確認してみましょう。 ブラウザの出力結果 [abOut/index html] komorlkomasha わたしたちについて グローバルナビの 「つくつたもの」 をクリックし、正
一
□
一
□
www
「おといあわせ」 ページ用に「contact」 フォルダを作成し、「about」 フォリレダ内の「
index htmuを
コピーして配置します。 フォルダ構成 contact 製 複
﹁
I
J
m m曰
曰
一
一
日
c
o
m
m
。
n
臼
p
o
r
t
f
。
︲
i
。
臼
鋼
臼
一
ページタイトル (.pageTiJe)を 「わたしたちについて」から「おといあわせ」 に変更します。 [contact/index html] [.…略] くdiv id="pageBody''> くdiv id="PageBodyMain"> くhl c■ass="pageTit■e">おとしヽあわせく/hl> く/div> [略.…]「おといあわせ」のページでは、「わたしたちについて」ページが他の階層にあるファイルヘのリンクです。また、「お といあわせ」 は、自分自身のファイルヘのリンクです。そのため、下記のようにリンクを修正します。 [Contact/index html] [.…略] くheader ■d=“pageHead“> くhl id="siteTit■e">komorikomashaく/hl> くP id=“CatchcoPy“>1人じゃできない[...略 ...]楽しいものづくり。く/p> くnav c■ass="91oba■Nav工">
くol>
く■i>くa href="../index.htm■“>ホ ームく/a>く/■i>
く■i>くa href=''../abOut/index.htm■ ''>わたしたちについてくノa>く/1i> く■i>くa href=‖ ../Portfo■io/index.html">つくったものく/a>く/1i> くli>くa href=“ index.h trr■ “>お といあわせく/a>く/■i>
く/ul> く/nav> く/header> [略.…] ブラウザで「contact」 フォルダ内のindex.htmiを 開いて、グローバルナビの「わたしたちについて」をクリックし、 正しく動作していることを確認してみましょう。
ブラウザの出力結果
[Contact/index htm旧l komorikOmasha
l 。 け ‐ ‐ ,, 1 ・ ', F' おといあわせ ブラウザで、グローバルナビの「わたしたちについて」「つくつたもの」「おといあわせ」をそれぞれクリックしてみましょ う。3つ のファイル間で、お互いに行き来できるようになつていることが確認できます。ブラウザの出力結果
[abOut力ndex html]komorlkomasha l
わた したちについて「about」 フォルダ内の「index.htm」 をコピーして、いちばん上の階層の「
www」
フォルダ内に配置します。 フォルダ構成 トップページ「ホーム」は2段組みレイアウトではないので、トップページ用の index htmlを テキストエディタで開き、 メインカラム(#pageBodyMain)と
サブカラム(#pageBodySub)を
要素の内容(次のソースコードで囲つている範 囲)ごと削除します。 [index htm旧 [.… 略] くdiv id="pageBody"> <div id="pageBodyMain<hl class= " pageTitle " > btUt;blJlrt-( < / h!>
</div> 削 除 くdiv id="PageBodysub"> くsection class="newsList''> くh2>おしらせく/h2> くul>
くli>くtime datetime="2013-10-01">2013.10.01く /time> コモモとモリコで、書籍「HTML/CSSの教科書(仮題)」を執筆中です。お楽しみに。く/1i>
く■i>くtime datetime=・ 2013-10-01''>2013.10.01く /time> コモモ・モリコ・ひろましゃ3人のサイト「ko■orikomasha」をオープンしました。く/■i>
く/u■> く/section> く/div> く/div> [略.¨] nd e x 一
D
臼
c
o
m
m
。
n
臼
p
o
r
t
f
。
︲
i
。
臼
a
b
o
u
t
臼
c
o
n
t
a
c
t
一
口
一
ここで、ブラウザでトップページの表示を確認すると、 クも動作していません。
ブラウザの出力結果
Dndex htm旧korlor:komasha
CSSが
適用されておらず、グローバルナビに設置したリン<head>内
に記 述 した くlink>タ グの href属 性 値 から「./」 を削 除 し、「common/css/normalize css」「common/css/style css」 と修正すると、 トップページにも
CSSが
適用されます。 llndex html] く!DOCTYPE htm■> くhtml ■ang=“ja“> くhead> くmeta charset="utf-8"> くtitle>ベージのタイトリレく/title>くlink rel=''stylesheet" href=“ c oIIlmo n/css/normalize.css''>
くlink rel="sty■ esheet" href=“ common/css/style.css"> く/head>
くbody>
[略.…]
グローバ ルナ ビの
<a>タ
グの href属 性値 から「¨/」 を削 除 し、「わた したちにつ いて」 も「about/index.html」 と指定すると、 トツプページのグローバルナピからも各ページヘ正 しくリンクするようになります。
lndex htm旧
[.… 略]
くheader id=‖pageHead">
くhl id=''siteTit■e">komorikomashaく /hl>
くp id="catchcoPy">1人 じゃできない[.… 略 ...]楽しいものづくり。く/P> くnav class="91obalNav■">
くul>
く■i>くa href="index.htm■">ホ ームく/a>く/■■>
くli>くa href=''about/index.html''>わ たしたちについてく/a>く/■i>
くli>くa href=''portfolio/index.htm■">つ くったも0く /a>く/■i>
く■i>くa href="about/index.html">お といあわせく/a>く/1i> くノu■> く/nav> く/header> [略.…] 「ホーム」「わたしたちについて」「つくつたもの」「おといあわせ」のどのベージからも、グローバルナビのリンクをクリッ クするとお互いのファイル間を自由に行き来できるようになつていることを確認しましょう。
ブラウザの出力結果
■ホーム
[index html]
■わたしたちについて■わたしたちについて[about/index htm][about/index htm]わたしたちについて ●し3ヒ ■つくつたもの[portfolio/index htm] ■おといあわせ[contact/ndex html]
一
■
一
□
鵬宣ョ絶対バスと相対バスを理解しよう
リンクを設定する際、a要素のhref属 性に指定しているフアイルの場所の記述を「バス」 と呼びます。 くa href="index.html">リンクく/a> :..¨¨……….…………・¨¨¨¨・¨¨・¨¨¨¨¨¨・¨¨・…………・¨・HTMLフアイルの場所 を示 すハ ス a要素でHTMLフ
ァイルの場所を示す場合だけでなく、img要素で画像ファイルの場所を指定する場合や、 link要素でCSSフ
アイルの場所を指定する場合など、ファイルの場所はすべて「バス」 で記述されます。<ing src="images/1m9 01 01.jp9" alt="" $ridth="?20" height="390">
<link
rel=
◎絶対バ ス
インターネット上にあるHttMLファイリレにアクセスするには、「http://example.com/portfolio/01.
htm」 のように
URLを
指定します。このように、「httpプ/∼∼」「https://∼∼」 ではじまるフアイルの指定を「絶対バス」 と呼びます。
くa href=“ http:/′(〕xample.com/Portfolio/01.h trr l">リンクく/a>
:...・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ イ(1文寸ハ ラ2(
◎相対バ ス
相対パスは、現在のページから見て、 同 じフォリレダにフアイリレがあるとき アクセスしたいファイルがどこにあるのかを相対的に示 します。 01.htmlか ら02.htmlに リンクするには、「フア イル名」 を指定します。 01 html くa href=“ 02.html・>リンクく/a> 01 htmlか ら02 htmlに リンクする場合も同様に、 「フアイル名」 を指定します。 02 html くa href=・ 01 html“>リンクく/a>aboul
2つ
下のフォルダにフアイルがあるとき
異なるフォリ
レダにフアイリ
レがあるとき
concept 02 html1つ
下のフォルダにフアイルがあるとき
01.htmlか ら02 htmlに リンクするには、「フオ ルダ名/ファイリレ名」 のように 「/(ス ラツシュ)」 区切りで指定します。 01 html くa href="about/02.h tln■ “>リンクく/a> 02.htm:か ら01.htmlに リンクするには、「./ファ イル名」 のように指定 します。「../」 は1つ上の階 層を表しています。 02 htm! くa href="../01.htlnl">リ ンクく/a> 01 htmlか ら02 htmlに リンクするには、「フォ ルダ名/フォルダ名/ファイル名」のように、「/(ス ラツシュ)」 区切りで指定します 01.htmi くa href="about/concept/02.html''>リ ンクく/a> 02.htmlか ら01.htm:に リンクするには、「.ノ ../ ファイル名」 のように指定します。 1つ 上の階層を 表す 「../」 を、上る階層分だけ追加 します。 02 htm: くa href="../../01.htm■・>リンクく/a> 01.htmlか ら02 htm!:こリンクするには、「../フォ ル ダ名/ファイル名」 のように 「./」 で 1つ 上の 階層へ上つたあと、フォルダとファイルを指定します。 01 htm!くa href="../about/02.html''>リ ンクく/a>
02.htmlから01.htm!にリンクする場合 も同様 に、
「../フォルダ名/ファイル名」 と指定します。
02.html
ナビゲーションを作り込もう
CSSで
「口…カルナビ」や「グロー′ツレナビ」のデザインを調整し、ベージの主要なナビゲーションと
して見やすくします。
また、ユーザがサイト内で操作に迷わないよう「バンくずナビ」や「ページの先頭へ戻る」リンクを設置
します。
6-2¨
1
ローカ
Jレナビをデザインする
ローカルナビのリスト記号をアイコン画像に変更し、デザインを調整します。 おしらせ おしらせ ■ │ style cssを開き、サブカラムのローカリレナビのリスト「#pageBOdySub localNavi ul li」 `こ対 して、文 字サイズと高さを指定します。
ブラウザの出力結果 [portfolb/01 html]
Icommon/css/style css]
rdl
#pageBodysub .newslist uI Ii time { font-r,reight: bold;
display: block; )
/+ E-r)Vtc */
fpdgFBodysJD ..ocrl\lv- u-t li {
font-size:14px; Line-height:1.429;
i
/* ---
t1>h-L6A*Ffr
--- */
#pageBodyMainp
{tffi...1
リストとリストの間が詰まつているので、適切な余白を追加して見やすくします。 ブラウザの出力結果 [portfolio/01 html] [common/css/sty e Css] f@l
{-r1_
/*
E_h)vrc
*/
#pageBodysub.localNavi
uI li
{font-size:14px;
Iine-height:
1.429; margin-bottom:12px; tr ri vLcrs ) !haa.r, E fd l アイコン画像はサイト内で共通して利用します。「common」 フォルダ内に「images」 フォルダを作成して、ア イコン画像ファイリレを配置します。 サンプルサイト用のアイコン画像ファイリレ(ico_arrOw png)を 用意していますので、ダウンロードしてimagesフォ ルダに配置してください。 フォルダ構成臼
portf。︲︲。
□
abOut
臼
contact
I L I I ︲ ︲ ︱ 一 ︲ ︲ ︲ ︲ ﹂ 06/6-2-1/images/ico_arrow png 画像サイズ :4×4px
WWW I L_臼 丁目
hd以‖
耐
2コ
ー
[cO
ln3ages arro、v plng「list―style―image」 プロパ ティの値 に、 アイコン画像 ファイルのパ スを指 定 し、 リスト記号 をアイコンにします。
■画像ファイルのハスIJ、 CSSファイル(sty e css)から見て、相対ハスで指定していることに注意しましょう
)
r,
+tAfrtff;
t
[Portfolio/ot
html] Icommon/css/style css]fdl /* E-h)Vtc */ #pageBodysub .localNavi uI li { font-size:14px; Iine-height: 1.429; margin-bottom:12px;
list-sty]e-image: urf ( " .. / )-maqes/ tco,
arrow.png" ); )
tffi...1
「list―style image」 プロパテイでリスト記号を画像にしましたが、アイコンの位置が少し下にずれてしまつています。
アイコンの位置を調整したいところですが、list―Style―imageプロパティでは画像の位置を調整することができません。
そのため、リスト記号を画像にしたい場合は、「backgrOund―image」 プロバテイを利用するのが一般的です。
「list―style―image」 の代わりに「list―style―typeinonei」 を指定して、 リスト記号を非表示にします。
次に、「backgrOund―image」 プロバテイにアイコン画像ファイルの∪RLを手旨定すると、‖要素内には画像が繰 り返して敷き詰められます。
ブラウザの出力結果
[portfdio/01 html]籠
:籠 ::::籠 :│:::│:::::l: お しらせ lcommon/css/style csslt...ffi]
/*
E-r)V)-t
*/
#pageBodysub .localNavi uf Ii { font-size: 14Pxi Iine-height:1.429; margin-bottom: 12Px; Iist-styLe-type: none;background-lmage: ur1(' ..
/images,/ico-arrow.png ); )
「background― repeatno―repeat」 を追記して、背景画像の繰り返し表示を禁止します。
ブラウザの出力結果 [pOrtfo io/01 htm] Icommon/css/style.css]
t...ts1
/* E-h)t/rC */ #pageBodysub .localNavi ul Ii i font-size:14px; Iine-height:1.429; margin-bottom:12px; List-style-type3 noneibackground-image: url( "..,/inages,/ico_
^rr^u hh^" \. background-repeat ; no-repeat; ) tffi. ..1 お しらせ
一
□
一
「backgrOund―position」 ブロバティには、画像の開始位置を指定します。1番 目に、横に移動したい距離、2番 目に、 縦に移動したい距離を指定します。 ここでは、「background―positioni 0 8px」 と指定し、横位置は移動せず、縦位置を上から「8px」 移動します。)
2t
VAfrfi#Et
lportf olio/o 1 .htmi]「
―
―
20pl
ブ
Lンク
Ico m mo n /c ss/ sty le. c ss]
t...ffi1
/*
E-h)V+c*/
#pageBodysub .IocatNavi uI Ii { font-size:14px; Iine-height:1.429; margin-bottom: 12px; list-style-type: noneibackground-image: url( ".. /images/ico_
arrow.Png" ) ;
background-repeat : no-repeat i background-position: 0 Bpx;
[略.…]
アイコンが文字と重なつているため、「padding―left」 プロパテイを指定して、文字に
10pxの
左バディングを指 定して字下げします。) 2,
V
Afr/alffi*
[portfolio/O 1 .html] お しらせブラウザの出力結果
[portfolio/01 html] lcommon/css/style.csslr...
ffil/*
tr-h)v+c
*/
#pageBodysub .IocalNavi ul li { font-size:14pxi Iine-height:1.429; margin-bottom:12px; Iist-style-type! none;background-imager url( ". .
/images/ico-arrow. png" ) ; background-repeat: no-rePeati background-position: 0 8Px; padding-1eft: 10px;
i
fdl u!要素には、ブラウザの標準値で上下マージンと、左バデイングが設定されています。 上マージンは 「0」 に、下マージンは 「おしらせ」 との余白をもう少し増やしたいので、「30px」 とします。 左パディングは、 ブラウザ標準値ではリスト記号が配置されるため 「40px」 となつていますが、 ここではリスト 記号(liSt―sty!e)ではなく背景画像としてアイコン表示しているので、「0」 とします。Icom mo n /css/sty le.css]
1... ffil
/*
a-h)ttc
+/ #pageBodysub ,localNavi u1 { margin: 0 0 30px; padding-left: 0; ) #pageBodysub .local.Navi ul Ii { font-sizer l4pxi line-heights 1.429; margin-bottom: 12px; Iist-style-type : none;background-image: url ( " . . / inages /
ico-arrow.Png" ); background-repeat: no-rePeat; background-position: 0 8Px; padding-Ieft:10px; ) tB6...l
q票
当
POI‖
T ul要
素
0検
証
Google Chromeで
ローカルナビのul要素について、「要素の検証」 をすると、<ul>タグには上 下マージンと左バディングが、ブラウザ標準値で
指定されていることがわかります(要素の検証につ
いては「【POINT】
Google Chromeの
開発者ツー ル」111ページ参照)。 ブラウザの出力結果 [portfolb/01 html] 1 シ、、11.1, t:欝:+イ│ 戸●│ザt` 「,1■,ザイ ノ・F― u1 220 104 │ │■鰤
;コ背景画像 を指定する
◎
background‐
image
background―imageプロバティで
bOdy要
素に画像を指定すると、 ブラウザの表示領域全面に繰り返して表示されます。 下のような継ぎ目の目立たない画像を用意することで、 自然な背景を作ることができます。
■
│ │ブラウザの出力結果
一 ´ 06/6-2-1/images/bgl png 画像サイズ:100×100px
body {background― image: url(・../images/
bgl.png"), )
LM[MO繋
慮
[ゃ
貧
亀
酵選
i玉
曇
場
;ヂ
嵩
工
「槙覆
[琲
↓
L
ン画像素材がいくつか付属しています。また継ぎ目のないように、 自分で画像を加工する場合も あります。 なお、 インターネット上でフリーで配布されているものも多いので、「 ICOL∪MN】 画像素材を入手する」(106ベ
ージ)で紹介 しているサイトなどで探 してみてもよいでしょう。⊂
)background¨repeat
background‐ repeatプ ロバティは、
backgroundlmageプ
ロバティで指定 した画像の繰 り返 し方法 を指定することができます。 下のような画像で background― repeatプ ロバティの値を変えた際の表示を確認してみましょう。 06/6‐2‐1/images/bg2 png 画像サイズ :5×5px
値に「
no―repeat」を指定すると、画像を
1回だけ表示して繰り返しません。
ブラウザの出力結果
値に 「repeat‐x」 と指定すると、横方向にのみ画像を繰り返して表示します。ブラウザの出力結果
komorlkomasha
・ らtした 三,「it: oつく ■tt' ・ ′ ` 'うな1・Cafe Debut
komorlkomasha
・ うit´た ちに '_f ・ ラ く tt, 。 ●こ・_‐lt trCafe Debut
body {background-inage:
url
( ". ./inages/
b92.png" );
background-repeat
:
no-rePeat i )body {
background― image: ur■(・../images/
b92.png"),
background―repeat: repeat―x;
値に「repeat‐y」 と指定すると、縦方向にのみ画像を繰り返して表示します。
ブラウザの出力結果
body {
backgrou nd・・image: ur■("../images/ bg2.png"),
background・‐repeat: repeat―y,
}
C)background¨
position
backgrOund‐posniOnプロバティは、 background‐imageプロバティで指定した画像の開始位置を
指定することができます。 次のように、横方向・縦方向の順でスペース区切りで値を指定します。
ブラウザの出力結果
komorikOmasha l
人 じゃできないことII. 方を合ゎせれ:ができる.0ってみた●ヽそカタチにする 3人 │Cafe Debut
ヽ ― 「6-2-4ベージ内リンクを設置する」(204ページ)で後述するように、値を「%」 で指定することも可能です。一
■
body {background-image: url( ". . /inages/
bg2.png" ) ;
background-repeat: no-repeati background-position: 1opx 2Opx; )
また、「
left,center,nght」のように、キーワードで指定することも可能です。次の例では、
繰り返した画像に対して「
bottom」を指定しています。
ブラウザの出力結果
口彫●カ kltchen no" Jヒ湾コ軋,市中央区南3^● ar目大澪ピル2● ・ … 螢 じКitChe¨ ・ FaC9り oΩヒヘ■2 C“ o Oobutテーマのイメージ■影にこ■力もヽただきました.とってもCOpy"hte 20i3 0komlkomas■ NI R●鷹s Re"rved
body {
background-funage:
url(
". . / images/ b92.png" ) t background-repeat:
repeat-xi
background-position: bottomi )C)background
backgroundプ
ロノヽティは、 次 のようにbackground関
連 のプロノヽティの値 をまとめて指 定できます 。 スペ ース区切 りで順不 同で指 定 し、 値 を省略することも可能です。 body {background: #FFFFFF ur■ (''・・/11nages/bg2.pngl')no―repeat 10Px 20px,
} : : : :
::l
コ
:0[UM‖
アイコン画像を作るには
ウェブデザインの現場では、アイコン画像はおもに、
Photoshopや
F:reworks、 または Ⅲustratorなどのソフトを使つて制作します。 第4章 で紹介した画像編集ソフト「Pixlr」 は、写真編集が主機能になつているので、アイコンやイラス トなどの制作にはあまり向いていませんが、 アイコン画像 はインターネット上でフリーで配布されているも のも多く、学習の初期段階ではこれらを利用してみるのもよいでしょう。 本書では、アイコンの配布先の一例として、lcoMoonというサイトを紹 介します。 ●
:coMoon
htto://icomoon io/lcoMoonのトップページで「lcoMoon App」 をクリックし、「Start the App」 ボタンをクリックしましょう。
:coMoon
lcoMcon Appの
初期状態で表示され icoMoonでは、 アイコンのセットを購入することもできますが、 ているアイコンは、 フリーで利用できますO lcoMoon Appの
利用 方法
― 口 ・・ ぉ X∞ 1,日■/ 、6-´
0ア
イコンをクリックして選択 "●‐●●●……… に・ⅢⅢⅢ呻
106桁
のカラーコートを入力 … CD …"・…Ⅲヤ10画
イオサイス(12‐512p×,v
を入 力 │ … Ⅲ Iヽ ・ ‐ 。「 . c l キ`‐・‐ρ クリックして タウンロート ②クリ´ク
ダウンロードしたzip形 式のフアイリレを解凍すると、 「PNG」 フォルダの中に、 選択 したアイコン画像 ―式が入つています。 ただし、 このように、 インターネット上でフリー で酉己布されている画像を利用する際には、「ライセ ンス(使用許諾条件)」 について酉己慮する必要があ ります。
lcoMoon Appで
配布されているアイコンは、 アイコンセットによつて制作者が異なるのでそれぞ れライセンスが違 いますが、 いちばん上に表示さ れているアイコンセットの 「lcoMoon― Free」 は、 クリエイティブ・コモンズ・ライセンス(CCライセンス) で配布されています。CCラ
イセンスの場合、 サイト上のどこかにアイ コンの著作者がわかるように、著作権者のクレジッ トを記述 しておかなければなりません。:coMoon Appの
アイコンの利用例'
二uつ
た し,ヽ魔i■tL. `こ]fe E● こJt アイコンは C,LttiC"を 利用 しています ■ヘーシの随所に使っている場合は、フツターなとにク レシットを記述してもよいてして、う○クリエイティブ・コモンズ
0ラ
イセンス
(CCラ
イセンス
)と
は
インターネット上にあるフリーの写真やイラスト、アイコンなどの多くは、CCラ
イセンスで配布されています。CCラ
イセンスとは、著作者によつて著作物の再利用許可の意思表示を手軽に行えるようにするためのラ イセンスです。 以下の4つ の条件のうち、「1.著作権者のクレジット表記義務」 だけは必須であり、他の3つ は著作者の 意思によって採否が決定されています。1著
作権者のクレジット表記義務2非
営利の場合のみ使用許可3改
変の禁止4同
一条件の継承義務 キlcoMoon― Freeは、「1著 作権者のクレジット表記義務JのみですCCラ
イセンスに限らず、 インターネット上で配布されている素材などを利用する際には、それぞれの著 作者が提示しているライセンスを守つて利用しましよう。CCラ
イセンスの著作物は、 学習の初期段階や個人サイトの利用で上記の条件を守つて利用する場合に は便利ですが、 これらの制約があるため、仕事としてウエブサイト制作を請け負う場合などには利用できな いことが多いです。最終的には、デザインソフトなどを利用して自作するのがよいでしょう。グローバ
Jレナビをデザインする
グローバルナビを横並びになるよう調整し、現在のページには背景色をつけるなど、わかりやすいデザインにします。
⇒
一
■
style cssを開き、ヘツダーのグローバルナビ「#pageHead globalNavi」 に、上下の罫線を追加します。
ブラウザの出力結果 [portfolio/01 html]
komorlkomasha
l人じゃできないことも 力を合わせればできる。や ってみたいをカタナにする t´∴i■,[フい こ ,「:の t`3,■tCafe Debut
Icommon/css/style.r:ssJt...
ffil #pagetlead #catchcopy { font-size:1zpx; Iine-height: I.5; margin-top: ipx; ) /* )E-llt'/C */spageHead .qloba Navi {
border: soli(l #CCCccC; border-w i dth I px 0; ) /* ^-))yt- */ #pageFoot { tB6...1 一 ・t く と 一 小 わ ・ つ 量 一
グローバルナビのリスト「#pageHead.giobalNavi uHi」 から、リスト記号をりに表示にします。 ブラウザの出力結果 [portfo io/01 html]
kol■
orlkomasha
l人じゃできないことも、力を合わせればできる。やってみたいをカタチにすZ [common/css/style css] [.…略] /★ グローバルナビ★/ #pageHead .globalNavi ( border: solid チccCCCC, border―width: lpx O, ) イpa9eHead .910balllavi ul li { list―style: none, ) [略.…] 爪 こ│ 1)itた ちぃつ 、 こ つく:t tJの よ│と いうわ せCafe Debut
ブラウザの出力結果
[portfolb/01 html]kolnorlkolnasha
l人 じゃで き な い こ と も、 力 を合 わ せ れ ば で き る 。 や って み た い を カ タ ナ にす 沼 ホ ー ム │ わた したちに つい こ つ く,たもの おといわ つヒ│
Cafe Debut
ヽ
[common/css/style css] [.… 略] /十 グローバルナビ★/ #pageHead .91obalNavi { border: so■id #ccCCCC, border―width: lPx O, } #pa9ettead .91obalNavi ul ( margin: 0, padding: 0, }#pageHead .globalNavi u■ 11 ( list―style= none,
}
[略.…]
Google Chromeで
ul要素を検証すると、 ブラウザ標準のマージンとパディングを確認できます。
<ul>タグには、ブラウザ標準値で上下マージンと左パディングが設定されているので、これらの余白をなくすため、
marginプロパティとpaddingプロバティの値を「O」 にします。
リストの横幅を固定し、横並びにします。コンテンツ全体の横幅は
980pxの
ため、 リストのwidthブ ロバティを245px(980//5=245)と
し、loatプ ロパティでリストをすべて左に寄せ、1順番に並べます。ブラウザの出力結果
[portfolb/01 html] 980千)x [common/css/style css] [.…略] /☆ グローバルナビ★/#pageHead .91obュ lNavi { border: sol id #ccCCCC, border―width: lpx O,
}
#pageHead .g■ obalNavi u■ {
margin: 0, padding: o;
)
#pageHead .glok,a■Navi ul ll (
list―style: none,
width: 2451,x, nOat: left } [略.…]
儡
Cafe Debutヽ ■ ■ ■
LEJ
ブラウザの出力結果 [portfolio/01 html]komorlkomasha
l人じゃで きな しヽことも、力を合わせればできる。や ってみた /1N「A
ゎたし上ち
│Cafe Debut
変更 後畢
komorlkomasha
l人じ ゃ で き な しヽこ と も 、 力 を 合 わ せ れ ば で き る 。 や って み た ホ ー ムリストをloatし たため、リストの親要素のボックスの高さが0と なり、セレクタ「#pageHead globalNavi」 に
追加した上下のボーダーがくっついた状態になつてしまいました。
セレクタ「#pageHead globalNavi ul」 :こ対して、右下のようにclearfi)((141ペ ージ参照)を適用して、リス
トの親要素であるul要素のボックスが高さを持つようにします。 Icommon/css/style.css]
t...
ffil/* t1-tvttc
t/
#pageHead .gl,>balNavi { border: s)Iid #CCCCCC; border-wilth: lpx 0; ) #pageHead .glcbalNavi ul { margin: 0; padding:0; )+pagellead .globafNavi uI:after {
content: ' '; clear: b(,th;
dlsplay: block; )
#pageHead .g.-obalNavi uI li { list-sty Le3 nonei
width: 2 l5px; float: leEt; ) fdl
Cafe Debut
わ た した ち│リストの左側に罫線を追加 し、 ナビゲーションの区切りがわかるようにします。また、左右にバディングを追加し、 罫線に文字がくつつかないようにしまり。
ブラウザの出力結果
[portfdio/01 html] k()111()rikolll:is li: ・ . . , ‐ │ │― ' Cafe Debut r ・・ .I com mo n/cs s/sty le. css]
t...ffi]
/*
t1-l\)v+t
*/
#pageHead .globalNavi { border: solid #Cccccc; border-width: lpx 0; ) #pageBead .globalNavi uI { nargin:0; paddingr 0; )#pageHead .globalNavi ul3after { content: ""; a]arp hn+h. display: block; ) #pageHead .globalNavi uI Ii { Iist-style: none; width:245px; float: Ieft; border-teft: solid lpx #CCCCCC; padding:0 1()px; ) tdl リスト全体の横幅は、手‖原
0で
指定した横幅の245pxに
、右罫線lpxと 左右バディング20pxを
加えて、266px
となつています。そのため、コンテンツ全体の横幅980pxに
、5つ 目のリスト「おといあわせ」が収まりきらなくなり、 「おといあわせ」 は下に落ちてしまつた状態です。Google Chromeで
li要素を検証すると、現在のli要素のボックスサイズを確認することができます。kol■
orlkomasha
cafe nehl■
このように、罫線やパディングの値はwidthプ ロバティの値に加算されて全体の横幅が決まるため、widthプ ロパテイ
そこで、「box― sizing」 プロノヽティの値に「border― box」 と指定し、widthプ ロバティで指定した値に、罫 線とバディングの値も含めます。詳しくは、「I解説】 box―sizingプ ロバティとボックス」(197ページ)で後述 します。 なお、box―sizingブ ロバティは
CSS3で
新 しく追加 されたため、現在のところ、Firefoxで も対応させるた めには、「―moz‐box―sizingi border‐ box:」 を追カロしておく必要があります。詳しくは「【解説】
CSS3と
ベ ンダープレフィックス」(197ページ)で後述します。 ブラウザの出力結果 [portfo lo/01 html] ko llorikolllas11(1 Cぎe Debut Icommon/css/style css]t...
Etl/* )E-t\)rt.
*/
#pageHead .globalNavi { border: solid #cccccc; border-width: 1px 0; ) #pageHead .globalNavi- uI { margin: 0; padding:0; )#pageHead .globalNavi ul:after { content: ""; ^la^r. h^fh. display: block; ) #pageHead .globalNavi uI li { I i c+-c+r'l a. n^^a. width:245px; float: Ieft; border-Ieft3 solid lpx #Cccccc; padding:0 1Opx;
-:roz-bor-s i z j r. j: bo: cer-ooxi
box-sizing : bordcr-box; )
tffi..
.lt...
ffil/*
,E-t\)rtC */
#pageHead .globalNavi { border: soLad #CCCCCC; border-vridth: lpx 0; ) #pageHead .globalNavi ul { margj-n: O; paddj-ng: 0 ; )#pageHead .globalNavi ul:after { content: " "; ^l 6r-. h^+h. display: block; ) #pageHead .globalNavi uI Ii { Iist-style: none; width:245px; float: left; border-Ieft: solid lpx #cccccc; padding:0 10px; -moz-box-sizing : border-box; box-sizing: border-box;
L,Yt-:l inn. a,.ntar.
font-srzc: 14px; Iine-height: 1.,:129; ) t@l
一■
一
text―alignプロバティで文字をセンター寄せにします。 [COmmOn/css/sty e css]
同時に、 文字サイズと高さを指定 して、本文部分のテ キストの大きさと設定を揃えています。
ブラウザの出力結果
[portfolb/01 html]kolllorikonlasha
リストに設定した左罫線とグローバルナビ全体に設定した上下罫線の間に余白を設定して、余裕のあるデザインに します。
右下のように、セレクタ「#pageHead globalNavi」 に
10pxの
上下パデイングをオ旨定します。CaFe Debut
すべてのリストに左罫線を追加していますが、デザインのバランス上、「ホーム」では左罫線は不要です。そこで 疑似クラス「:first―child」 を利用して、最初のリストの罫線を非表示にします。「ifirst―child」 の詳細は、「【解説l
n番 目の要素を数えて
CSSを
指定する」(199ページ)で後述します。 ブラウザの出力結果 [portfo io/01 html]komorlkol■
asha
ブラウザの出力結果
[portfdio/01 html]komorlkomasha
l人じ ゃ で き な い こ と も 、 力 を 合 わ せ れ ば で き る 。 や って み 去 ,31 変更後畢
komorlkomasha
l人じ ゃ で き な い こ と も 、 力 を 合 わ せ れ ば で き る 。 や っ て み 去 Icommon/css/style css]t..
. ffil/*
,E-t\)vlc
*/
#pageaead .globalNavi { border: solid #CCCCCCt border-width: lpx 0; paddlng: l0px 0; ) #pageHead .globalNavi ul { margin:0; padding:0; )tffi...1
Icommon/css/style css]t...
ffil #pageHead .globalNavi ul Ii { list-style: none; width:245px; €^a+. I af+. border-left: solid lpx #CCCCCC; padding:0 10px; -moz-box-sizing: border-boxi box-sizing: border-boxi text-align3 center; font-size:14pxi line-height:1.429; ),^-^-tr-.i ^l ^Ha- rrr!.: rr'l I i .fircf _.hi ld l
" PoYclcou border-1eft: none. ) Tdl T― ム 力 一
リンクには文字色と下線がついていますが、グローバルナビは配置場所からも― 目でナビゲーションとわかりますし、 リンク色や下線がついていないデザインの方がスッキリします。
そこで、グローバルナビの a要 素に限定して、文章部分の文字色と同じ濃いグレーにします。値に「inhern」 と
指定すると、親要素のプロバテイの値を強制的に引き継ぎます。つまり、aの 親要素はliですから、li要素の文字色
「#333333」 となります。
また、リンクの下線を消すには「text―decoralon」 ブロバテイを「none」 に指定します。詳しくは「【解説】
text―decorationプ ロバティ」(200ペ ージ)で後述します。 ブラウザの出力結果 [oOrtfdio/01 html] ko11lorik()[llas 1 1 Icommon/css/style css]
t...
ffil #pageHead .globalNavi ul Ii { Iist-styIe: none; width:245px; float: left; border-leftr solid lpx #ccCCCC; padding:0 10px; -moz-box-sizing: border-boxi box-sizing: border-box; text-align: centeri font-size: 14px; Iine-height:1.429; )#pagettead .globalNavi ul li:first-child border-Ieft3 none; ) #pageHead .globalNavi ul 1i color: inherir-; text-decoration: none; ) a{
ヽ〕
M[MO胃
:了
:1ユ
[品
ページ全体のリンクでは、マウスが重なつたときは文字色を変更していますが、グローバルナビでは背景色を変更します。セレクタに「:hover」 を追加して、background― colorプ ロバティで背景色を変更します。
とカラーコードを指定しても同じ結果になります。
ブラウザの出力結果
[portfo110/01 html]〕
ha
lればで きる。や つてみたしヽをカタナにする、3人 の交 しいものづ lcommon/css/style,csslt...
tstl#pageHead .globalllavi uI lirfirst-child { border-left: none;
)
#pageHead .globalNavi
aal ar. i nhari i.
text-decoration !
)
t'pageFlead . globa I l'la\'1 background-coIor: J tdl u■ ■
iaく
none, t11 li a:hover ( ″F2F2E5,わたし
たヽ
Fつ
いて
a要素は、
lme要
素などと同様にインライン要素(152ページ参照)のため、a要素のボックスは文字の範囲のみ です。そのため、文字から外れた部分はクリックできませんが、グローバルナビでは文字の部分だけではなく、リス ト全体にリンク範囲を広げ、ナビゲーションをクリックしやすくしましょう。「displayiblocki」 と指定してブロックレベル要素に変更すると、マウスが重なつたときの背景色がリスト全体に広がり、 リスト全体がクリックできるようになります。
)
2t
V
Ofrtffi*
lportfotio/O 1 .htmt] Icommon/css/style csslt...Gl
#pageHead .globalNavi ul li:first-child { border-left: none. ) #pageHead .global.Navi uI Ii a { color: inherit; text-decoration: nonel display: block; )
#pageHead
,globalNavi
uI Ii
a:hover
{ background-coLor. #r'2F2E5 i )tts...1
わた した ちにつ いて ナビゲーションの上下に余自を追加してクリック範囲を広げ、よリクリックしやすいデザインにするため、a要素に 上下バディングを追加します。sha
菫ればできる。やってみたいをカタチにする、3人の 資 し い も の づむ
ブラウザの出力結果 [portfo io/01 html]、
ha l
lればで きる。や ってみた いをカタチにする、3人 の発 ししヽものう わた した ちについて も Icom mo n/css/style. css]r...
ffil#pageHead .globalNavi uI li:first-child { border-Ieft: nonei ) #pageHead . globalNavi color: inherit; text-decoration 3 display: block; padding: 5px 0; ) #pageHead .gl-obalNavi background-coIor: )
tffi...1
ul li a( none, u■ li a:hOver #F2F2E5,ユーザが現在どのベージにいるのか迷わないように、グローノツレナビのうち現在のページをわかるようにしておく と親切です。ここでは、現在のページ「つくつたもの」 のナビゲーシ∃ンに、マウスが重なつたときと同じように背 景色をつけます。 まず、01 htmlを 開き、グローバルナビのうち、「つくつたもの」の<li>タ グについて、クラス「current」 を 追加します。 [portfolio/01 html] [.…略〕 くheader id="pageHead・>
くhl id=“siteTitle・>komorikomashaく/hl>
くp id="catchcopy">1人 じゃできない[.… 略 ...]楽 しいものづくり。く/p> くnav class="9■obalNavi‖ >
くul>
くli>くa href="../index.html・>ホ ームく/a>く/1i> くli>くa href="../about/index.html">わ たしたち
`こ
ついてく/a>く/■i>
く■i class=・ current・>くa href="index.htm■">つ くったものく/a>く/■i>
くli>くa href="../contact/index.html“ >お といあわせく/a>く/1i> く/ul> く/nav> く/header> [略...] 次に、style cssに 戻り、マウスオーバー時の指定とカンマ「,」 で区切り、クラス「current」 のついたリスト のa要 素には、マウスオーノヽ一時と同じ背景色が表示されるようにします。
).rvovlh#et
,.".,.:''f .,:.1:,\1..,-Cafe Debut[portfo io/01 htm] Icommon/css/style css]
tdt
#pageHead .globalNavi uI Ij. a {
^^1 ^r. i nhari +.
text-decoration: none; display: block; padding: 5px 0; )
#pageHead .globalNavi ul Ii a:hover,
lpageHead .gfobalNavi 0l li.current a { background-coLor. #F2F2E5 i
)
その他のベージのグローバルナビでも現在のページの背景色が変わるように、該当する<!i>タ グにクラス「current」 を追加します。
ホーム
lndex.htm旧 l komorlkomashaわたしたちについて
[aboutヵndex.htm旧│ 1霊
1兜
雲.… … … … 仏
くli class="current">くa href=''index.htm■''> ホームくノa>く/1i>つくつたもの
[portfdb力 ndex htm旧 komorikomasha くli class="current">くa たしたちについてく/a>く ノ■i> く■i class=''current“>くa href="indexohtml">お といあわせく/a>く/■■> __」[______一
―
―― ‐
――
href="index.htm■">わおといあわせ
[contactヵndex.htm旧 ,l J^。・れの
,くヽ
│ ││:■
911?理晶
:摯,…,マ..いい
,,t,`ム・臥
´
・
・メ
くli c■ass="current">くa href='lindex.htm■">つ くったものく′a>く/1i>
‖銅
itt box口
sizingプ
ロバティとボックス
ボックスにwidthプ ロパティとheightプ ロ バティの値を指定した場合、その値は右図の ように「要素の内容」 部分の横幅と縦幅を 表しています。 これは、ブラウザの標準値では、「box―sizing」 プロノヽティのイ直に「content‐ box」 が指定されているためです。
「box― sizing」 :プロノヽティσ)イ直に「border―
box」 を指 定 す ると、widthプロバ ティ とheightプ ロバティに指定した値の中に、 paddingと borderの 値を含めます。 なお、box‐sizingは
CsS3で
新しく追加さ れたプロパティのため、Firefoxで は「―moz― box― sizing」 のようにベンダープレフイツクス をつけた記述をしておく必要があります。厳 密には、対応するブラウザによつて、他の ベンダープレフイツクスの記述も必要になる 場合がありますが、詳しくは次の「 【解説】CSS3と
ベンダープレフイツクス」で解説します。 また、IE7以 下 の古 い ブ ラウザ で は、 「boxJzing」 プロバテイに対応していませ ん。IE7以 下のブラウザにも対応する場合に は、 「box―sizing:content― box」 を,河ま是に考えておきましょう。 H刀
則抽直
]box‐SiZing:content‐
box;
marginbox-sizing: border-box;
一
一
■
一
CSS3と
ベンダープレフイックス
◎
CSSの
バージョン
現在、勧告されているCSSの
最新バージョンはCSS2 1で
す。 そのため、 ここまでの解説では、「box― sizing」「display:flex」 (「【
COLUMN】
新しい段組みレイアウト「フレキシブルボックスレイアウト」」145ページ)以外は、CSS2 1で定義されているプロノヽテイや値について紹介してきました。
CSSの
新しいバージヨンであるCSS3は
、「boxJzing」 のように便利なプロバテイや値が新しく追加されています。
CSS3は
現在、仕様策定中ではありますが、最新のブラウザではCSS3の
機能の一部を先行して実装し、利用できるようにしています。