如何使用CSS扩展整个网页?

141 html css resize

使用Firefox,您只需按下即可放大整个网页CTRL +.这样做是按比例放大整个网页(字体,图像等).

如何使用简单的CSS复制相同的功能?

是否有类似的东西page-size: 150%(这将使整个页面部分增加x%?)

Jon*_*way 171

您可以使用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;
} 
Run Code Online (Sandbox Code Playgroud)

  • 大卫,这个参考已经过时了 - 看看它列出的浏览器版本.除了Firefox之外,所有当前主流浏览器都支持CSS Zoom.并且它不比任何-moz-CSS扩展更专有. (15认同)
  • 注意:我认为已经提出的其他解决方案 - 例如基于em和%的缩放 - 更"纯粹",但在大多数Web布局上并不一定实用,除非您从头开始构建这种方式. (3认同)
  • 只有 IE 支持专有缩放属性。http://reference.sitepoint.com/css/zoom#compatibilitysection (2认同)
  • 谢谢jon,很棒的信息!在firefox -moz-transform scale中确实有效,但根据你的用例,你可能需要使用-moz-transform-origin来修正元素的位置(cfr.https://developer.mozilla.org/En/CSS/ -moz-变换原点) (2认同)

kum*_*rsh 69

这是一个相当晚的答案,但你可以使用

body {
   transform: scale(1.1);
   transform-origin: 0 0;
   // add prefixed versions too.
}
Run Code Online (Sandbox Code Playgroud)

将页面缩放110%.虽然zoom风格在那里,但Firefox仍然不能令人遗憾地支持它.

此外,这与缩放略有不同.该css transform像的图像缩放功能,所以它会放大你的网页,但不会造成回流,等等.


编辑更新了转换原点.

  • 我正在尝试将其添加到我网站的首页。它肯定会改变页面的大小,但它也使所有内容都源自屏幕的左侧。有没有一种方法可以使用这种缩放,从而仅从中心点缩放所有内容? (2认同)

Joe*_*oey 17

如果您的CSS完全围绕exem单位构建,那么这可能是可行的.你只需要用font-size: 150%你的风格声明bodyhtml.这应该导致所有其他长度按比例缩放.但是,你不能以这种方式缩放图像,除非他们也得到了一种风格.

但是,这是一个非常大的,如果大多数网站,反正.

  • 这只会改变我字体的大小.CTRL +也提出了加宽固定宽度,高度和图像尺寸的方法. (3认同)
  • 我知道,但它与纯CSS一样接近.此外,不仅您的字体会更改,而且所有尺寸都指定为字体大小的倍数.意思是,你使用`%`,`em`或`ex`单位的所有东西. (2认同)

小智 11

规模并不是最好的选择

它将需要一些其他调整,例如边距填充等..

但正确的选择是

zoom: 75%
Run Code Online (Sandbox Code Playgroud)

  • ...不适用于根本不支持它的 Firefox。 (3认同)

小智 7

对于跨浏览器兼容性:

示例如下:

<html><body class="entire-webpage"></body></html>



.entire-webpage{
        zoom: 2;
        -moz-transform: scale(2);/* Firefox Property */
        -moz-transform-origin: 0 0;
        -o-transform: scale(2);/* Opera Property */
        -o-transform-origin: 0 0;
        -webkit-transform: scale(2);/* Safari Property */
        -webkit-transform-origin: 0 0;
        transform: scale(2); /* Standard Property */
        transform-origin: 0 0;  /* Standard Property */
    }
Run Code Online (Sandbox Code Playgroud)


Ags*_*gs1 6

我有以下代码通过 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 + "%";
        }
Run Code Online (Sandbox Code Playgroud)


e10*_*100 5

正如约翰内斯所说 - 没有足够的代表直接评论他的答案 - 只要所有元素的"维度被指定为字体大小的倍数,你就可以做到这一点.意思是,你使用%,em或ex的所有内容单位".虽然我认为%是基于包含元素,而不是font-size.

而且你通常不会将这些相对单位用于图像,因为它们是由像素组成的,但是有一个技巧可以使它更加实用.

如果你定义body{font-size: 62.5%};那么1em将相当于10px.据我所知,这适用于所有主流浏览器.

然后你可以指定你的(例如)100px方形图像,width: 10em; height: 10em;并假设Firefox的缩放设置为默认值,图像将是它们的自然尺寸.

制作body{font-size: 125%};和一切 - 包括图像 - 将是双原始大小.