html中断效果,关于html:服务器端包含中断布局

我终于完善了我的网页,它在每种浏览器中都可以完美运行。

但是,当我将页眉和页脚内容抽象到服务器端include中时,在Firefox / Opera / Safari中布局略有更改,但是在IE中,布局更改使页面看起来很破损。

使用SSI时,是否存在任何可能导致布局更改的已知问题? 坦率地说,我很惊讶使用SSI会产生这样的效果。 我正在使用HTML5标签,modernizr js库,并且该页面会验证其中是否有任何问题。

编辑:我通过更改抽象的代码解决了我的问题(我比以前简单地抽象了一个父标记)。 但是,我仍然很想确切地知道为什么此错误首先发生。 那里有人可以揭露特别是什么会引起这种情况吗?

它不应该更改任何内容,因为includes是在服务器端处理的,返回给浏览器的所有内容都是HTML。 最有可能解决该问题的方法是抽象。 也许您缺少结束标记或其他东西? 我认为这是最可能的答案。

正如Jamie所说,SSI应该没有作用。 客户应该不知道网页是由乐高玩具制成的,而不是一个大砖头。 您可能在某个地方犯了一个错误。

很有可能不是引起任何问题的SSI。

HTML代码中很可能存在换行符,导致IE插入多余的空格,从而导致布局中断。

另外,在将片段移动到包含文件时,请确保正确分离了代码。通过验证程序运行HTML可能是最简单的检查方法。

分离代码就好了。 除了将html代码粘贴和粘贴到适当的SSI中之外,我没有添加或更改任何其他内容。 因此,如果我不添加任何内容,多余的空间从何而来?

capdragon涵盖了我所说的IE可能会添加多余空间的内容。 IE特别挑剔地在在源代码中跨越多行的标记末尾添加额外的空间。 那很可能是您的问题。

UTF-8可能是文件编码问题,在包含文件的开头插入了BOM字符。我的解决方案是将包含文件另存为UTF-8,而没有BOM表签名。

我注意到body标记显示了额外的空间之后才包含了include语句,但是在include语句周围添加(any?)html标签会将其隐藏。我猜想浏览器会在字符"进入"正文而不是开始时忽略它们。

我的特殊情况涉及Visual Studio,但其中混合了各种编辑器。也可以看看

使用PHP include时如何避免空格?

强制Visual Studio(2010)将所有文件保存为UTF-8

不带BOM的UTF-8

问题最终成为服务器解析HTML和HTML5标签的错误。无论出于何种原因,当我向SSI添加一个额外的标签集时,它都可以工作。

我的原始包含如下所示:

包含的文件为:

  • Home

  • Products

  • About

  • Contact

但是,当我从包含中取出所有HTML5标签时,如下所示,一切正常。我不确定这是否是旧版本的apache或其他问题,但是这样做可以解决所有问题。

我有一个类似的问题,并解决如下。

我有这样的事情:

并将其更改为:

我在HTML中以及在SSI中再次修剪了空格,但是并没有解决问题。

好的,虽然值得一试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值