Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

HTML メニューボタンの作り方1(CSS フッターの謎の隙間をなくす方法)

はじめに

今回はメニューボタンを作成します。フッター部分に、リストを一行で配置して外枠を付けてリンクできるようにします。前から少し気になってた「フッターの余白が消えない問題」も解決していきます。

f:id:Start_python:20200209001855p:plain

 

ソースコード

base.html

<link rel="stylesheet" type="text/css" href="/static/base.css">

<footer>
    <ul>
        <li>ホーム</li>
        <li>検 索</li>
        <li><a href="/blog/create">新規作成</a></li>
        <li><a href="/blog/logout">ログアウト</a></li>
    </ul>
    <span id="c">(c)2020 ふたり暮らし</span>
</footer>

<ul>~</ul>

リストを表示します。

<li>~</li>

リストの項目を記述します。<ul>~</ul>の間に複数入れることができます。

<span>~</span>

インライン要素としての範囲を指定します。idやclassを指定したい時に使います。
ブロック要素<div>のインライン要素版です。<div>では前後の行に改行が入ってしまうため、前後に改行を入れたくない時は<span>を使います。

 

base.css

footer{
    position: fixed; /*絶対位置で固定*/
    bottom: 0px; /*下に配置*/
    left: 0px; /*左の隙間をなくす*/
    width: 100%; /*幅*/
    height: 60px; /*高さ*/
    font-weight: bold; /*文字を太字にする*/
    text-align: center; /*中央に表示する*/
    background-image: url("back_image.jpg");
    /*画像を背景に指定*/
}

ul{
    margin: 0; /*上の余白をなくすため*/
    padding: 5px 0; /*左の余白をなくすため*/
}

li{
    display: inline-block; /*要素をインライン表示にする*/
    width: 120px; /*幅*/
    text-align: center; /*中央に表示する*/
    border: outset 2px; /*外枠を作る(スタイル、太さ)*/
    cursor: pointer; /*カーソル(指のかたち)*/
}  

a {
    text-decoration: none; /*下線を消す*/
}

@media screen and (max-width: 600px) {
    li{
        width: 80px; /*スマホなどの時のボタン幅*/
    }
}

#c{
    position: absolute; /*絶対位置(rightのために必要)*/
    right: 30px; /*右に配置*/

margin: 0; /*上の余白をなくすため*/

フッターの上に謎の余白がある場合は、「フッターの範囲内の余白(padding)」ではなく、「フッターの中の要素の範囲外の余白(margin)」が原因です。

padding: 5px 0; /*左の余白をなくすため*/

リスト「<ul><li>~</li></ul>」には初期値で左に「範囲内の余白」が付いてます。(中央寄せにしていても、なぜか少し右に寄っているのはこれが原因です)

 

まとめ

HTMLで<ul>を使ってリストを作って<li><a href=~>を使ってリンク先(ページの移動)を設定します。CSSで<li>をインライン表示にして横並びにします。横並びにした<li>に外枠を付けて装飾してボタンのように表示すれば完成です。今回はフッターに作成していますが、ヘッダーに作成してもよさそうです。

ボタンを押すとメニュー一覧が表示されるメニューボタンの作り方も一緒に解説したかったのですが、少し長くなりそうなので次回にします。

 

 

↓よかったらポチッとしていってください。

にほんブログ村 IT技術ブログ Pythonへ
にほんブログ村