【问题标题】:My website displays perfectly in all browsers but IE any suggestions?我的网站在所有浏览器中都能完美显示,但 IE 有什么建议吗?
【发布时间】:2013-07-21 21:48:42
【问题描述】:

我已经使用 wordpress 建立了一个网站,该网站在除 IE 之外的所有浏览器中都能正常显示(惊喜)。我目前正在使用 VirtualBox 来尝试对其进行整理,但页面非常无聊,我什至不知道从哪里开始。

运行验证器会出现以下错误:

第 2 行,第 91 列:“LANG”不是保留名称 …ttp://www.w3.org/TR/html4/strict.dtd" lang="en-US" xmlns:og="http://ogp.me/ns#…

错误第 2 行,第 91 列:由于先前的错误而无法继续 …ttp://www.w3.org/TR/html4/strict.dtd" lang="en-US" xmlns:og="http://ogp.me/ns#…

以下是网站主题编辑器中的相关代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" <?php language_attributes(); ?>>

由于问题的怪异,我什至不确定这是否是真正的问题。为什么微软讨厌我们?!

--- 编辑 --- 我没有提到www.SleepHug.com的网址

这是完整的标头代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">
    <title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
    <meta http-equiv="content-type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

    <link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_url'); ?>" />

    <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>

    <?php wp_head(); ?>

    <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url'); ?>" title="<?php printf( __( '%s latest posts', '' ), wp_specialchars( get_bloginfo('name'), 1 ) ); ?>" />
    <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url') ?>" title="<?php printf( __( '%s latest comments', '' ), wp_specialchars( get_bloginfo('name'), 1 ) ); ?>" />
    <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

<!-- Place this snippet wherever appropriate -->
<script type="text/javascript">
  (function() {
    var li = document.createElement('script'); li.type = 'text/javascript'; li.async = true;
    li.src = ('https:' == document.location.protocol ? 'https:' : 'http:') + '//platform.stumbleupon.com/1/widgets.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(li, s);
  })();
</script>

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<script type="text/javascript">
(function() {
var s = document.createElement('SCRIPT'), s1 = document.getElementsByTagName('SCRIPT')[0];
s.type = 'text/javascript';
s.async = true;
s.src = 'http://widgets.digg.com/buttons.js';
s1.parentNode.insertBefore(s, s1);
})();
</script>

<script src="//svpply.com/api/all.js#xsvml=1" type="text/javascript" ></script>


</head>

【问题讨论】:

  • 我认为您应该发布更多代码。文档类型并没有给我们那么多。
  • @DaveChen 抱歉,我已经添加了更多代码和网站链接。

标签: internet-explorer validation internet-explorer-8 web cross-browser


【解决方案1】:

您的网站完全缺少 html 标记:

<!DOCTYPE html>
<html>
...
</html>

此外,您的 DOCTYPE 上方有一个空行,这会触发 Internet Explorer 中的“怪癖模式”。

更多信息在这里:http://en.wikipedia.org/wiki/Quirks_mode 和这里:http://www.quirksmode.org/css/quirksmode.html

更新:

改变这个:

<?php
/**
 * @package WordPress
 * @subpackage SleepHug
 */
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">

到这里:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">

事实上,除非你特别需要 HTML 4.01,否则你甚至可以这样做:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>

不要忘记在您的 footer.php 文件中添加结束 &lt;/html&gt;

【讨论】:

  • 当我在 chrome 和 firefox 中使用检查元素时,html 标签正确显示在适当的位置。如果我没记错的话,我相信 Wordpress 会自动插入。我没有在文档类型上方看到空白行。 &lt;?php /** * @package WordPress * @subpackage SleepHug */ ?&gt; &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" &lt;?php language_attributes(); ?&gt;&gt;
  • 需要查看实际源码。在地址栏中试试这个: view-source:sleephug.com 如果问题出在 Internet Explorer 上,那么 Firefox 和 Chrome 是否正确显示并不重要。不同的浏览器有不同程度的宽恕。
  • gist.github.com/anonymous/3a04a020c085771706c9 这就是代码在我的标题主题中的格式。我没有在我知道的文档类型上方留下任何空白行。
  • 您仍然缺少包装“html”标签。例如:
  • 你也可以去掉 header.php 文件顶部的包声明注释。这就是导致空行的原因。您应该确保查看您的代码呈现的内容。把这个拉出来,你不需要它:
猜你喜欢
  • 2019-04-01
  • 1970-01-01
  • 2013-08-31
  • 2012-07-28
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多