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

ソースコード
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>に外枠を付けて装飾してボタンのように表示すれば完成です。今回はフッターに作成していますが、ヘッダーに作成してもよさそうです。
ボタンを押すとメニュー一覧が表示されるメニューボタンの作り方も一緒に解説したかったのですが、少し長くなりそうなので次回にします。
↓よかったらポチッとしていってください。