ヘッダー上部に文字を入れる


前ページで背景に透過した背景画像を入れました。
ここではヘッダーの上をblackにして上に1列、左側に文字を入れてみましょう。

上部左に文字を1列入れる

左上に文字を1列入れてみましょう。

前ページでheader_1の背景に透過画像を設置しました。
背景画像の上部に入れる文字列の背景をheader_1aで設置し、左側に文字をいれてみましょう。

htmlソース

<body>
    <div id="container">
        <header>
            <div class="header_1">
                <div class="header_1a">
                    <p class="subject_left">ホームページを</p>
                </div>
            </div>
        </header>
    </div><!--container-->
</body>

cssファイル
文字の背景header_1aをblackにして、左側に文字を1列入れてみましょう。

cssソース

.header_1a {
    width: 100%;
    height: 25px;
    background: black;
}

.subject_left {
    line-height: 25px;
    color: white;
    text-align: left;
    padding-left: 7px;
}

黒枠はbody、  はcontainerです。

ホームページを

おや?文字の背景を黒色にしたはずなのに、透過してる。

実は、header背景の透過が影響してるんです。
こんな時は文字背景を絶対配置で設置します。
やってみましょう。

htmlファイル
背景画像header_1を配置します。
次に、文字列の背景をheader_1aで設置し、文字をいれます。

htmlソース

<body>
    <div id="container">
        <header>
            <div class="header_1"></div>
            <div class="header_1a">
                <p class="subject_left">ホームページを</p>
            </div>
        </header>
    </div><!--container-->
</body>

cssファイル
文字の背景を絶対配置するため、headerにposition: relativeを指定し、基準点にします。

header_1aを絶対配置します。

cssソース

header [
    position: relative;   /*追記*/
}

.header_1a {
    width: 100%;
    height: 25px;
    background: black;
    position: absolute;
    top: 0;
    left: 0;
}

.subject_left {
    line-height: 25px;
    color: white;
    text-align: left;
    padding-left: 7px;
}

黒枠はbody、  はcontainerです。

ホームページを

上部左右に文字を1列入れる

上の例では左側に文字を1列入れました。
次は、右側にも入れてみます。

htmlファイル
右側に表示するためのソースを1列追記しました。

htmlソース

<body>
    <div id="container">
        <header>
            <div class="header_1"></div>
            <div class="header_1a">
                <p class="subject_left">ホームページを</p>
                <p class="subject_right">サイト</p> 
            </div>
        </header>
    </div><!--container-->
</body>

cssファイル
subject-leftのソースを1列書き換えます。
左右に表示するため、floatプロパティでsubject_leftを左へ寄せる。
floatプロパティはここから

cssソース

.subject_left {
    float: left;     /*追記*/
    line-height: 25px;
    color: white;
    text-align: left;
    padding-left: 7px;
}

.subject_right {
    line-height: 25px;
    color: white;
    text-align: right;
    padding-right: 7px;
}

ホームページを

サイト

上部左右にそして中央にも文字を1列入れる

中央にも1列文字を入れてみましょう。

htmlファイル
中央に表示するため、subject:leftと、subject:rightの間にsubject: centerを追記しました。

htmlソース

<body>
    <div id="container">
        <header>
            <div class="header_1"></div>
            <div class="header_1a">
                <p class="subject_left">ホームページを</p>
                <p class="subject_center">自作する</p>  
                <p class="subject_right">サイト</p> 
            </div>
        </header>
    </div><!--container-->
</body>

cssファイル
左右、中央に文字を1列表示するには、display: tableを使います。(他にも方法はいろいろありますよ。)
displayプロパティに、値tableを設定するとtable要素のように表示できます。
display:tableはここから
また、displayプロパティに値table-cellを設定すると、1列のセルのように表示できます。
セルの幅を揃えるため左、中、右をwidth%で1:2:1に分けました。

cssソース

.header_1a {
    display: table;     /*追記*/
    width: 100%;
    height: 25px;
    background: black;
    position: absolute;
    top: 0;
    left: 0;
}

.subject_left {
    display: table-cell;
    width: 25%;            /*追記*/
    line-height: 25px;
    color: white;
    text-align: left;
    padding-left: 7px;
}

.subject_center {
    display: table-cell;
    width: 50%;
    line-height: 25px;
    color: white;
}

.subject_right {
    display: table-cell;
    width: 25%;       /*追記*/
    line-height: 25px;
    color: white;
    text-align: right;
    padding-right: 7px;
}

ホームページを

自作する

サイト

サイト上部などに文字を表示する場合などに使えます。

次ページでロゴマークを入れてみましょう。