Подтвердить что ты не робот

Что делает "масштабирование" в CSS?

Я обнаружил, что некоторый jQuery-плагин в своем правиле css использует дескриптор масштабирования, я даже смотрю на веб-сайт w3c и обнаружил, что он используется для увеличения, но как я могу его реализовать? Или мне нужно определить какой-то видовой экран? И как определить такой видовой экран? Или я ошибаюсь во всем?

можно использовать его как

a {
    zoom:1;
}

a:hover {
   zoom:2;
}
4b9b3361

Ответ 1

Масштаб не включен в спецификацию CSS, но поддерживается в IE, Safari 4, Chrome (и вы можете получить несколько схожий эффект в Firefox с -moz-transform: scale(x) начиная с версии 3.5). См. здесь.

Итак, все браузеры

 zoom: 2;
 zoom: 200%;

будет увеличивать ваш объект на 2, поэтому ему нужно удвоить размер. Это означает, что если у вас есть

a:hover {
   zoom: 2;
}

При наведении указатель тега <a> будет увеличиваться на 200%.

Как я уже сказал, в FireFox 3.5+ используйте -moz-transform: scale(x), он делает то же самое.

Изменить: в ответ на комментарий от thirtydot я скажу, что scale() не является полной заменой. Он не расширяется в строке, как zoom, скорее, он будет расширяться из коробки и над контентом, а не заставлять другой контент быть в стороне. См. Это в действии здесь. Кроме того, кажется, что zoom не поддерживается в Opera.

Это сообщение дает полезное представление о способах устранения несовместимостей с scale и обходных путей для него с помощью jQuery.

Ответ 2

Удивленно, что никто не упоминал, что zoom: 1; полезен для IE6-7, чтобы решить большинство ошибок только IE, вызывая hasLayout.

Ответ 3

Это свойство управляет уровнем увеличения для текущего элемента. Эффект рендеринга для элемента - это функция "масштабирования" на камере. Несмотря на то, что это свойство не унаследовано, оно по-прежнему влияет на рендеринг дочерних элементов.

Пример

 div { zoom: 200% }
 <div style="zoom: 200%">This is x2 text </div>

Ответ 4

zoom - это спецификация css3 для дескриптора @viewport, как описано здесь

http://dev.w3.org/csswg/css-device-adapt/#zoom-desc

используется для масштабирования всего окна просмотра ( "экран" ). также происходит масштабирование отдельных элементов во многих браузерах, но не все. css3 указывает преобразование: для достижения такого эффекта следует использовать шкалу:

http://www.w3.org/TR/css3-transforms/#transform-functions

но он немного отличается от "масштабного элемента" в тех браузерах, которые его поддерживают.

Ответ 5

Только IE и WebKit поддерживают масштабирование, и да, в теории это делает именно то, что вы говорите.

Попробуйте на изображении, чтобы увидеть его полный эффект:)

Ответ 6

Теперь свойство CSS zoom широко поддерживается > 86% от общей численности пользователей браузера.

Смотрите: http://caniuse.com/#search=zoom

document.querySelector('#sel-jsz').style.zoom = 4;
#sel-001 {
  zoom: 2.5;
}
#sel-002 {
  zoom: 5;
}
#sel-003 {
  zoom: 300%;
}
<div id="sel-000">IMG - Default</div>

<div id="sel-001">IMG - 1X</div>

<div id="sel-002">IMG - 5X</div>

<div id="sel-003">IMG - 3X</div>


<div id="sel-jsz">JS Zoom - 4x</div>

Ответ 7

Как отметил Джошуа М, функция масштабирования не поддерживается только в Firefox, но вы можете просто исправить это, как показано:

div.zoom {
  zoom: 2; /* all browsers */
 -moz-transform: scale(2);  /* Firefox */
}