CSSでWebページ全体をスケーリングするにはどうすればよいですか?


151

Firefoxを使用すると、を押すだけでWebページ全体を拡大できますCTRL +。これにより、Webページ全体(フォント、画像など)が比例して拡大されます。

CSSを使用して同じ機能を複製するにはどうすればよいですか?

次のようなものはありますかpage-size: 150%(これにより、ページ全体がx%増加しますか?)


7
Firefoxのページズーム機能は、最新のすべてのブラウザに表示されます。
クエンティン

1
私はデビッドに同意します。ブラウザは、今日に建設され、この機能を持っているので、....これを複製するようなものは無意味のようだ
ユーザー

5
これは実際にはモバイルデバイスにとって非常に便利な機能です。現在、多くの携帯電話が違いを受け入れずにPPIを増やしています(もちろん、iPhone4は別として)。
DA。

38
その複製ではありません。埋め込まれたdivのページ/要素のプレビューのようなものに役立つかもしれません。
RichieHH、2011年

3
ページ設計者は、自分のページのデフォルトのズームを設定できる必要があります。作成したときに大きいページがありましたが、高解像度のディスプレイのために今は小さくなっています。lonniebest.com / CardTrickページを再作成する代わりに、デフォルトでズームしたいと思います。
ロニーベスト

回答:


182

CSS zoomプロパティを使用できる可能性があります-IE 5.5以降、Opera、Safari 4、およびChromeでサポートされています

使用できます:css Zoom

Firefoxは、Zoom(bugzillaの項目)をサポートしない唯一の主要なブラウザーですが、Firefox 3.5では「独自の」-moz-transformプロパティを使用できます。

だからあなたは使うことができます:

div.zoomed { 
    zoom: 3; 
    -moz-transform: scale(3); 
    -moz-transform-origin: 0 0;
} 

1
独自のズームプロパティは、IEでのみサポートされています。reference.sitepoint.com/css/zoom#compatibilitysection
クエンティン

15
David、そのリファレンスは非常に古くなっています-リストにあるブラウザーのバージョンを見てください。CSSズームは、Firefoxを除くすべての現在の主要なブラウザーでサポートされています。そして、それは-moz- CSS拡張のどれよりも独占的ではありません。
ジョンギャロウェー

3
注:提案されている他のソリューション(emや%ベースのスケーリングなど)は「純粋」ですが、ゼロから構築しない限り、ほとんどのWebレイアウトで必ずしも実用的ではありません。
ジョンギャロウェイ

1
Opera 10b2をテストしましたが、サポートしていないようです。Firefoxの夜間の動作がおかしい(ズームされたフラグメントが消える)。IE5 / 6はバグがあります。WebKitでのみ正常に動作します。
Kornel

