dポイントプレゼントキャンペーン実施中!

htmlとcssで、
任意の形の長方形のimgを、大きさの決まった正方形の中に最大限大きく表示したいです。
つまり、縦か横かの長い方のwidth(height)を一定の長さにしたいのですが、
そのような指定方法はあるでしょうか?

よろしくお願いいたします。

A 回答 (1件)

両方は無理です。


 img要素は置換インライン要素なので、内容の大きさでサイズが変わりますが、これをブロック要素にすると、コンテナブロックを内辺を参照しますから、横幅・あるいは縦幅いずれかを固定することは出来ます。
 普通は、サンプルのように横幅を固定して高さは内容の大きさで変化させまずが、外枠の内寸に合わせるときはブロック要素にします。
 サンプルは、CSS上はdisplay:block;は指定してありませんが、次に<p>のブロックがくるため、匿名ブロックとして処理されているためコンテナブロックのサイズを参照しています。
★下記ソースはタブを_に置換してあります。
なお、
★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
で検証済み

両方を外枠に合わせるためには、画像処理ソフト(多くのサーバーにインストールされているはずのimageMagick( http://mechanics.civil.tohoku.ac.jp/soft/node43. … ))を使ったCGIで画像を拡大縮小する必要があります。
【引用】____________ここから
# 比率を保ったままの場合 $image->Scale( geometry=>"$width x $height" );
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Jpan Tools -TOOLS:Image::Magick-( http://jpan.jp/ja/tools/ImageMagick/ )]より
imageMagickを使うと、数行のプログラムを書くだけで、画像サイズを取得して指定されたサイズに合わせて拡大縮小してくれます。


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
ul.album ul.alubum li,ul.alubum li img{display:block;}
ul.album{margin:5px;padding:0;position:relative;font-size:0.8em;}
ul.album li{margin:5px;width:120px; height:180px;float:left;overflow:auto;}
ul.album li img{width:90%;height:auto;padding:2px;border-style:solid;border-color:gray;border-width:1px 3px 3px 1px;}
ul.album li p{text-indent:1em;margin:2px;}
-->
_</style>
</head>
<body>
_<h1>サンプル</h1>
_<ul class="album">
__<li><img src="./photo/001.jpg" width="256" height="192" alt="おすわり">
___<p>お座りしているワンコ</p>
__</li>
__<li><img src="./photo/002.jpg" width="281" height="211" alt="風景">
___<p>周囲は緑豊か</p>
__</li>
__<li><img src="./photo/003.jpg" width="256" height="192" alt="風景">
___<p>海も見える</p>
__</li>
__<li><img src="./photo/004.jpg" width="314" height="256" alt="アイコンタクト">
___<p>コマンドを待ってハンドらーの顔を見上げている</p>
__</li>
__<li><img src="./photo/005.jpg" width="256" height="192" alt="投げられたボール">
___<p>座ったままボールの行方を</p>
__</li>
__<li><img src="./photo/006.jpg" width="256" height="272" alt="走り出した">
___<p>「モッテコイ」で走り出す。</p>
__</li>
__<li><img src="./photo/007.jpg" width="192" height="144" alt="走っている">
___<p>ボール目指して一目散</p>
__</li>
__<li><img src="./photo/008.jpg" width="192" height="256" alt="咥えて帰ってくる">
___<p>咥えて走って来る</p>
__</li>
__<li><img src="./photo/009.jpg" width="256" height="341" alt="手に渡す">
___<p>手に渡す</p>
__</li>
_</ul>
</body>
</html>
    • good
    • 0
この回答へのお礼

詳しくありがとうございます!

私も結局javascriptを作って対応しましたが、こちらのやり方も試してみたいと思います。


ありがとうございました!

お礼日時:2011/07/28 22:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!