Firefox 및 Opera에서 HTML 요소를 확대하려면 어떻게해야합니까?


82

Firefox 및 Opera에서 HTML 요소를 확대하려면 어떻게해야합니까?

zoom속성은 IE, Google Chrome 및 Safari에서 작동하지만 Firefox 및 Opera에서는 작동하지 않습니다.

이 속성을 Firefox 및 Opera에 추가하는 방법이 있습니까?


1
나는 당신의 질문에 꽤 철저하게 대답 하는 이 질문 을 당신에게 추천 할 것입니다.
Ben

답변:


80

이 코드를 시도하면 작동합니다.

-moz-transform: scale(2);

이것을 참조 할 수 있습니다 .


2
Ya 이것은 완벽하게 작동합니다. -moz-transform 배율을 백분율로 변경하는 방법이 있습니까?

십진수 형식의 백분율입니다. (1 = 100 % 2 = 200 % 0.2 = 20 %)하지만 백분율 표기법도 사용할 수 있다고 생각합니다. w3.org/TR/css3-values/#percentages
sholsinger 2011

45
이것의 문제는 고정 된 위치 요소가있을 때입니다. 확대 / 축소는 변환 배율과 다른 방식으로 작동합니다.
Tom Roggero

3
또한 ... ff가 확대 / 축소를 지원하면 어떻게 되나요? 이 더블 줌이 될까요? 이것은 솔루션 imo처럼 보이지 않습니다.
Cory Mawhorter

이것은 이미지의 특정 부분을 실제로 확대해야하는 스프라이트 이미지에서는 작동하지 않습니다.
colin rickels

52

확대 / 축소 및 변환 배율은 동일하지 않습니다. 그들은 다른 시간에 적용됩니다. 렌더링이 발생하기 전에 확대 / 축소가 적용됩니다. 그 결과 너비 / 높이 = 다른 div 내부에 100 % 중첩 된 div를 고정 크기로 가져 오면 확대 / 축소를 적용하면 내부 확대 / 축소 내부의 모든 것이 축소되거나 커지지 만 적용하면 전체를 변환합니다. 내부 div가 축소됩니다 (폭 / 높이가 100 %로 설정되어 있어도 변환 후에는 100 %가되지 않습니다).


35

나를 위해 이것은 확대 / 축소 및 배율 변환의 차이를 상쇄하기 위해 작동하며 원하는 원점을 조정합니다.

zoom: 0.5;
-ms-zoom: 0.5;
-webkit-zoom: 0.5;
-moz-transform:  scale(0.5,0.5);
-moz-transform-origin: left center;

8

scale대신 사용하십시오 ! 많은 연구와 테스트를 거친 후 브라우저 간을 달성하기 위해이 플러그인을 만들었습니다.

$.fn.scale = function(x) {
    if(!$(this).filter(':visible').length && x!=1)return $(this);
    if(!$(this).parent().hasClass('scaleContainer')){
        $(this).wrap($('<div class="scaleContainer">').css('position','relative'));
        $(this).data({
            'originalWidth':$(this).width(),
            'originalHeight':$(this).height()});
    }
    $(this).css({
        'transform': 'scale('+x+')',
        '-ms-transform': 'scale('+x+')',
        '-moz-transform': 'scale('+x+')',
        '-webkit-transform': 'scale('+x+')',
        'transform-origin': 'right bottom',
        '-ms-transform-origin': 'right bottom',
        '-moz-transform-origin': 'right bottom',
        '-webkit-transform-origin': 'right bottom',
        'position': 'absolute',
        'bottom': '0',
        'right': '0',
    });
    if(x==1)
        $(this).unwrap().css('position','static');else
            $(this).parent()
                .width($(this).data('originalWidth')*x)
                .height($(this).data('originalHeight')*x);
    return $(this);
};

usege :

$(selector).scale(0.5);

노트:

클래스와 함께 래퍼를 만듭니다 scaleContainer. 콘텐츠를 스타일링하는 동안 처리하십시오.


크기 조정 된 요소의 테두리 너비를 처리하여 더욱 멋지게 만들 수 있습니다..width($(this).data('originalWidth') * x + borderWidth)
umutesen

5
zoom: 145%;
-moz-transform: scale(1.45);

이것을 사용하여 더 안전한쪽에


