Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 回车会在Internet Explorer 8中产生可视空间_Asp.net_Internet Explorer_Html Rendering - Fatal编程技术网

Asp.net 回车会在Internet Explorer 8中产生可视空间

Asp.net 回车会在Internet Explorer 8中产生可视空间,asp.net,internet-explorer,html-rendering,Asp.net,Internet Explorer,Html Rendering,我的html代码中的回车符会在Explorer 8中呈现的html中产生可视空间。我猜这也会影响其他版本 例如: <span> (111)&nbsp; 222- 3333&nbsp; 444444 </span> 第一个括号后应该只有一个空格,破折号后应该没有空格,最后三个括号后应该只有一个空格。我喜欢回车以提高代码的可读性,是否可以在IE中正确呈现html 以下是doctype信息: <!DOCTYPE html PUBLIC "-//W3C//

我的html代码中的回车符会在Explorer 8中呈现的html中产生可视空间。我猜这也会影响其他版本

例如:

<span>
(111)&nbsp;
222-
3333&nbsp;
444444
</span>
第一个括号后应该只有一个空格,破折号后应该没有空格,最后三个括号后应该只有一个空格。我喜欢回车以提高代码的可读性,是否可以在IE中正确呈现html

以下是doctype信息:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

编辑:

实际上,我是在ASP.NET MVC 2应用程序中执行此操作的,并且aspx模板标记非常详细,这就是我尝试将其分为多行的原因:

<span>
(<%=((Model == null || Model.AreaCode == null) ? "" : Model.AreaCode).PadRight(3)%>)&nbsp;
<%=((Model == null || Model.Prefix == null) ? "" : Model.Prefix).PadRight(3)%>-
<%=((Model == null || Model.Suffix == null) ? "" : Model.Suffix).PadRight(4)%>&nbsp;
<%=(Model == null || Model.Extension == null) ? "" : Model.Extension%>
</span>

() 
-

不仅仅是在IE8中。我用chrome测试过,结果也一样。首先,您需要删除元素本身的空格。实际上,(111)222和33334444之间有两个空格。因此,似乎每次回车都占用了一个空格

<>这完全可以考虑这个HTML…< /P>
<html>
  <head>
  </head>
  <body>
    This is some static text
    with carriage return
    <span>
      (111)&nbsp;222- 3333&nbsp;444444
    </span>
  </body>
</html>

这是一些静态文本
随车返回
(111) 222- 3333 444444
输出将是

这是一些带有回车符(111)222-333344444的静态文本


注意静态文本中文本和with之间的空格。因此,将回车转换为空格似乎是HTML的一般规则。

不仅仅是在IE8中。我用chrome测试过,结果也一样。首先,您需要删除元素本身的空格。实际上,(111)222和33334444之间有两个空格。因此,似乎每次回车都占用了一个空格

<>这完全可以考虑这个HTML…< /P>
<html>
  <head>
  </head>
  <body>
    This is some static text
    with carriage return
    <span>
      (111)&nbsp;222- 3333&nbsp;444444
    </span>
  </body>
</html>

这是一些静态文本
随车返回
(111) 222- 3333 444444
输出将是

这是一些带有回车符(111)222-333344444的静态文本

注意静态文本中文本和with之间的空格。因此,将回车转换为空格似乎是HTML的一般规则

在HTML中,Formfeed字符 (U+000C)在中被视为空白 XHTML

另外(第9点):

空白是根据 请遵守以下规则。以下 字符定义为[XML]白色 空格字符:

空格()水平制表 ()回车( ) 线路馈电( )XML处理器 规范化不同系统的线路端 将代码转换为一个单行馈送 字符,这将传递给 应用程序

用户代理必须使用该定义 从CSS处理空白 字符[CSS2]。请注意,CSS2 这项建议没有明确规定 解决空白问题 在非拉丁字符集中处理。 这将在将来得到解决 CSS的版本,此时 参考资料将会更新

在HTML中,Formfeed字符 (U+000C)在中被视为空白 XHTML

另外(第9点):

空白是根据 请遵守以下规则。以下 字符定义为[XML]白色 空格字符:

空格()水平制表 ()回车( ) 线路馈电( )XML处理器 规范化不同系统的线路端 将代码转换为一个单行馈送 字符,这将传递给 应用程序

用户代理必须使用该定义 从CSS处理空白 字符[CSS2]。请注意,CSS2 这项建议没有明确规定 解决空白问题 在非拉丁字符集中处理。 这将在将来得到解决 CSS的版本,此时 参考资料将会更新

换行符是一个空格

如果您真的希望将这些内容放在单独的行中,可以使用HTML注释:

<span><!--
-->(111)&nbsp;<!--
-->222-<!--
-->3333&nbsp;<!--
-->444444<!--
--></span>
(111)222-333344444
虽然这对可读性来说也不是太好。就我个人而言,我不明白什么是不可读的,把它全部放在一行。你可以做:

<span style="white-space:nowrap">(111) 222-3333 444444</span>
(111)222-333344444
如果您觉得
使其无法阅读。

换行符是一个空格

如果您真的希望将这些内容放在单独的行中,可以使用HTML注释:

<span><!--
-->(111)&nbsp;<!--
-->222-<!--
-->3333&nbsp;<!--
-->444444<!--
--></span>
(111)222-333344444
虽然这对可读性来说也不是太好。就我个人而言,我不明白什么是不可读的,把它全部放在一行。你可以做:

<span style="white-space:nowrap">(111) 222-3333 444444</span>
(111)222-333344444

如果您觉得
使其无法阅读。

这是一个
sprintf
类型函数真正发挥作用的场景。在.NET世界中,这些由
String.Format
处理。下面是代码示例,您可以将代码重写如下:

(111)  222- 3333  444444
<span>
<%= String.Format("({0:###}) {1:###}-{2:####} {3}", Model.AreaCode, Model.Prefix, Model.Suffix, Model.Extension); %>
</span>

我对.NET字符串格式语法有点生疏,因此无法保证该代码段。这里还有一个链接:


这是一个
sprintf
类型函数真正发挥作用的场景。在.NET世界中,这些由
String.Format
处理。下面是代码示例,您可以将代码重写如下:

(111)  222- 3333  444444
<span>
<%= String.Format("({0:###}) {1:###}-{2:####} {3}", Model.AreaCode, Model.Prefix, Model.Suffix, Model.Extension); %>
</span>

我对.NET字符串格式语法有点生疏,因此无法保证该代码段。这里还有一个链接:


你是说效果不同于“(111)222-333344444”?因为回车符应该与空格符相同。@Joe Mabel我以为浏览器不应该渲染空白(回车符在行尾),他们渲染它的方式与渲染空格的方式完全相同。当然,它们会呈现一个空格,否则当我们写文本时,它会一起运行。所以你是说效果不同于“(111)222-333344444”?因为回车符应该与空格符相同。@Joe Mabel我以为浏览器不应该渲染空白(回车符在行的末尾),他们会像渲染spa一样渲染它