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 | 2007年05月23日 14:51
>johannesさん、コメントありがとうございます。
そうなんですよねー。常に画像全体を確実に見せたい場合とかは全然使えない話なんですよね・・・。どこが見えてもいいような背景画像の処理を考えてて浮かんだネタなんですが、実用的ではないかぁ・・・。うーん。すいません。
投稿者: Red | 2007年05月23日 21:57
これって、もしロゴをこのやり方で作ったら、どうやってリンクを貼り付けるんですか???
調べてもよくわからないのです。
もしご存知でしたら教えていただけないでしょうか???
投稿者: りん | 2008年03月13日 03:05
>りんさん
その部分にリンクをつけるには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で指定してサイズを可変させると絶対画質が汚くなっちゃうんで・・・。元々ロゴ部分に適応させるというネタではないので、個人的にはロゴ部分での使用は避けたほうがいいんじゃないかなーとか思ったり・・・って余計なことですよね。すいません><
投稿者: Red | 2008年03月13日 21:25