[解決済み] CSS image resize percentage of itself?
2022-07-01 21:13:23
質問
画像にパーセンテージを付けてリサイズしようとしています。例えば、私はちょうどそれが50%にリサイズすることによって半分に画像を縮小したい。しかし、適用する
width: 50%;
を適用すると、画像はコンテナ要素 (親要素で、たぶん
<body>
のような親要素) の50%にリサイズされる。
質問ですが、javascriptやサーバーサイドを使用せずに、画像自体のパーセンテージでサイズを変更することは可能ですか?(私は画像のサイズの直接の情報を持っていない)。
私はあなたがこれを行うことはできません確信していますが、私はちょうどインテリジェントなCSSのみのソリューションがあるかどうかを確認したいです。ありがとうございます。
どのように解決するのですか?
2つの方法があります。
方法1. jsFiddleでデモを行う
このメソッドは、DOM上の実寸ではなく、視覚的にのみ画像をリサイズし、リサイズ後の視覚的な状態は元のサイズの中央で表示されます。
htmlを使用します。
<img class="fake" src="example.png" />
cssを使用します。
img {
-webkit-transform: scale(0.5); /* Saf3.1+, Chrome */
-moz-transform: scale(0.5); /* FF3.5+ */
-ms-transform: scale(0.5); /* IE9 */
-o-transform: scale(0.5); /* Opera 10.5+ */
transform: scale(0.5);
/* IE6–IE9 */
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.9999619230641713, M12=-0.008726535498373935, M21=0.008726535498373935, M22=0.9999619230641713,SizingMethod='auto expand');
}
ブラウザのサポート情報。
ブラウザの統計では、インラインで表示される
css
.
方法2. jsFiddleでのデモ
htmlを使用します。
<div id="wrap">
<img class="fake" src="example.png" />
<div id="img_wrap">
<img class="normal" src="example.png" />
</div>
</div>
cssを使用します。
#wrap {
overflow: hidden;
position: relative;
float: left;
}
#wrap img.fake {
float: left;
visibility: hidden;
width: auto;
}
#img_wrap {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
#img_wrap img.normal {
width: 50%;
}
注意
img.normal
と
img.fake
は同じ画像です。
ブラウザのサポートに関する注意事項。
このメソッドはすべてのブラウザで動作します。なぜなら、すべてのブラウザは
css
プロパティをサポートしているからです。
メソッドはこのように動作します。
-
#wrap
そして#wrap img.fake
が流れる -
#wrap
があるoverflow: hidden
となっており、内側の画像と同じ大きさになっています(img.fake
) -
img.fake
の中にある唯一の要素です。#wrap
がなくabsolute
を配置することで、2番目のステップを壊さないようにします。 -
#img_wrap
はabsolute
の中に位置する#wrap
に配置され、サイズも要素全体に広がっています (#wrap
) -
第4ステップの結果は
#img_wrap
が画像と同じ寸法になることです。 -
設定により
width: 50%
にimg.normal
の場合、その大きさは50%
の#img_wrap
であり、したがって50%
は元の画像サイズの
関連
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] コンテナの幅に応じたフォントの拡大縮小
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] Twitter Bootstrap 3を使用して列を中央に配置する
-
[解決済み] 入力テキストボックスの値を取得する
-
[解決済み] CSS画像を背景で伸縮させる - CSSのみで可能
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] ラジオボタンをデフォルトで選択するには?[重複しています]
-
[解決済み] テーブル内のテキストアラインクラス
-
[解決済み] Webサイトのブラウザタブアイコン(ファビコン)を追加する方法を教えてください。
-
[解決済み] メモ帳++でXML/HTMLを自動整形/インデントする方法
-
[解決済み] HTML Input="file" Accept Attribute File Type (CSV)