-
ID:iRUJCA さんの質問

contentで入れた要素の幅について。

ーー HTML ーー
<div>
<h1>タイトル</h1>
<p>説明文</p>
</div>
ーー CSS ーー
div {width: 90%;}
h1, p {width: 75%;}

上記のような構造で、右側にちょっとしたイラストを入れようと思い、p:after {content: url(hoge.png)}で画像を挿入しました。
そこで質問なのですが、contentの幅を25%と指定して、その中央に画像を配置する、ということは可能でしょうか?
やりたいこととしては、divの中に左側にh1とp要素を配置し、右側にcontentの画像を配置する、ということです。
contentにposition:relativeを入れてleft: 50%;などとすれば、右に寄せられたのですが、ブラウザの幅が変わるたびにずれてしまいます。
contentにwidthを指定しても効いていないようだったので、何か方法があるかと思い質問させていただきました。

ちなみに、画像自体は装飾用に入れているだけのものなので、imgやfigureなどでHTMLに直接記述することは想定していません。
よろしくお願いします。

みんなの回答 2 件

ID:CcFqAA さんの回答

やってみりーや

ID:iRUJCA

contentにwidthは効かなかったので、何か他にやり方があるのか、そもそも無理なのか、教えていただきたいです。

ID:JksaeK

普通にDIVで組むのはダメなの?

ID:/rsisJ

display指定してる?

ID:iRUJCA

JksaeKPAGrz6さん
HTML上に装飾のためだけの余分な要素を入れるのはよろしくないので、CSSだけで対応できないかなと思っています。

/rsisJvIbgkSさん
contentには、display: block;の他、transform(サイズ変更のため)、position、top、left、marginを入れています。
何か足りないものはありますでしょうか。

ID:bwZ4km さんの回答

ブラウザ幅可変時にどうしたいのかイマイチよくわからんけど、contentなんて回りくどいことせずに、普通にbackgroundでやったほうがいいよ。
XX%の部分を数字変えて微調整すれば好きなところに配置出来るし、位置固定したいならpxやem。
div {background: url(hoge.png) XX% 0 no-repeat;}
.
もしくは、どうしてもcontent使いたいんだったら
>contentにposition:relativeを入れてleft: 50%;などとすれば、右に寄せられたのですが、ブラウザの幅が変わるたびにずれてしまいます。
指定してるleft: 50%の単位をpxかemにすればいんじゃない?
ただ、この場合でもどちらにせよ親要素にposition:relative指定して、そこを基準点にしてposition:absoluteで動かしてやったほうが確実だよ。

ID:iRUJCA

お返事遅くなりました。
ブラウザ可変時に、25%(h1とpの幅75%を除いた範囲)の中央に常に表示されるようにしたいです。
最初backgroundで入れていたんですが、例えばブラウザが350pxくらいの時はdivからはみ出てしまったり、1980pxくらいのときはやたらと左(h1とpがある側)に寄ってしまったりで止めたんです。
アドバイスくださった内容でもう一度試してみます。

最終更新日:2014-09-16 (2,614 views)

関連するトピックス

ページ上部に戻る