質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

4261閲覧

HTML/CSSで表示させた画像の真ん中にアイコンを表示させたい。

dongw

総合スコア119

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2017/01/13 08:55

イメージとしてはこのようなことがしたいです。
イメージ説明

imgタグで表示させた画像にhtmlとcssでアイコンと文字を画像の任意の位置(真ん中辺り)に表示させたいと思っています。

無理やり考えた方法としては
imgタグ
divタグ(fontawesomeアイコン)
divタグ(文字)

と並列(同じ階層)にして、
両方のdivタグにposition relativeを設定、top,leftにpx単位で数値を入れてgooglechromeのコンソールを使って真ん中に合わせるといったやりかたです。

このやりかたでも大体は思った通りの配置にはなるですが、px単位で設定してるのでデザインとしては汚いやり方かな、と思っています。
何かキレイにイメージ画像のようにキレイに配置する方法はないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

適当ですが。

HTML

1<div class="wrap"> 2 <img src="https://placehold.jp/24/cc9999/993333/350x350.png" alt=""> 3 <div class="text"> 4 <div class="icon">i</div> 5 <p> 6 text text text text text text 7 </p> 8 </div> 9</div>

CSS

1.wrap { 2 height: 100px; 3 position: relative; 4 text-align: center; 5 width: 100px; 6} 7.wrap > img { 8 display: block; 9 width: 100%; 10} 11.wrap p { 12 margin: 0; 13} 14.wrap .icon { 15 display: inline-block; 16} 17.wrap > .text { 18 left: 0; 19 position: absolute; 20 right: 0; 21 top: 50%; 22 transform: translate(0px, -50%); 23} 24```**動くサンプル:**[https://jsfiddle.net/59jrj0ko/](https://jsfiddle.net/59jrj0ko/)

投稿2017/01/13 12:48

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dongw

2017/01/15 05:47

回答ありがとうございます。 わざわざサンプルまで作っていただき大変感謝しております。 ここでの例なのですが、wrapというdiv要素の階層の下にimg要素がないと質問内容のスタイルを表現するのは不可能ということでしょうか? 理解不足で申し訳ないですが補足いただけるとありがたいです。
kei344

2017/01/15 05:51 編集

> imgタグで表示させた画像にhtmlとcssでアイコンと文字を画像の任意の位置(真ん中辺り)に表示させたい ご自身の質問内容を再度ご確認ください。 失礼しました、位置関係の話という事でしょうか。その場合どうしたいかを提示されなければ可能かどうかはわかりません。
kei344

2017/01/15 06:07

補足せよ、という箇所を読み落としていました。 雑に作ったので適当なところが多いです。 「.wrap」は別に .user でもどんな名前でも良くて、囲っているから .wrap にしただけです。 「 > img」は別に「 img」でも良いですが、その場合テキストの中にインラインの画像(アイコンとか)を入れた場合問題が起こるので、ある程度絞っている、くらいの理由です。 「.wrap > .text」でやっていることは、高さ50%(.wrapの50%)の位置に.textを浮かせて、transform: translate(0px, -50%);で高さ50%(.textの50%)分上にずらしています。それで縦中央あたりに.textが配置されています。
dongw

2017/01/15 09:09

補足ありがとうございます。 私の質問の意図としては、元の私の環境がimgと同じ大きさになる親要素のdiv要素というものがありません。 挙げていただいた。サンプルですと、 <img src="https://placehold.jp/24/cc9999/993333/350x350.png" alt=""> <div class="text"> <div class="icon">i</div> <p> text text text text text text </p> </div> という構成に近いと思います。 ここで書いてくださったcssを編集して img { display: block;   height: 100px; position: relative; text-align: center; width: 100px; } p { margin: 0; } .icon { display: inline-block; } .text { left: 0; position: absolute; right: 0; top: 50%; transform: translate(0px, -50%); } としても思った通りの配置にはなりません。 やったこととしてはwrapという囲っていた要素を削っただけですが、このdiv要素が重要である、ということでしょうか?という話でした。 分かりづらくて申し訳ないですがよろしくお願いします。
kei344

2017/01/15 09:34

position: relative; は配下の要素にしか効きません。なので img に設定してもそのようにはなりません。 .wrap を用意したのはそのためです。 幅と高さが決まっているなら方法はあるかもしれませんが、隣接する要素がどのようになっているのかがわからない状態ではなんとも答えにくいです。(HTML/CSSがどのように組まれていて、どのようなデザインの中に組み込まれるのかなどが不明)
dongw

2017/01/15 11:00

なるほど。position:relativeでtextとiconクラスの位置を指定してたわけですね。 大変勉強になりました。 あとは自分の環境と照らし合わせて自力でやっていこうと思います。 ありがとうございました。
guest

0

画像をdivの背景として使用するのはいかがでしょうか。

css

1.sample { 2 background-image: url("hoge.png") 3}

投稿2017/01/13 09:00

mri0815

総合スコア429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dongw

2017/01/13 09:07

コメントありがとうございます。 ruby on railsで作っているアプリでして、 画像はユーザーごとに違う画像が表示されるようにビューでrubyのタグを使っているため、cssで固定、ということをしてしまうと、どうしようもなくなってしまうので今回は考えておりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問