10
이것은 웹킷에서 2 배 확대됩니다. 두 번째 규모로 확대하여 주먹,
에일 루지 카

5

다른 답변에서 설명했듯이 동일하지 않기 때문에 모든 경우에 대해 변경 zoom합니다 transform. 내 경우 transform-origin에는 내가 원하는 곳에 물건을두기 위해 재산을 적용하는 것도 필요 했습니다.

이것은 Chome, Safari 및 Firefox에서 나를 위해 일했습니다.

transform: scale(0.4);
transform-origin: top left;
-moz-transform: scale(0.4);
-moz-transform-origin: top left;

1

모든 브라우저에서 균일하게 작동하지 않습니다. http://www.w3schools.com/html/tryit.asp?filename=tryhtml_pulpitimage에 가서 zoom 및 -moz-transform에 대한 스타일을 추가했습니다. firefox, IE 및 chrome에서 동일한 코드를 실행하여 3 가지 다른 결과를 얻었습니다.

<html>
<style>
body{zoom:3;-moz-transform: scale(3);}
</style>
<body>

<h2>Norwegian Mountain Trip</h2>
<img border="0" src="/images/pulpit.jpg" alt="Pulpit rock"  />

</body>
</html>

1

나는 이것에 대해 한동안 맹세했습니다. Zoom은 확실히 해결책이 아니며 크롬에서 작동하며 부분적으로 IE에서 작동하지만 전체 html div를 이동하고 firefox는 아무런 작업을 수행하지 않습니다.

나를 위해 일한 내 솔루션은 크기 조정과 번역을 모두 사용하고 원래 높이와 무게를 추가 한 다음 div 자체의 높이와 무게를 설정하는 것이 었습니다.

#miniPreview {
transform: translate(-710px, -1000px) rotate(0rad) skewX(0rad) scale(0.3, 0.3);
transform-origin: 1010px 1429px 0px;
width: 337px;
height: 476px;

분명히 이것들을 자신의 필요에 맞게 변경하십시오. 모든 브라우저에서 동일한 결과를 얻었습니다.


이것은 유일한 정답입니다! 크기 만 조정하면 요소의 원래 크기가 그대로 유지됩니다.
Honza Zidek

1

이 코드를 사용하여 fireFox에서 전체 페이지를 확대하십시오.

-moz-transform: scale(2);

이 코드를 사용하면 y 및 x 스크롤로 전체 페이지가 제대로 확대되지 않습니다.

so Sorry to say fireFox not working well using "-moz-transform: scale(2);"

**

fireFox에서 CSS를 사용하여 페이지를 확대 할 수 없습니다.

**


0

이것이 당신을 위해 올바르게 작동합니까? :

zoom: 145%;
-moz-transform: scale(1.45);
-webkit-transform: scale(1.45);
scale(1.45);
transform: scale(1.45);

0

나를 위해 이것은 IE10, Chrome, Firefox 및 Safari에서 잘 작동합니다.

   #MyDiv>*
   {
        zoom: 50%;
        -moz-transform: scale(0.5);
        -webkit-transform: scale(1.0);
   }

이렇게하면 모든 콘텐츠가 50 %로 확대됩니다.


0

정확하고 W3C 호환 가능한 대답은 <html>object 및 rem입니다. 축소하면 변환이 제대로 작동하지 않습니다 (예 : scale (0.5).

사용하다:

html
{
   font-size: 1mm; /* or your favorite unit */
}

<body>미터법 단위 대신 코드 "rem"단위 (의 스타일 포함 )를 사용합니다. "%"는 변경되지 않습니다. 모든 배경에 대해 배경 크기를 설정하십시오. 다른 요소에 상속되는 본문의 글꼴 크기를 정의합니다.

1.0 이외의 확대 / 축소를 실행하는 조건이 발생하면 태그의 글꼴 크기를 변경합니다 (CSS 또는 JS를 통해).

예를 들면 :

@media screen and (max-width:320pt)
{
   html
   {
      font-size: 0.5mm; 
   }
}

이는 JS에서 clientX 및 드래그-드롭 이벤트 동안 위치 지정 문제없이 zoom : 0.5와 동일합니다.

미디어 쿼리에 "rem"을 사용하지 마십시오.

실제로 확대 / 축소가 필요하지 않지만 경우에 따라 기존 사이트에 대해 더 빠른 방법을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.