我只是想听听权威人士关于何时何地应该在LABEL
上使用LITERAL
控件的意见。
据我所知,不同之处在于:可以通过添加的<SPAN>
标记设置LABEL
的样式。
我个人发现在我的超文本标记语言中添加<SPAN>
标签非常烦人,而且从来不会通过ASP实际应用样式,所以LITERAL
似乎是大多数时候应该使用的……但我担心的是,在它上面使用标签还有其他一些我不知道的考虑因素或好处。
如果我们不对LABEL
**s应用样式,用** LITERAL
**s,替换任何样式是100%可以的吗?没有其他考虑因素了吗?**
发布于 2010-07-22 21:41:36
是的,主要区别在于Literal
控件只呈现文本,而Label
控件用<span>
标记将其包围(除非使用AssociatedControlID
属性,在这种情况下,Label
控件将呈现<label>
标记)。
因此,标签可以更容易地设置样式,但如果您只是插入文本,则可以使用字面值。文本控件还有一个方便的属性Mode
,该属性控制文本的呈现方式。您可以对其进行HTML编码,或者不做任何更改地呈现它,或者删除任何“不支持的标记语言元素”。
如果您没有应用任何样式(例如,通过使用Label
的CssClass
属性),则可以用Label
控件替换Literal
控件。
发布于 2010-07-22 21:42:26
当您的代码类似于
<asp:Label EnableViewState="false" ID="Label8" runat="server"
AssociatedControlID="txtEmail">Email Address:</asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
最好使用label
元素,因为它可以正确地将其转换为具有针对文本框的正确for
属性的html元素,这样,如果用户单击标签,它会自动将光标设置在文本字段内。
否则,请使用文字,除非将文本包装在span
中对css样式有好处。
发布于 2014-07-16 09:56:22
为了按原样显示简单文本、格式化文本或HTML文本,我将首先从文本开始,因为它是轻量级的,不会发出额外的SPAN标记。
请参阅this video,它演示了这些额外的标记。
但是我们不能在文字上应用CSS,我们不能在文字上添加像Label1.Attributes.Add这样的属性。任何面向容器的东西都不能实现,因为文本没有用SPAN标签括起来。
看到许多HTML人员默认选择标签来显示文本,而不知道它会生成额外的跨度标记,如果你有很多标签,这可能会让你的ASP.NET变得很重。
https://stackoverflow.com/questions/3309398
复制相似问题