CSS

CSS★画像の上に文字を重ねる

投稿日:

画像の上に文字を重ねる

配置した画像の上に文字を重ねたいとき、CSSだけでできちゃいます!

下になるアイテムに「position: relative;」= 相対位置を設定します。
次に上に重ねるアイテムに「position: absolute:」= 絶対位置を設定。

この親子コンビネーションをつくるところがミソ。

それができれば、後は、表示させる位置を指定します。
アイテムの左上端を原点として、上か下、左か右への移動距離を指定してやります。
単位は、px, %, em, rem等が使えます。

HTMLコード サンプル:

<div class=”sita”>
<img src=”/image.jpg”>
<p class=”ue”>上に重ねるアイテム</p>
</div>

 

CSSサンプル:

.sita { /*親div*/
  position: relative; /*相対配置*/
  width: 500px;
  height: 300px;
}

.sita img {
  width: 100%;
}

.ue{
  position: absolute; /*絶対配置*/
  top: 30%;
  left: 20%;
}

囲んだ要素の高さがなくなる!

子要素がabsoluteの時には、親要素の高さが死んでしまうので、親要素に「height」を指定して、高さを保ちます。

可変サイズで使う場合にも、囲んだdivなどにposition:absoluteを当てると画像の伸縮がうまくいかなくなる。
これは高さを指定しないから起こるのだけれど、高さを指定するなら可変にならないじゃん!
こまったなぁ。。。と思っていたら、解決策をみつけました。

HTMLコード

<div class="box ratio-1_1">
    <div class="inner">
        <p>1 : 1</p>
    </div>
</div>
CSS

.box {
    position: relative;
    width: 50%;
    height: auto;
    background: #444;
}
.ratio-1_1:before {
    content: "";
    display: block;
    padding-top: 100%; /* 1:1 */
}
.inner {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
}

divに:beforeでpaddingを与えることで
擬似的に高さを与えています。

padding-topの値を変えることで比率を変えることもできます。

.innerwidthheightは100%に指定することでratio-1_1の高さを拾います。

 

参照:https://qiita.com/nknkt/items/065b30bbdc1f6508a6f7

本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。

-CSS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

コメントアウトの書き方★html & css & php

WEB制作ではhtml & css & phpを触ることが多いですが、コメントアウトの書き方がぞれぞれ違うので忘れないようにメモ。 ちなみに、コメントアウトとは、ソースコード側に書いて …

WP★吹き出し風デザインをCSSだけでやる方法

ワードプレスでプラグインを使わずに、 HTMLとCSSだけで下のような感じの会話風レイアウトの作り方。   手順はこちら   [codepen_embed height=”400 …

olタグで丸括弧付きの数字にする方法

olタグで丸括弧()付きの数字にしたかったので、CSSで設定する方法を調べてみました。いろいろと試した結果、下記の設定で上手くいったのでメモしておきます。CSSの書き方によっては、2行目のインデントが …

CSS★CSS変数で色の管理を楽にする!

プログラミングでは「変数」ってよく使いますが、CSSでも使えるようになってました!サイト制作では、CSSがドンドン長くなって、あとで修正するのが大変になりますよね。特に、色を変える時は、ひとつずつカラ …

CSS ★ inline-blockで横並びにした要素を上揃えにする

CSSで横並びさせたい時によく使うのが、 display:inline-block。 でも、縦のラインがきれいに揃わないで困ることがある。 そんな時に、 たった1行追加するだけでOKなセレクタがあった …

サイト制作・グラフィック制作をしているデザイナーです。制作で躓いたことの備忘録としてこのブログを始めました。
たくさんの検索結果から、実際に何度も何度も自分で試してみて、自分に合うなと思った方法やうまくいった方法をこのブログに書き留めています。
プログラム関係のことはもっぱらコピペ派。
自分でゴリゴリ書くことはできません。。。プログラムが分かる人がうらやましいです。
そんな私でもなんとかサイト制作ができるのはグーグル先生と貴重な情報をおしげもなく公開してくださっているたくさんの方々のおかげ。
有志のみなさまに日々感謝しつつ制作させていただいています。