Каркасы Chrome и Safari друг над другом, а не рядом - PullRequest
0 голосов
/ 07 ноября 2011

Я знаю, iframes, что за ПИТА!

Anyhoos, они работают для моих нужд, которые являются просто основной рамкой дисплея и скрытой боковой рамкой, содержащей приложения, которые можно вызывать в любое время.

Вот код:

<html>
<head>

<!--Main Style-->
<link rel="stylesheet" type="text/css" href="site/css/main.css" />

<!--JQuery-->
<script type="text/javascript" src="site/scripts/jquery.js"></script>

<!--BG Colour, Hide Scrollbar and Margins-->
<body bgcolor="cc6666" style="overflow: hidden" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">

<!--Page Table, Contains Everything To Keep From Cutting Off iFrame-->
<table height="100%" width="100%" cellspacing="0" cellpadding="0" border="0">

<!--iFrame Cell-->
<td height="100%">

<!--Main Frame-->
<!--Main frame loads last visited page based on user, unless not logged in then loads welcome page-->

<?php

if(isset($_SESSION['last_visited'])) {
print('<iframe name="frame" src="'.$_SESSION['last_visited'].'" width="100%" height="100%" frameborder="0" style="bgcolor:white;"></iframe>');
}
else {
print('<iframe name="frame" src="site/welcome.php" width="100%" height="100%" frameborder="0"></iframe>');
}
?>

<!--App Frame-->
<!--App frame will be initiated if no user is logged in, or if a user with apps turned on is logged in-->

<?php

if(isset($_SESSION['SESS_APPS'])) {
if($_SESSION['SESS_APPS'] == '1') {
    print('<iframe id="app_frame" src="site/apps.php" width="0%" height="100%" frameborder="0" scrolling="no"></iframe>');
}
}
 else {
print('<iframe id="app_frame" src="site/apps.php" width="0%" height="100%" frameborder="0" scrolling="no"></iframe>');
}
?>

<!--End iFrame Cell-->
</td>

<!--End Page Table-->
</table>
</body>

Надеюсь, это не так уж и плохо, но ошибка определенно возникает в нижней части, где у вас есть два iframes, напечатанных с использованием php. Если я полностью уберу «Фрейм приложения», то страница будет идеальной, как я тестировал в IE, но если она печатает iframe, то по какой-то причине она печатает ее ниже основного фрейма, а не вправо.

Это происходит только в Chrome и Safari, и предполагается, что это должен быть WebKit, поскольку Firefox и IE печатают кадры бок о бок, как и следовало ожидать.

Как я уже понял, html работает на основе слева направо, если только не происходит какой-то разрыв, в котором он падает до следующего ряда.

Единственная причина, по которой я могу думать, что в данном случае это не то, что происходит, заключается в том, что основная ячейка имеет ширину 100%, что означает, что сглаживание справа от нее помещается в строку ниже.

Может кто-нибудь предложить способ, которым я, возможно, могу отразить рендеринг из IE для Chrome и Safari?

ПРИМЕЧАНИЕ: я не думаю, что это имеет какое-либо отношение к странице так далеко внизу, но вся страница представляет собой одну таблицу, разбитую на две строки. верхняя строка представляет собой таблицу, управляющую макетом моего заголовка. Вторая строка - это другая таблица, управляющая макетом фрейма.

Это связано с тем, что он позволяет странице настраиваться в зависимости от разрешения пользователя и, соответственно, размера окна.

1 Ответ

0 голосов
/ 30 декабря 2011

Исправлено это путем деформации каждого iframe в ячейке таблицы с фиксированной шириной на основе ячейки родительской таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...