Sni*_*fer 8 html html5 semantic-markup error-messaging
对于确认,错误和警告消息,人们对语义HTML的看法是什么?
目前我有一些简单的东西:
<div class="message message-warning">
<h3>Message Title</h3>
<p>Message text</p>
</div>
Run Code Online (Sandbox Code Playgroud)
由此message-warning类得到由取代message-confirmation或者message-error如果该消息是不同的类型.
是否有更多语义方式来标记它?
jol*_*olt 11
我可以建议<figure>吗?
摘自HTML5 Doctor(以及他们,来自W3C):
图元素表示内容单元,可选地带有标题,是自包含的,通常从文档的主流中引用为单个单元,并且可以远离文档的主流而没有影响文件的含义.
让我们先回答问题:
是的,它<figure>非常适合.
而且,<figcaption>对标题栏/标题特别有用.
所以,我<figure>甚至没有试图进一步观察:
<figure id="dialog-box" class="warning">
<figcaption>Message Title</figcaption>
<p>Message text</p>
</figure>
Run Code Online (Sandbox Code Playgroud)
新的答案:使用的<dialog>元素,并调用.show()而不是.showModal(),或给它的open,如果渲染服务器端属性.
只要它没有以模态显示,它就不会阻止与其他页面内容的交互.
旧答案(以前<dialog>是一件事):
警报是ARIA添加到HTML中的语义之一,因为在"纯"HTML中没有直接的方法.因此:
<aside role="alert">
<h2>Message Title<h2>
<p>Message Text</p>
</aside>
Run Code Online (Sandbox Code Playgroud)
我个人喜欢使用它<aside>作为打击role它的元素- 它在技术上不是页面内容的一部分,正如Jeff Lindblom的回答所描述的那样.
拥有一个"语义"CSS选择器很容易:
[role="alert"] {
font-size: 2em; /* or what have you */
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这个<figure>想法很有趣,但我认为它不适合这里。它缺少的是证明使用标签合理的实际内容。根据规范,<figure>表示“内容单位”-表示图像,图表,代码块等,可以选择对此内容加上标题(<figcaption>)。可以说在之外的消息<figcaption>代表内容的适当单位。
<h#>在这种情况下,我们还应谨慎使用标签,因为该消息是次要内容,并且可能不属于文档大纲。
在修订后的规范下,人们可能会争辩说一个<aside>适当的选择。现在在之外使用时,它被视为“切向内容” <article>。
<strong>因为它是消息中语义上更重要的部分,而不是文档标题,所以它适用于消息的“标题”。因此,代码可能看起来像这样:
<aside class="warning-or-whatever">
<strong>Message Title</strong>
<p>Message Text</p>
</aside>
Run Code Online (Sandbox Code Playgroud)
可能还会有人争辩,因为没有专门为此功能创建的东西,所以最好的老式的,语义上毫无意义<div>的元素可能是最好的元素。我想这取决于您对邮件的感觉如何。
谢谢杰夫
不。HTML 中没有任何元素表示确认、错误或警告消息。
\n\n从技术上讲,该samp元素在 HTML 4.01 和 HTML 3.2 中被定义为 \xe2\x80\x9csample 输出,来自程序、脚本等。 \xe2\x80\x9d 在 HTML 4.01 和 HTML 3.2 中,尽管最初在 HTML 2.0 中为 \xe2\x80\x9c 文字序列字符,通常以等宽字体\xe2\x80\x9d 呈现,并在 HTML5 中重新定义为 \xe2\x80\x9c(sample),从程序或计算系统\xe2\x80\x9d 输出。所以它的含义相当模糊,而且它\xe2\x80\x99s用得不多,所以使用它没有真正的意义。samp但有人可能会争论,对来自程序的任何消息使用标记是可以接受的。它是一个文本级元素,因此您需要在h3(any) 内部和内部 (any)单独使用它p,或多或少会破坏结构。
也可以说这些消息是来自外部来源的引用,因此它们可以包含在blockquote.
与其他一些标记的使用h3实际上并不是一个语义问题,而是一个结构问题:这是第三层嵌套的某些内容的标题吗?