2014-06-07 4 views
0

У меня есть страница с некоторым содержимым, снесенным из базы данных в теле, в голове у меня есть внешняя таблица стилей, связанная с форматированием этого содержимого. В Safari (похоже, это не происходит в Chrome или Firefox), я получаю прекрасную вспышку неравномерного контента.Flash of nonlyled content

Я бы предпочел, чтобы для этого было исправление, отличное от javascript, есть ли способ разместить ссылку на внешнюю ссылку css, чтобы он был применен до того, как скрипт php запускается в теле? - Я бы предположил, что быть наверху, это будет делать это автоматически, но, по-видимому, не в сафари, какие-либо идеи?

<?php 
require_once "../config/article_functions.php"; 
include "../widgets/topborder.html"; 
include "../widgets/banner.php"; 
include "../widgets/navbar.html"; 
?> 

<!DOCTYPE html> 
<html> 
<head> 

<link rel="stylesheet" type="text/css" href="http://example.org/widgets/article.css"> 

<style type="text/css"> 
a:link {color: inherit;}  /* unvisited link */ 
a:visited {color: inherit;} /* visited link */ 
a:hover {color: inherit;} /* mouse over link */ 
a:active {color: inherit;} /* selected link */ 

body, html { 
    margin: 0; 
    padding: 0; 
    height:900px; 
} 

#container { 
    width:990px; 
    height:1000px; 
    margin-left:auto; 
    margin-right:auto; 
} 

#news_container { 
    width:740px; 
} 

</style> 
<title> TODO </title> 

</head> 
<body> 
<div id="container"> 
    <?php include "../widgets/sidepanel.html"; ?> 
    <div id = "news_container"> 
     <?php 
      $uri = explode('/', $_GET['$url']); 
      get_selected_news($uri[0]); 
     ?> 
    </div> 
</div> 
</body> 
</html> 

Для второго или так я вижу это:

enter image description here

Тогда потом: enter image description here

+1

Это не должно быть проблемой в любом браузере, PHP выполняется на сервере, и если вы не используете ajax, он присутствует, когда страница загружается в браузере, и стили должны применяться немедленно. – adeneo

+0

@adeneo - http://en.wikipedia.org/wiki/Flash_of_unstyled_content - Это не должно быть, но это так, я определенно вижу незакрепленное содержимое на экране b4 применяется css – Crizly

+1

Я знаю, что такое fouc, и нет быстрого исправления javascript для этой проблемы, и он не имеет ничего общего с PHP, проблема, как правило, такая же, как разработчик, и Safari, как известно, имеет проблемы при доступе к определенным свойствам окна перед загрузкой таблиц стилей и т. д., поэтому вы, вероятно, загружаете скрипты перед стилями или делаете что-то еще, что вызывает проблему, и единственный способ исправить это - разрешить все, что вы сделали неправильно, а не добавлять больше кода. – adeneo

ответ

3
<?php 
include "../widgets/topborder.html"; 
include "../widgets/navbar.html"; 
?> 

<!DOCTYPE html> 
<html> 
<head> 
… 

Плохой мальчик! Неудивительно, что Safari запутался, когда он получил HTML до объявления doctype. Может быть, он даже получает закрывающий тег </html>, прежде чем он увидит вашу таблицу стилей?

Смежные вопросы