CSS로 전체 웹 페이지를 확장하려면 어떻게해야합니까?


153

Firefox를 사용하면을 누르기 만하면 전체 웹 페이지를 확대 할 수 있습니다 CTRL +. 이것이하는 일은 전체 웹 페이지 (글꼴, 이미지 등)를 비례 적으로 확대하는 것입니다.

간단한 CSS를 사용하여 동일한 기능을 어떻게 복제 할 수 있습니까?

다음과 같은 page-size: 150%것이 있습니까? (전체 페이지 부분을 x % 증가시킬까요?)


7
Firefox의 페이지 확대 / 축소 기능은 모든 최신 브라우저에 나타납니다.
Quentin

1
나는 David에게 동의합니다. 브라우저에는이 기능이 내장되어 있기 때문에 이것을 복제하는 것은 무의미한 것 같습니다 ....
사용자

5
이것은 실제로 모바일 장치에 매우 유용한 기능입니다. 많은 전화가 이제 차이를 수용하지 않고 PPI를 높이고 있습니다 (물론 iPhone4는 제외).
DA.

38
복제하지 않습니다. 포함 된 div의 페이지 / 요소 미리보기와 같은 경우에 유용 할 수 있습니다.
RichieHH

3
페이지 디자이너는 자신의 페이지에 대한 기본 확대 / 축소를 설정할 수 있어야합니다. 페이지를 만들 때 크기가 크지 만 고해상도 디스플레이로 인해 크기가 작습니다. lonniebest.com/CardTrick 페이지를 다시 만드는 대신 기본적으로 확대 / 축소하고 싶습니다.
Lonnie Best 3

답변:


182

zoomIE 5.5 이상, Opera 및 Safari 4 및 Chrome에서 지원되는 CSS 속성 을 사용할 수 있습니다.

사용할 수 있습니까 : CSS 줌

Firefox는 Zoom ( 여기서는 bugzilla 항목 )을 지원하지 않는 유일한 주요 브라우저 이지만 Firefox 3.5에서 "proprietary"-moz-transform 속성을 사용할 수 있습니다 .

그래서 당신은 사용할 수 있습니다 :

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

1
독점 줌 속성은 IE에서만 지원됩니다. reference.sitepoint.com/css/zoom#compatibilitysection
Quentin

15
David, 그 참조는 구식입니다. 목록에있는 브라우저 버전을보십시오. CSS Zoom은 Firefox를 제외한 모든 주요 브라우저에서 지원됩니다. 그리고 -moz- CSS 확장보다 더 독점적이지 않습니다.
Jon Galloway

3
참고 : em 및 % 기반 스케일링과 같이 제안 된 다른 솔루션은 더 "순수"하지만 처음부터 그런 방식으로 구축하지 않으면 대부분의 웹 레이아웃에서 반드시 실용적이지는 않습니다.
Jon Galloway

1
Opera 10b2를 테스트했지만 지원하지 않는 것 같습니다. Firefox는 매일 밤 이상하게 동작합니다 (확대 된 조각이 사라짐). IE5 / 6은 버그가 있습니다. WebKit에서만 잘 작동합니다.
Kornel

2
고마워 존, 좋은 정보! firefox -moz-transform scale에서 실제로 작동하지만 사용 사례에 따라 -moz-transform-origin (cfr. developer.mozilla.org/En/CSS/-moz-transform을 사용하여 요소의 위치를 ​​수정해야 할 수도 있습니다. –origin )
futtta

81

이 답변은 다소 늦었지만 사용할 수 있습니다.

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

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

18

CSS가 완전히 주위 ex또는 em단위로 구성된 경우 이것이 가능하고 가능할 수 있습니다. 또는 font-size: 150%에 대한 스타일 로 선언하면 됩니다 . 이로 인해 다른 모든 길이가 비례 적으로 확장됩니다. 그러나 스타일도 얻지 않으면 이미지 크기를 조정할 수 없습니다.bodyhtml

그러나 그것은 매우 큰의 경우 어쨌든, 대부분의 사이트에서.


3
내 글꼴의 크기 만 변경됩니다. CTRL +는 또한 고정 너비, 높이 및 이미지 크기를 넓 힙니다.

2
나는 알고 있지만 순수한 CSS로 얻을 수있는 한 가깝습니다. 또한 글꼴뿐만 아니라 크기가 글꼴 크기의 배수로 지정된 모든 항목도 변경됩니다. 당신이 사용하는 모든 의미 %, em또는 ex단위.
Joey

1
맞지 않습니다. 아래 나열된 솔루션 (zoom + -moz-transform 속성)을 테스트했으며 FF3.5, IE6 +, Safari 및 Opera에서 작동합니다. 텍스트뿐만 아니라 이미지의 크기도 조정합니다. CSS에서 페이지를 확장 할 수 있습니다.
Jon Galloway

6

Johannes가 말한 것처럼 (응답에 대해 직접 언급하기에 충분한 담당자는 아니지만) 모든 요소의 크기가 글꼴 크기의 배수로 지정되어있는 한 실제로이 작업을 수행 할 수 있습니다. 의미, %, em 또는 ex를 사용한 모든 것 단위 ". 비록 %는 글꼴 크기가 아닌 요소를 포함한다고 생각합니다.

그리고 픽셀로 구성되어 있다고 가정하면 이미지에 일반적으로 이러한 상대 단위를 사용하지는 않지만 훨씬 더 실용적인 트릭이 있습니다.

정의 body{font-size: 62.5%};하면 1em은 10px와 같습니다. 내가 아는 한 모든 기본 브라우저에서 작동합니다.

그런 다음 width: 10em; height: 10em;Firefox의 크기 조정이 기본값으로 설정되어 있다고 가정하면 100px 정사각형 이미지를 지정할 수 있습니다 . 이미지는 원래 크기입니다.

확인 body{font-size: 125%};및 모든 - 이미지를 포함하여 - 더블 원래 크기 줘야 해.


body라고 말하면 이해가되지 않습니다 {font-size : 62.5 %; font-size : 125 %}-1em을 10px로 정의하는 방법. 브라우저가 단순히 첫 번째 글꼴 크기 선언을 무시한 다음 125 % = 10px를 만들 수 있습니까?

당신이 오해 한 것 같아요 당신은 동시에 둘 다하지 않을 것입니다. 62.5 x2 = 125 ...는 값을 조정하여 크기를 조절할 수있는 방법을 보여줍니다.
Ape-inago

네. '그런 다음 자바 스크립트를 사용하여 {font-size : 125 %} 본문을 설정하면 모든 페이지 요소의 크기가 두 배가됩니다.
e100

3

이 코드를 사용하면 1em 또는 100 %가 신체 높이의 1 %와 같습니다.

document.body.style.fontSize = ((window.innerHeight/100)*6.25)+"%"

2
 * {
transform: scale(1.1, 1.1)
}

이것은 페이지의 모든 요소를 ​​변형시킵니다


1

Jon Tan은 자신의 사이트 인 http://jontangerine.com/ 에서이 작업을 수행했습니다. 이미지를 포함한 모든 것이 ems로 선언되었습니다. 모두. 이것이 원하는 효과를 얻는 방법입니다. 텍스트 줌과 화면 줌은 거의 동일한 결과를냅니다.


1

CSS는 필요에 따라 확대 할 수 없지만 CSS와 JS를 결합하면 페이지를 더 크게 보이도록 일부 값을 변경할 수 있습니다. 그러나 현재까지이 기능은 최신 브라우저에서 표준으로 제공되므로 복제 할 필요가 없습니다. 실제로 복제하면 웹 사이트 속도가 느려집니다 (더 많은로드, 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.