xhtml 相关问题

XHTML,可扩展超文本标记语言,是HTML的一个应用程序,它也是一个有效的XML文档,而不是基于SGML的标准HTML。它是一种常用于HTML页面的标记语言,它是使用基于XML的工具生成的。不要将此标记用于Facelets。请改用[facelets]。

为什么在 HTML 中创建表格时会发生这种情况?

我编写了一个 XML 代码来创建表。但是,问题是每当我从特定块中删除嵌套标记时,表行就会交替。 源代码 我编写了一个 XML 代码来创建表。但是,问题是每当我从特定块中删除嵌套标记时,表行就会交替。 源代码 <?xml version="1.0" encoding="UTF-8"> <!DOCTYPE html PUBLIC "~//W3C//DTD XHTML 1.1/EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd"> <head> <title>Test</title> </head> <body> <table style="border-collapse=collapse" border="2"> <tr><td rowspan="20"><b>Department</b></td></tr> <tr><tr><td rowspan="5">Sem1</td></tr> <tr><td>sub1</td></tr> <tr><td>sub2</td></tr> <tr><td>sub3</td></tr></tr> <tr><tr><td rowspan="5">Sem2</td></tr> <tr><td>sub4</td></tr> <tr><td>sub5</td></tr> <tr><td>sub6</td></tr></tr> <tr><tr><td rowspan="5">Sem3</td></tr> <tr><td>sub7</td></tr> <tr><td>sub8</td></tr> <tr><td>sub9</td></tr></tr> </table> </body> 有什么解决办法吗? 输出 但是当我删除了外面的那个,其中包含 4 行代码。 <--!tr tag removed--> <tr><td rowspan="5">Sem2</td></tr> <tr><td>sub4</td></tr> <tr><td>sub5</td></tr> <tr><td>sub6</td></tr> <--!tr tag removed--> 输出是这样的 忽略注释中已解决的 XHTML 问题,您可能需要如下所示的 HTML 代码: <!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <table> <tr><td rowspan="20"><b>Department</b></td></tr> <tr><td rowspan="3">Sem1</td><td>sub1</td></tr> <tr><td>sub2</td></tr> <tr><td>sub3</td></tr> <tr><td rowspan="3">Sem2</td><td>sub4</td></tr> <tr><td>sub5</td></tr> <tr><td>sub6</td></tr> <tr><td rowspan="3">Sem3</td><td>sub7</td></tr> <tr><td>sub8</td></tr> <tr><td>sub9</td></tr> </table> </body> </html> 您使用 rowspan=5 观察到的效果是,当 HTML 解析器遇到紧接着另一个 <tr> 标记的 <tr> 标记时,会在第二个 </tr> 开始之前推断出 <tr> 结束元素标记 -元素标记,因此空表行计入 rowspan 值。 要了解 HTML 解析器的这种行为(最初源自 SGML 结束标记推断)的工作原理,请考虑上面省略了 </tr> 元素的更正 HTML 代码: <!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <table> <tr><td rowspan="20"><b>Department</b></td> <tr><td rowspan="3">Sem1</td><td>sub1</td> <tr><td>sub2</td> <tr><td>sub3</td> <tr><td rowspan="3">Sem2</td><td>sub4</td> <tr><td>sub5</td> <tr><td>sub6</td> <tr><td rowspan="3">Sem3</td><td>sub7</td> <tr><td>sub8</td> <tr><td>sub9</td> </table> </body> </html> 根据 HTML 规范,后者等同于前者 如果 tr 元素后面紧跟着另一个 tr 元素,或者父元素中没有更多内容,则可以省略 tr 元素的结束标记。 事实上,SGML 解析器可以推断出这些(假设 <DOCTYPE html> 更改为 <!DOCTYPE html "about:legacy"> 来告诉 SGML HTML 解析规则,如示例中所述。https://sgmljs.net/docs/parsing-html-tutorial /parsing-html-tutorial.html;实际上,甚至 </td> 结束元素都可以省略;然而,这并没有在 about:legacy-compat 的内置 sgmlproc HTML 迷你 DTD 中实现,所以需要使用完整的 HTML DTD)。 现在我很乐意将您发送到 W3C 的 nu HTML 5 验证器来检查您的 HTML,但其结果令人困惑(我们自己检查一下),似乎推断出额外的 tbody 开始元素标记,这不是由 table 元素的内容模型规范支持: 按此顺序:可选的一个 title 元素,后跟零个或多个 colgroup 元素,可选地后跟一个 thead 元素,后跟零个或多个 tbody 元素或一个或多个 tr 元素,后跟可选的 tfoot 元素,可选地与一个或多个脚本支持元素。 意味着tbody是可选并且不是被推断为围绕tr元素的包装,即使它的开始和结束元素可以被省略。后者是在 HTML5x 以及较新的 2020 和 2023 HTML 审查草案 DTD 中实现解析规则的方式,网址为 https://sgmljs.net/docs/html5.html。 HTML 5 DTD 参考中也简要讨论了这种歧义。 请参阅 Alohci 关于 nu 验证器对 tbody 元素的推断的评论。 另请参阅 WHATWG 的 HTML 规范,了解引用的引文。

回答 1 投票 0

如何为所有 HTML 表单字段添加 onChange 函数

我的 HTML 页面有 10 个文本字段。 目前,所有十个字段都没有可用的 onChange EVENT。 <...

回答 6 投票 0

HTML 中的欧元符号

欧元 (€) 是欧洲 22 个国家的官方货币。 在 HTML 中,显示 € 符号有不同的可能性: 欧元 欧元 欧元 您会在 HTML 中使用哪一个?我

回答 6 投票 0

如何更改列表中第一个元素之前和最后一个元素之后的间距

我正在为一本 EPUB 图书创建索引。我创建了包含子条目的条目,如下所示: 煤炭 无烟煤 烟煤 褐煤 进口 储备 接缝...

回答 1 投票 0

需要关闭HTML中的meta和link标签吗?

我刚刚读了某人的 HTML,他从未关闭 HTML head 部分中的元和链接标记。代码运行良好;关闭这些标签是可选的吗? 我认为如果标签是...

回答 4 投票 0

哪些<meta>标签有用,哪些没有?

X/HTML 中总共有多少个 标签可用,哪些应该使用,哪些不应该使用? 请参阅此工具http://www.ulhas.net/tools/tu-metagen 有没有专业人士可以使用其他所有其他元标签...

回答 3 投票 0

XSLT 匹配 xhtml 命名空间

美好的一天, 我正在尝试使用以下命令行将 html 文件生成的 xhtml 文件中的“head”元素与 HTML tidy 标记校正器进行匹配: tidy -asxml -输出 test_tidy.html --numeric-

回答 1 投票 0

为什么我在 javaee 中收到“找不到方法”错误?

我目前正在学习 JSF,使用 JavaEE,所以我将不胜感激任何可能的帮助。我有一段代码,当我尝试访问(通过 JSF 数据表,使用命令按钮)时,它给了我

回答 1 投票 0

将选择框选项值设置为对象的代码

在我得到的html页面中,我有一个像这样带有值的选择框。 a 在我得到的 html 页面中,我有一个像这样带有值的选择框。 <select onChange="return filler(this.value);"> <option value="{'name':'rajiv',age:'40'}">a</option> <option value="{'name':'mithun',age:'22'}">f</option> </select> 我想传递一个 JavaScript 数组或对象作为选项值。 现在它将选项值视为字符串。 我希望它是一个数组,以便我可以通过访问它 填充函数中的this.value.name,this.value.age。 这可能吗? 您将无法在 value 属性中存储对象/数组,但是可以选择使用 data-* 属性,它通过 jQuery 1.4.3+ 自动支持 json <select> <option data-value='{"name":"rajiv","age":"40"}'>a</option> <option data-value='{"name":"mithun","age":"22"}'>f</option> </select> 并使用.change() $("select").change(function(){ alert($(this).find(":selected").data("value").age); }); jsfiddle 上的示例 不,不只是这样。值必须是字符串。我强烈建议使用 jQuerys .data() 方法来将 Arrays 或 Objects 保存在 Expando 属性中。 如果它必须在值中,你只需要 JSON 解码(.parse)它: var myValue = JSON.parse(this.value); myValue.age; // 40 myValue.name // rajiv 但是,我再次认为这不是一个好的解决方案。看看 http://api.jquery.com/jQuery.data/ 此外,如果您将 JSON 字符串放入任何 data- HTML5 属性中,jQuery 将自动转换数组和对象。例如: <option value="A" data-info="{'name':'rajiv',age:'40'}">something</option> 如果您现在使用 jQuery 访问该节点,我们会自动在其数据展开中获取该对象 $('option').data('info').name; // === rajiv 使用时可以使用parseJSON将字符串转换为对象,但值需要是字符串。 var option = $('select').val(); var selected = $.parseJSON(option); alert( selected.name + ': ' + selected.age ); 反应溶液 const myObjects = [ { text: 'a', value: 1 }, { text: 'b', value: 2 }, ]; const handleSelectChange = (myStringifyObject) => { const myObject = JSON.parse(myStringifyObject); // logic with myObject } <input type='select' onChange={(evt) => handleSelectChange(evt.target.value)}> {myObjects.map((myObject) => ( <option value={JSON.stringify(myObject)} key={myObject.value} > {myObject.text} </option> ))} </input> 这个例子=> 角度选择-比较

回答 0 投票 0

如何使用 devtools 或 JavaScript 片段判断加载的页面是否是真正的 XML 处理的 XHTML

检查远程服务器连接失败时显示的 Firefox 系统页面,可以清楚地看到这是一个真正的 application/xhtml+xml 页面: 有明确的 xmlns="http://www.w3.org/...

回答 1 投票 0

将输入框焦点放在加载上

如何在页面加载时光标聚焦在特定输入框上? 是否也可以保留初始文本值并将光标放在输入末尾? 如何在页面加载时光标聚焦到特定输入框? 是否可以保留初始文本值并将光标置于输入末尾? <input type="text" size="25" id="myinputbox" class="input-text" name="input2" value = "initial text" /> 您的问题分为两部分。 1)如何在页面加载时集中输入? 您只需将 autofocus 属性添加到输入即可。 <input id="myinputbox" type="text" autofocus> 但是,这可能并非所有浏览器都支持,因此我们可以使用 javascript。 window.onload = function() { var input = document.getElementById("myinputbox").focus(); } 2)如何将光标置于输入文本的末尾? 这是一个非 jQuery 解决方案,其中包含一些从 另一个 SO 答案 借来的代码。 function placeCursorAtEnd() { if (this.setSelectionRange) { // Double the length because Opera is inconsistent about // whether a carriage return is one character or two. var len = this.value.length * 2; this.setSelectionRange(len, len); } else { // This might work for browsers without setSelectionRange support. this.value = this.value; } if (this.nodeName === "TEXTAREA") { // This will scroll a textarea to the bottom if needed this.scrollTop = 999999; } }; window.onload = function() { var input = document.getElementById("myinputbox"); if (obj.addEventListener) { obj.addEventListener("focus", placeCursorAtEnd, false); } else if (obj.attachEvent) { obj.attachEvent('onfocus', placeCursorAtEnd); } input.focus(); } 这是我如何使用 jQuery 完成此任务的示例。 <input type="text" autofocus> <script> $(function() { $("[autofocus]").on("focus", function() { if (this.setSelectionRange) { var len = this.value.length * 2; this.setSelectionRange(len, len); } else { this.value = this.value; } this.scrollTop = 999999; }).focus(); }); </script> 请注意 - 对于支持它的浏览器,您现在可以使用 HTML5 执行此操作,无需使用 JavaScript: <input type="text" autofocus> 您可能想从此开始并使用 JavaScript 进行构建,为旧版浏览器提供后备。 $(document).ready(function() { $('#id').focus(); }); function focusOnMyInputBox(){ document.getElementById("myinputbox").focus(); } <body onLoad="focusOnMyInputBox();"> <input type="text" size="25" id="myinputbox" class="input-text" name="input2" onfocus="this.value = this.value;" value = "initial text"> 执行此操作的一种可移植方法是使用自定义函数(处理浏览器差异),例如 this one。 然后在 onload 标签末尾为 <body> 设置处理程序,如 jessegavin 所写: window.onload = function() { document.getElementById("myinputbox").focus(); } 非常简单的一行解决方案: <body onLoad="document.getElementById('myinputbox').focus();"> 工作正常... window.onload = function() { var input = document.getElementById("myinputbox").focus(); } 尝试: 纯Javascript: [elem][n].style.visibility='visible'; [elem][n].focus(); Jquery: [elem].filter(':visible').focus(); 这对我来说效果很好: <form name="f" action="/search"> <input name="q" onfocus="fff=1" /> </form> fff 将是一个全局变量,其名称完全无关,其目的是停止通用 onload 事件以强制将焦点放在该输入上。 <body onload="if(!this.fff)document.f.q.focus();"> <!-- ... the rest of the page ... --> </body> 来自:http://webreflection.blogspot.com.br/2009/06/inputfocus-something-really-annoying.html 如果由于某种原因无法添加到 BODY 标签,您可以在表单之后添加: <SCRIPT type="text/javascript"> document.yourFormName.yourFieldName.focus(); </SCRIPT> 将其添加到 js 的顶部 var input = $('#myinputbox'); input.focus(); 或转为 html <script> var input = $('#myinputbox'); input.focus(); </script> 就做吧! window.onload = function() { setTimeout(function () { document.getElementById("input-box-id").focus(); document.getElementById("input-box-id").click(); }, 1000); }

回答 12 投票 0

为什么我的 ASP.NET MVC HTML 帮助程序输出无效的 XHTML 复选框?

由于某种原因,HTML 帮助程序正在输出此无法验证的 HTML。 验证器告诉我: 没有属性“长度” <%= Html.CheckBox("Medicamentos", Model.

回答 1 投票 0

div 包装器“语义”HTML 内的标头内是否有 Span?

我在线阅读了有关语义 HTML 的内容... 语义 HTML 意味着使用 HTML 标签来表达其隐含含义,而不是仅仅使用(无意义的)div 和 span 标签来表达所有内容。 如果你使用<...

回答 5 投票 0


将文本文件中的值传递到 html 段落中

我有一个从另一个 JavaScript 动态填充的文本文件。由于要求/捆绑问题和许多其他问题,我只是将结果写入文本文件。 我现在想显示

回答 1 投票 0

W3C 验证器给出 XHTML 的“文档类型不允许元素在此处“输入”...”错误

我在使用 W3C 验证器验证我的页面时遇到此错误。 来源: 可以一些...

回答 1 投票 0

尝试使用 XSLT 设置 HTML 颜色属性的样式

任何熟悉 XML 和 XSLT 的人: 在我的 XMLl 中,我尝试使用下面的 XSLT 为具有不同属性的两个不同的“p”标签着色: &l...

回答 1 投票 0

如何使 jQuery Mobile 属性 XHTML 有效

我不久前开始使用 jQuery Mobile,了解 jQuery Mobile 的人都知道,它使用自己的 HTML 属性来为项目赋予预定义的角色。主要是div。 一些例子: 我不久前开始使用 jQuery Mobile,了解 jQuery Mobile 的人都知道,它使用自己的 HTML 属性来为项目提供预定义的角色。主要是div。 一些例子: <div data-role="page" id="trackPage"> <div data-role="header"> ... </div><!-- /header --> <div data-role="content" id="content_init"> <form action="DoTrack" method="post" id="track_form" data-ajax="false"> <div data-role="fieldcontain" id="div_trackselect"> <fieldset data-role="controlgroup" data-type="horizontal"> .... </fieldset> </div> </form> ... </div> ... </div> 如您所见,添加了许多 jQuery 属性,例如 data-role data-type data-ajax data-transition data-iconpos ... 现在,我更喜欢使用 XHTML 严格语法,但是在验证时出现了这些错误:http://cl.ly/400Q080G3X2V3j3x2S00 我也尝试了 XHTML Transitional,但它给出了相同的错误。 我尝试通过谷歌搜索找到解决方案,但找不到。我认为要解决这个问题,所有 jQuery Mobile 属性都应该存在一个 DTD,对吗? 还有其他方法可以解决这个问题吗? jQuery Mobile 主页明确指出: 一个统一的、基于 HTML5 的用户界面系统,适用于所有流行的移动设备平台... 因此,您应该使用 HTML5 文档类型。如果这对您很重要,这将确保您的页面有效。 <!DOCTYPE html> 不要忘记,如果您使用 HTML5 文档类型,您仍然可以使用 XHTML 样式语法。我想大多数人都是这样。 顺便说一句,jQuery Mobile 并没有创建自己的属性 - 它们不完全是“jQuery Mobile”属性 - data-* 属性系统 是 HTML5 的一部分,其存在是为了让您可以将任意数据附加到 DOM 节点。

回答 1 投票 0

网站设计中的迷你维基?

我正在设计一个网站,并将实现一种“Wiki”。我不是在写脚本,什么都不是,它将是纯 XHTML 和 CSS。 我想从 StackOverf 知道什么...

回答 2 投票 0

文本区域内的线条着色

有没有办法让textarea显示彩色线条?我想要实现的是每隔一行都着色,即白色,灰色,白色,灰色,白色,灰色......以获得更好的可读性。用户支持...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.