REDLINE MAGAZINE | CSSで文字サイズに画像サイズを合わせるREDLINE MAGAZINEトップページへ

すべてのエントリを見る

CSSで文字サイズに画像サイズを合わせる

テキストサイズの可変に伴いCSSで画像サイズを変更する方法を3つ。
まずサンプル。

>>文字サイズに画像サイズを合わせるのサンプル

説明・・・はサンプルページを見れば何がしたいのか分かるような気もするけど一応書いてみる。どのパターンも単純に大きめのサイズに書き出した画像を用意してどう表示させるかcssで指定してるだけ。

パターン1の場合

パターン1はcss側で表示したい画像を背景画像として指定。幅や高さはemで指定することによって文字サイズの可変に合わせてでっかくなったりちいさくなったり。元画像を縮小拡大しているわけではなく、見える範囲が大きく小さくなるだけなので画質が汚くなるってこともない。

<p class="resize_image01">女の子の写真ですよー</p>

.resize_image01{
	float: left;
	width:10em;
	height:10em;
	background:url(xxx.jpg) no-repeat center center;
  	border: 3px double #ccc;
	text-indent:-9999px;
	margin:0 0.3em 0.3em 0;
	}

パターン2の場合

パターン2はimgタグで置いた画像に対して幅、高さをそれぞれemで指定。当然画像全体のサイズをその場で拡大したり縮小するわけだから画質はいろいろ変わる。

<p><img src="xxx.jpg" alt="女の子の写真ですよー" class="resize_image02" /></p>


.resize_image02{
	float: left;
	width:10em;
	height:10em;
	border: 3px double #ccc;
	margin:0 0.3em 0.3em 0;
	}

パターン3の場合

パターン3はimgタグで画像を置いてもパターン1みたいな感じでなんとかならないかなーという作戦。ポイントはoverflowとネガティブマージン。サイズ変更する画像が数枚ならパターン1いいけど、多数にわたって変更したい場合はいちいちcssソースの背景画像を追加するのはめんどいのでこっちの方が楽かもしれない。

<p class="resize_image03"><img src="xxx.jpg" alt="女の子の写真ですよー" /></p>

.resize_image03{
	float: left;
	width:10em;
	height:10em;
  	border: 3px double #ccc;
	margin:0 0.3em 0.3em 0;
  	overflow: hidden;
	}
.resize_image03 img {
  margin:-75px 0 0 -75px;
	}	

ていうか・・・

ブラウザの「ズーム」で拡大すればこんなの全然意味ないんじゃ・・・。

<< Thanks! CSS Mania. | font-size:82% って何? >>

トラックバック

このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/151

コメント (4)

文字サイズ200%で画像の全体が見えるようになるということは、文字サイズ100%だと画像の一部が見えない
・・・なんだかなぁ。

>johannesさん、コメントありがとうございます。

そうなんですよねー。常に画像全体を確実に見せたい場合とかは全然使えない話なんですよね・・・。どこが見えてもいいような背景画像の処理を考えてて浮かんだネタなんですが、実用的ではないかぁ・・・。うーん。すいません。

これって、もしロゴをこのやり方で作ったら、どうやってリンクを貼り付けるんですか???

調べてもよくわからないのです。
もしご存知でしたら教えていただけないでしょうか???

>りんさん
その部分にリンクをつけるにはHTMLの方は普通にマークアップして、CSS側でそのaタグをblock化して背景を当ててやればいいと思います。
一例ですが、こんな感じとか↓

HTML
<h1 id="logo"><a href="#">サンプル</a></h1>
CSS
#logo a{
display:block;
width:10em;
height:10em;
background:url(hoge.gif) no-repeat center center;
text-indent:-9999px;
}
一応サンプル↓
http://redline.hippy.jp/redline_sample/0705/image_resize_sample1.html


しかしロゴって基本的に絶対全部見えてないとまずいですよね。元のロゴ画像がgifやpng、またはjpgだとサイズをemで指定してサイズを可変させると絶対画質が汚くなっちゃうんで・・・。元々ロゴ部分に適応させるというネタではないので、個人的にはロゴ部分での使用は避けたほうがいいんじゃないかなーとか思ったり・・・って余計なことですよね。すいません><




※コメント欄に「<」「>」等を含むソースを記載する場合は実体参照に変換してください。

このページの一番上へ

その他の情報など

最近のコメント

PHP オブジェクト指向の勉強
  • Red - 2010.01.08
  • hogepage - 2010.01.21
  • Red - 2010.01.22
  • - 2011.11.27
  • houseiii - 2011.11.27
Fireworks トリミング画像を一括書出 CS4編
  • Iper - 2009.06.27
  • Red - 2009.06.27
  • mala - 2011.11.17
  • Red - 2011.11.18
jQueryでボックスを上下左右中央に簡単配置
overflow を使用したボックス背景のこと
  • - 2007.12.13
  • Red - 2007.12.13
  • - 2007.12.13
  • Red - 2007.12.13
  • hj - 2011.09.23
IE6 → 透過PNG+overflow=混ぜるな危険(追記有)

メッセージを送る

こちらのメッセージ送信フォームは閉鎖させて頂きました。
御用の方は新しい方のブログ にコメント頂くか、 連絡用のフォーム もありますので、そちらからご連絡ください。