Вставка HTML-страницы в другую HTML страницу
Добрый день форумляне, подскажите пожалуйста, есть ли способ вместить в страницу содержание другой страницы, причем вторая страница должна быть уменьшена в масштабе без изменения содержимого.
Имеется html страница с картой, мне нужно уменьшить ее размер и поместить в центр другой страницы. По средствам чего можно это выполнить c iframe не получается, она просто не влазит в iframe, появляются скролы, неужели нет способа играть с размерами html страницы.:help: |
zoom: N; /* для IE */ transform: scale(...); /* для остальных */ |
Спасибо большое, только мне нужно уменьшить страницу, а transform: scale(...) - только увеличивает.
как уменьшить страницу, какой параметр использовать???? HELP!!! |
Цитата:
|
transform: scale(0.5); // уменьшит в два раза |
К сожалению Раед, Вы неправы, каждая цифра это полная ширина или высота объекта:
1 – размер не изменится; 1.5 – размер увеличится в полтора раза по ширине или высоте; 2 – размер увеличится в два раза по ширине или высоте; 3- размер увеличится в три раза по ширине или высоте; Так что transform: scale(...) - не подходит |
это параметр для css применяемой для div, тогда подскажите как мне вставить страницу в div.
|
devote, не получается
вот этот класс для div описанный в css .wrapper { position:relative; -o-transform: scale(0.5) } не уменьшает P.S. Какой параметр указать, для того что бы в div загрузить html-страницу????? |
<style> body{ -o-transform:scale(0.5); -webkit-transform: scale(0.5); -moz-transform:scale(0.5); -ms-transform:scale(0.5); transform::scale(0.5); } </style> |
Цитата:
Введите в консоль document.body.style.OTransform = 'scale(0.4, 0.1)' |
Цитата:
жаль, что zoom изменяет размер не векторно, а расторно. есть ли способ с помощью фильтров изменить размер векторным образом? </оффтопик> |
я тут http://webandad.com/ использовал zoom и scale вроде нормально, единственное проблема в ИЕ, то что zoom размер меняет к центру а scale к левому-верхнему углу. Или наоборот, точно не помню уже
|
devote, у него и с фильтром поворота тоже беда - он по-другому поворачивает*. поэтому поворот "как во всех браузерах" можно сделать только тогда, когда есть под рукой элемент, а не CSSStyleDeclaration :(. и это печально.
*величина "кривизны" зависит от размеров элемента PS. что-то я вспомнил про expressions... хм, может, еще получится сделать нормальный поворот, не имея на руках элемент. |
Цитата:
Работает во всех браузерах кроме ИЕ8 <style type="text/css"> #to_rotate { position: absolute; width: 100px; height: 100px; background-color: #f00; filter:expression("progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',M11="+(this.style.Rotate?1:(this.style.Rotate=0),(this.xWidth?1:(this.xWidth=this.offsetWidth,this.xHeight=this.offsetHeight,1)),(this.style.marginLeft=(-Math.round((this.offsetWidth-this.xWidth)/2))+"px"),(this.style.marginTop=(-Math.round((this.offsetHeight-this.xHeight)/2))+"px"),Math.cos((this.style.Rotate*Math.PI)/180.0))+",M12="+(-(Math.sin((this.style.Rotate*Math.PI)/180.0)))+",M21="+(Math.sin((this.style.Rotate*Math.PI)/180.0))+",M22="+(Math.cos((this.style.Rotate*Math.PI)/180.0))+")"); } </style> <div style="position: relative;"> <div id="to_rotate">test text</div> </div> <script type="text/javascript"> setInterval(function() { var el = document.getElementById('to_rotate'); // специальное свойство для IE ниже восьмой версии el.style.Rotate = (el.style.Rotate||0) + 2; // для все остальных el.style.OTransform = el.style.MozTransform = el.style.WebkitTransform = el.style.msTransform = el.style.transform = "rotate(" + el.style.Rotate + "deg)"; }, 50); </script> |
если кому то нужно кросс-браузерный rotate с помощью скриптов, то вот:
<style type="text/css"> #to_rotate { position: relative; width: 100px; height: 100px; background-color: #f00; } </style> <div id="to_rotate">test text</div> <script type="text/javascript"> function rotateElem( elem, deg ) { var style = elem.style; if ( elem.ownerDocument && elem.ownerDocument.defaultView ) { style = elem.ownerDocument.defaultView.getComputedStyle( elem, null ); } else if ( elem.currentStyle ) { style = elem.currentStyle; } if ( eval("/*@cc_on @_jscript_version;@*/") <= 5.8 ) { var rad = ( deg * Math.PI ) / 180.0, cos = Math.cos(rad), sin = Math.sin(rad); elem.originalWidth = elem.originalWidth || elem.offsetWidth; elem.originalHeight = elem.originalHeight || elem.offsetHeight; elem.style.filter = style.filter.replace( /progid:DXImageTransform.Microsoft.Matrix\([^)]*\)[;]?/g, "" ) + "progid:DXImageTransform.Microsoft.Matrix("+ "sizingMethod='auto expand',M11="+cos+",M12="+(-sin)+",M21="+sin+",M22="+cos+")"; elem.style.marginLeft = -Math.round( ( elem.offsetWidth - elem.originalWidth ) / 2 ); elem.style.marginTop =- Math.round( ( elem.offsetHeight - elem.originalHeight ) / 2 ); } else { var Transform = ( style.transform || style.OTransform || style.MozTransform || style.WebkitTransform || style.msTransform )+""; elem.style.OTransform = elem.style.MozTransform = elem.style.WebkitTransform = elem.style.msTransform = elem.style.transform = Transform.replace( /(none|[\s]?(rotate|matrix)\([^)]*\))/g, "" ) + " rotate(" + deg + "deg)"; } } setInterval((function(){ var start = 0; return function() { rotateElem( document.getElementById('to_rotate'), start+=2 ); } })(), 50); </script>работает во всех браузерах. |
Цитата:
тогда.. придется только для него получать список элементов (слава Богу, он поддерживает querySelectorAll - кстати, не без глюков?). получается объёмненько, если так ветвиться - три раза. но это уже лучше, чем ничего :) |
Цитата:
|
Deff, спасибо,страница уменьшилась : )
А можно задать какой то определенный размер страницы в % или px???? Теперь объясните пожалуйста как вставить эту страницу в DIV??? Если источником будет являться страница с php, в которую я буду вставлять свою html-страницу, то что изменится??? Если можно то привидите пожалуйста пример способа реализации. Очень благодарен за ответы.:) |
Цитата:
|
Раед, да, но только когда я вставляю страницу уменьшенную в iframe, то размер опять становиться прежним : (
|
hadzhimuratov,
Возможно тут нужно применять transform к Iframe (скорей всего по событию onload) или css |
а можешь на примере показать, буду очень признателен.
|
hadzhimuratov,
<style> body iframe{ -o-transform:scale(0.5); -webkit-transform: scale(0.5); -moz-transform:scale(0.5); -ms-transform:scale(0.5); transform::scale(0.5); } </style> Вот исходный http://hostjs-mybb2011.narod.ru/Chess.htm *Шахматы Вот уменьшенный => http://hostjs-mybb2011.narod.ru/ChessTransf.htm |
Deff, очень признателен, но я вот тут почитал http://futtta.be/squeezeFrame/, с помощью js делает умелец.
В продолжении, Deff, можешь подсказать как мне js подцепить к php???? P.S. Так у меня и не получается подогнать страницу под iframe(((( |
Цитата:
|
Уважаемый Deff,
На странице которую я хочу подогнать под iframe у меня карта из кусков, мне нужно уменьшить эту страницу в iframe, этого у меня не получается сделать, а без уменьшения передвигая, всеравно не влазиет((( |
hadzhimuratov,
Вы ссылки с примерами смотрели ? Шахматы ? Шахматы стоят фреймом с ресурса к которому я доступ не имею Вот уменьшенный с поправленным смещением http://hostjs-mybb2011.narod.ru/ChessTransf2.htm |
я что то не так делаю??
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>primer</title> <link href="css/default.css" rel="stylesheet" type="text/css" /> </head> <style> body iframe{ -o-transform:scale(0.5); -webkit-transform: scale(0.5); -moz-transform:scale(0.5); -ms-transform:scale(0.5); transform::scale(0.5); } </style> <body> <div><iframe SRC="index.html"></iframe></div> </body> |
hadzhimuratov,
Не заданы размеры фрейма Они должны быть сначало для полноразмерной страницы, А затем мы поправим http://htmlbook.ru/html/iframe |
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>primer</title> <link href="css/default.css" rel="stylesheet" type="text/css" /> </head> <style> body iframe{ -o-transform:scale(0.5); -webkit-transform: scale(0.5); -moz-transform:scale(0.5); -ms-transform:scale(0.5); transform::scale(0.5); } </style> <body> <div><iframe SRC="index.html" width="604" height="367"></iframe></div> </body> </html> Размер страницы с кусками карты 1200 на 820. |
Цитата:
|
Страницы не опубликованы.
Вот здесь сама по себе страница уменьшается. Цитата:
Цитата:
|
hadzhimuratov,
Мне нужна реальная ссылка хотя бы на карту, можно в личку - иначе трудно сообразить...да и привык ужо так |
hadzhimuratov,
Ну итоговый код получился таков: <html> <head> <style> #Wrapper1 iframe{ margin-left:-290px; margin-top: 40px; -o-transform:scale(1.1); -webkit-transform: scale(1.1); -moz-transform:scale(1.1); -ms-transform:scale(1.1); transform:scale(1.1); } #Wrapper1{ height:367px; width:604px; overflow:hidden; border:red solid 1px; } </style> <meta http-equiv="Content-Type" content="text/html;charset=windows-1251"> </head> <body> <div id="Wrapper1"><iframe width="1280" height="840" SRC="lesson_files/index000.htm" seamless></iframe><div> </body> </html> Отправил Демо в Личку: |
Огромнейшее спасибо, но вот беда с IE, нужно походу описание делать с эмуляцией <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> .
|
hadzhimuratov,
Вопрос такой - исходная страница с картой без фрейма - в ИЕ отражается без проблем ? |
Deff,Выскакивает окошко, разрешить заблокированное, после чего отображается в исходном размере, не уменьшенном.
|
Извините, в мини-отпуске был.
|
Нашел инфу о том что нельзя играть с размерами ифрэйма. НоDeff,
смог меня переубедить в этом, но как сделать так что бы в ИЕ отображалась уменьшенная страница как и в FF, Opera и Chrome |
hadzhimuratov,
В IE не сделать, поскольку нет свойств сss и проще править скрипт на странице фрейма, посколь карта задана картинками, вот они ужимаются (наверно, если они идут не как фоновые, но проще имхо - перевоять скрипт карты, чем мучицо с чужими шедеврами, фреймо вставками и отсутствием кроссбраузерности |
Часовой пояс GMT +3, время: 13:27. |