2011-01-11 11 views
27

Chciałbym utworzyć stronę z wieloma elementami iframe wyświetlającymi różne strony - coś w stylu "przeglądaj wiele stron obok siebie". Kłopot polega na tym, że w tym przypadku rzutnie są dość małe i widzę tylko lewy górny róg każdej strony.JavaScript/CSS: ustawia (firefox) poziom powiększenia elementu iframe?

Czy istnieje sposób ustawienia elementu iframe w celu efektywnego zmniejszenia powiększenia firewalla (ctrl-minus) kilka razy, aby cała strona była widoczna? Nie obchodzi mnie szczególnie, czy tekst jest czytelny, tylko jeśli mogę w zasadzie zobaczyć, jak wygląda strona.

Nie potrzebuję tego jako przeglądarki (dla moich celów musi działać tylko w najnowszym firefoxie), chociaż oczywiście rozwiązanie dla wielu przeglądarek byłoby lepsze ze względu na każdego, kto tego potrzebuje i potyka się w tym pytaniu.

+0

Czy wiele elementów iframe ma wyświetlać strony internetowe lub wiele domen? – stecb

+0

wszystkie elementy iframe wskazują strony w tej samej domenie w tym konkretnym przypadku – Mala

Odpowiedz

47

Można zastosować css przekształca się iframe:

iframe { 
    -moz-transform: scale(0.25, 0.25); 
    -webkit-transform: scale(0.25, 0.25); 
    -o-transform: scale(0.25, 0.25); 
    -ms-transform: scale(0.25, 0.25); 
    transform: scale(0.25, 0.25); 
    -moz-transform-origin: top left; 
    -webkit-transform-origin: top left; 
    -o-transform-origin: top left; 
    -ms-transform-origin: top left; 
    transform-origin: top left; 
    border: solid #ccc 10px; 
} 

http://jsfiddle.net/6QMcX/

Obiekt pochodzenie przekształcić pozwala mu być skalowane bez zmiany swojego stanowiska.

To działa dla Webkit, Opera, FF i IE9 (untested). Tekst wygląda świetnie i jest nadal czytelny w bardzo małych rozmiarach.

+1

* dokładnie * to, czego szukałem. Dzięki! rocka – Mala

+1

To nie działa poprawnie na iPadzie Safari. Zobacz: http://stackoverflow.com/questions/11559700/iframe-css3-scaling-issue-on-ipad-safari-ios-5-0-1 – kahoon

+0

To zmienia wszystko. –

3

Mam odpowiednie wyniki tak (testowane tylko w chrom):

CSS:

<style> 
#iframe { 
    -moz-transform: scale(0.25, 0.25) translate(-150%, -150%); 
    -webkit-transform: scale(0.25, 0.25) translate(-150%, -150%); 
    -o-transform: scale(0.25, 0.25) translate(-150%, -150%); 
    transform: scale(0.25, 0.25) translate(-150%, -150%); 
} 
#wrapper { 
    width: 256px; 
    height: 230px; 
} 
</style> 

HTML:  

<div id="wrapper"> 
    <iframe id="iframe" width="1024" height="920" scrollbars="no"></iframe> 
</div> 

Może to pomoże.

Powiązane problemy