为什么可以';我看不到HTML5<;对话框>;?

为什么可以';我看不到HTML5<;对话框>;?,html,jsf,facelets,Html,Jsf,Facelets,这是我的Facelets文件: <!DOCTYPE html> <html lang="en" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Simple JSF Facelets page</title> </h:head> <h:body

这是我的Facelets文件:

<!DOCTYPE html>
<html lang="en"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">

<h:head>
    <title>Simple JSF Facelets page</title>
</h:head>

<h:body>
    Place your content here!
    <dialog>
        <dt>Sam</dt>
        <dd>Knock, Knock.</dd>
        <dt>Eric</dt>
        <dd>Who's there?</dd>
        <dt>Sam</dt>
        <dd>Justin.</dd>
        <dt>Eric</dt>
        <dd>Justin who?</dd>
        <dt>Sam</dt>
        <dd>Justin time for dinner!</dd>
    </dialog>
</h:body>
</html>

简单JSF Facelets页面
把你的内容放在这里!
山姆
敲门,敲门。
埃里克
谁在那儿?
山姆
贾斯廷。
埃里克
贾斯汀是谁?
山姆
贾斯汀该吃晚饭了!
我在浏览器中看到的只是

把你的内容放在这里

当我检查此文件的源代码时,我在chrome中看到:

<!DOCTYPE html>
<html lang="en"><head>
    <title>Simple JSF Facelets page</title></head><body>
Place your content here!
<dialog>
    <dt>Sam</dt>
    <dd>Knock, Knock.</dd>
    <dt>Eric</dt>
    <dd>Who's there?</dd>
    <dt>Sam</dt>
    <dd>Justin.</dd>
    <dt>Eric</dt>
    <dd>Justin who?</dd>
    <dt>Sam</dt>
    <dd>Justin time for dinner!</dd>
</dialog>
<ul id="javax_faces_developmentstage_messages" title="Project Stage[Development]: Unhandled Messages"></ul></body>
</html>

简单JSF Facelets页面
把你的内容放在这里!
山姆
敲门,敲门。
埃里克
谁在那儿?
山姆
贾斯廷。
埃里克
贾斯汀是谁?
山姆
贾斯汀该吃晚饭了!

    那么,从源代码来看,它应该是一个有效的html5文件?但目前,我看不到对话框标签中应该包含的内容

    我以前从未使用过
    对话框
    选项卡,但在检查了Chrome内置的DOM和样式之后,似乎默认情况下元素设置为
    显示:无

    dialog:not([open]){ display: none; }
    
    dialog:not([open]){ display: none; }
    
    因此,要在页面上显示它,您需要设置样式

    dialog{ display: block; }
    
    更新

    此外,您还可以使用
    对话框
    元素上的
    打开
    属性

    <dialog open>....</dialog>
    
    <dialog open>....</dialog>
    
    。。。。
    
    使用
    对话框
    元素上的
    打开
    属性

    <dialog open>....</dialog>
    
    <dialog open>....</dialog>
    
    另外请注意,目前并非所有浏览器都提供此功能。例如,它需要铬合金chrome://flags/#enable-要启用的实验性web平台功能


    (这是经过大量编辑的Tim B James answer版本)。

    您使用的浏览器是什么?@TimBJames Chrome,最新版本。我还将这个源代码复制到了一个.html文件中,并打开了它,但仍然没有区别。我可以在线看到HTML5的内容。似乎
    h:body
    没有呈现,因为中没有
    标记HTML@amphibient就在几年前,HTML5中曾经定义了
    元素。最近,它被定义为“dialog元素表示用户与之交互以执行任务的应用程序的一部分,例如对话框、检查器或窗口”。因此,您不应该使用它以当前的方式标记聊天。回答得很好,谢谢。成功了。但是,当我尝试时,我得到了以下错误:error Parsing/index.xhtml:error tracked[line:13]与元素类型“dialog”关联的属性名称“open”必须后跟“=”字符。此外,对话框{display:block;}不起作用。我需要给它分配一个类,然后对该类应用样式。对不起,错误信息。对话框{display:block;}工作,只有IntelliJ对此进行投诉。浏览器很好用。是的,你也可以通过类添加
    显示
    样式。或者我假设它是
    open=“open”
    对话框元素被记录在-1中,因为它没有解释标记的含义,并且在“正确”的解决方案之前给出了一个糟糕的解决方案。