2
ジョン、素晴らしい情報に感謝!Firefoxの-moz-変換スケールで実際に動作しますが、ご使用のケースに応じて、あなたは(CFRを-moz-変換-起源を使用して要素の位置を修正する必要がある場合があります。developer.mozilla.org/En/CSS/-moz-transform -origin
futtta 2010年

80

これはかなり遅い答えですが、あなたは使うことができます

body {
   transform: scale(1.1);
   transform-origin: 0 0;
   // add prefixed versions too.
}

ページを110%ズームします。けれどもzoomスタイルがあり、Firefoxはまだ悲しいことに、それをサポートしていません。

また、これはズームとは少し異なります。css transform画像のズームのような作品は、それは、リフロー原因などをあなたのページを拡大しなくなります


更新された変換の原点を編集します。


1
ありがとうございます。ただし、宣言の間にセミコロンが必要です。また、これを試したところ、ページが左マージンを超えて左に移動したため、ページの左側が表示されなくなりました。対応するさまざまな "... transform-origin:0 0"宣言を追加すると、それが修正されます。
Dave Burton、

はい、私はコンテンツがでクリッピングされていることを述べるべきtransformでした。コメントをありがとう。
kumarharsh 2013年

1
@Dave Burtonに同意しtransform-origin: 0 0;ます。たとえば、ページを150%にズームするには:transform: scale(1.5); transform-origin: 0 0;。@kumar_harshのそれ以外の点で良い答えは修正する必要があると思います。
Kai Carver

@KaiCarver 場合はこの方法を使用する、それは常にクリッピングになります。どんなポイントで使ってもtransform-origin。私が書いたものは、使用する値のほんの一例です。transform-origin: 0 0ユースケースに適している場合(または、右下にあるものが気にならない場合)は、もちろん自由に使用できます
kumarharsh

@AngularM動作を示すコードスニペットを共有できますか?これには他にも理由があると思います。
kumarharsh 2017年

18

場合は、あなたのCSSを完全に周りに構築されるexemのユニット、これが可能と実現可能かもしれません。またはのfont-size: 150%スタイルで宣言する必要があります。これにより、その他すべての長さが比例してスケーリングされます。ただし、スタイルを取得しない限り、この方法で画像を拡大縮小することはできません。bodyhtml

しかし、ほとんどのサイトでとにかく、それは非常に大きなものです。


3
それは私のフォントのサイズを変更するだけです。CTRL +はまた、固定幅、高さ、画像サイズを広げます。

2
私は知っていますが、それは純粋なCSSでできる限り近いです。また、フォントが変わるだけでなく、寸法がフォントのサイズの倍数として指定されているすべてのものも変わります。意味、使用したすべて%emまたはex単位。
ジョーイ

1
それは正しくありません。下記のソリューション(ズーム+ -moz-transformプロパティ)をテストしましたが、FF3.5、IE6 +、Safari、Operaで動作します。画像だけでなくテキストも拡大縮小します。CSSでページをスケーリングできます。
ジョンギャロウェー、

6

ヨハネスが言うように-彼の答えに直接コメントするのに十分な担当者ではありません-すべての要素の「寸法がフォントのサイズの倍数として指定されている限り、実際にこれを行うことができます。意味、%、em、またはexを使用したすべて単位」。%はfont-sizeではなく、含んでいる要素に基づいていると思います。

また、これらの相対単位はピクセルで構成されているので、通常は画像に使用しませんが、これをより実用的にするトリックがあります。

定義するとbody{font-size: 62.5%};、1emは10pxに相当します。私の知る限り、これはすべてのメインブラウザーで機能します。

次に、(例)100px正方形の画像を指定できます。Firefox width: 10em; height: 10em;のスケーリングがデフォルトに設定されていると仮定すると、画像は自然なサイズになります。

作成body{font-size: 125%};およびすべて-画像を含む-は元のサイズの2倍になります。


本文と言ってもわかりません{font-size:62.5%; font-size:125%}-1emを10pxと定義する方法 ブラウザは最初のフォントサイズ宣言を単に無視し、次に単に125%= 10pxにすることができますか?

誤解していると思います。両方を同時に行うことはできません。62.5 x2 = 125 ...値を調整することで物事をどのようにスケーリングできるかを示します。
Ape-in​​ago

うん。私は「あなたがJavascriptを使用して本文を設定すると{font-size:125%}すべてのページ要素のサイズが2倍になる」と言ったはずです。
E100



1

ジョン・タンは、彼のサイトでこれを行っている- http://jontangerine.com/ 画像を含むすべてのものは、EMSで宣言されています。すべて。これにより、望ましい効果が得られます。テキストズームと画面ズームはほぼ同じ結果をもたらします。


1

CSSはオンデマンドでズームできませんが、CSSをJSと組み合わせた場合、いくつかの値を変更してページを大きく見せることができます。ただし、すでに述べたように、この機能は最近のブラウザーでは標準であり、複製する必要はありません。実際のところ、それを複製すると、Webサイトの速度が低下します(ロードするものが増える、解析または実行および適用するJSまたはCSSが増えるなど)。


これは標準のブラウザー機能ですが、機能をサイトに直接追加すると、(1)選択したブラウザーに関するユーザーの専門知識と(2)ブラウザー固有の指示
Ags1

1

CSSプロパティを使用してページ全体をスケーリングする次のコードがあります。重要なことは、body.style.widthをズームの逆に設定して、水平スクロールを回避することです。また、ドキュメントの左上をウィンドウの左上に保つには、transform-originを左上に設定する必要があります。

        var zoom = 1;
        var width = 100;

        function bigger() {
            zoom = zoom + 0.1;
            width = 100 / zoom;
            document.body.style.transformOrigin = "left top";
            document.body.style.transform = "scale(" + zoom + ")";
            document.body.style.width = width + "%";
        }
        function smaller() {
            zoom = zoom - 0.1;
            width = 100 / zoom;
            document.body.style.transformOrigin = "left top";
            document.body.style.transform = "scale(" + zoom + ")";
            document.body.style.width = width + "%";
        }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.