Asp.net 回车会在Internet Explorer 8中产生可视空间
我的html代码中的回车符会在Explorer 8中呈现的html中产生可视空间。我猜这也会影响其他版本 例如:Asp.net 回车会在Internet Explorer 8中产生可视空间,asp.net,internet-explorer,html-rendering,Asp.net,Internet Explorer,Html Rendering,我的html代码中的回车符会在Explorer 8中呈现的html中产生可视空间。我猜这也会影响其他版本 例如: <span> (111) 222- 3333 444444 </span> 第一个括号后应该只有一个空格,破折号后应该没有空格,最后三个括号后应该只有一个空格。我喜欢回车以提高代码的可读性,是否可以在IE中正确呈现html 以下是doctype信息: <!DOCTYPE html PUBLIC "-//W3C//
<span>
(111)
222-
3333
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)%>)
<%=((Model == null || Model.Prefix == null) ? "" : Model.Prefix).PadRight(3)%>-
<%=((Model == null || Model.Suffix == null) ? "" : Model.Suffix).PadRight(4)%>
<%=(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) 222- 3333 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) 222- 3333 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) <!--
-->222-<!--
-->3333 <!--
-->444444<!--
--></span>
(111)222-333344444
虽然这对可读性来说也不是太好。就我个人而言,我不明白什么是不可读的,把它全部放在一行。你可以做:
<span style="white-space:nowrap">(111) 222-3333 444444</span>
(111)222-333344444
如果您觉得
使其无法阅读。换行符是一个空格
如果您真的希望将这些内容放在单独的行中,可以使用HTML注释:
<span><!--
-->(111) <!--
-->222-<!--
-->3333 <!--
-->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一样渲染它