我一直无法找到自定义标签在HTML5中是否有效的明确答案,如下所示:
<greeting>Hello!</greeting>
Run Code Online (Sandbox Code Playgroud)
我没有在规范中找到任何方式:
http://dev.w3.org/html5/spec/single-page.html
并且自定义标签似乎不会使用W3C验证器进行验证.
使用类似的东西document.getElementByTagName,你几乎可以创建自己的元素.
<arial>Hello</arial>
Run Code Online (Sandbox Code Playgroud)
然后在JS ..
var a = document.getElementsByTagName("arial");
for(i = 0; i < a.length; ++i)
a[i].style.fontFamily = "Arial"
Run Code Online (Sandbox Code Playgroud)
我们有一个自定义元素,容易peasy.
我的问题归结为,这是一种不好的做法吗?有没有我不注意的缺点?
据我所知,在HTML5中组成标签名称是完全合法的,并且它们可以像CSS样式和嵌套一样正常工作.
当然,我的任意标签名称对浏览器没有任何影响,浏览器不理解它们,但它使我的代码更具可读性,这使得它更容易维护.
那么我为什么不在页面上使用任意标签名称?它会影响SEO吗?会破坏什么吗?
重要编辑:与http://ejohn.org/blog/html5-shiv/一起使用时,较旧的浏览器不会窒息不受支持的标签
如何在HTML或HTML5中创建自己的html标签,这样我就可以创建自己的html标签和css库
<mymenu> ul li or some text </mymenu>
<heading> Yeah My Own Heading</heading>
Run Code Online (Sandbox Code Playgroud)
是他们这样做的方法吗?如果是的,请告诉我我是多么好奇.并告诉我在制作个性化标签后我应该遇到什么问题(如果你知道的话).
我在我的代码 ( <include>) 中使用了自定义 HTML 标记。这是不好的做法,如果是的话,应该用什么代替。
在我看来,它通过在标签名称而不是<div class="include">.
我已经读过这个话题,但我还是有疑问.有没有办法定义void标签?
我试过这个:
<icon class="home"/> (know that slash isn't obligatory)
Run Code Online (Sandbox Code Playgroud)
但是,如果在此标记FF关闭它们之后有任何文本内容.
<icon class="home"/> Go home
Run Code Online (Sandbox Code Playgroud)
使
<icon class="home">Go home</icon>
Run Code Online (Sandbox Code Playgroud)
我应该定义哪个标签是void-element?或者HTML5无法做到这一点?
我很好奇是否可靠地定义自己的元素并使用JavaScript或JQuery选择它们.
我遇到过"自定义元素是否有效HTML5?"的问题.,但我对一个半生不熟的规范不感兴趣,也没有正式的方法来定义我自己的元素.
我只是想知道,如果我使用的话
<orange-juice />
Run Code Online (Sandbox Code Playgroud)
在我的文档中尝试选择它(通过CSS,通过jQuery),就像这样
orange-juice.fresh
Run Code Online (Sandbox Code Playgroud)
它会跨浏览器工作吗(当然,它甚至可能由HTML5规范的一部分支持,明确允许吗?)
编辑:在IE9 +和主要桌面浏览器中的跨浏览器.
编辑:也许橙汁的例子有点误导,就像提到CSS一样.我不想创建自己的语义元素,也不想真正想要设置内容样式,我想附加一些元信息然后由脚本解释.它同样可能是一个带有数据属性的空div,但我觉得这<my-meta-element />将是一个更好的选择<div id="i-am-just-an-innocent-fill-in-carrying-some-information-which-does-not-have-anything-to-do-with-me-being-a-generic-block-displayed-element"></div>
我有以下方法,我想使用它来记录YARDoc.
# Here is my method
# @arg woop [Woop] *dangerous* this parameter is output to the screen
def shoop(woop)
puts woop
end
Run Code Online (Sandbox Code Playgroud)
这会生成HTML格式的dangerous粗体.因为我必须解析此输出,所以我希望有一个自定义HTML标记.换句话说,我想这样做,以便当解析下面的代码注释时YARDoc,单词dangerous被<div class="custom"></div>标签包围,而不是<b><\b>标签,使得用Nokogiri更容易解析.并不是说目前无法用Nokogiri进行解析,它只是有点尴尬,容易受到YARD代码变化的影响.
# Here is my method
# @arg woop [Woop] **dangerous** this parameter is output to the screen
def shoop(woop)
puts woop
end
Run Code Online (Sandbox Code Playgroud)
YARD中是否有任何功能允许我完成此操作?我看了创建自定义模板,但这似乎更多的是解析代码.然后,我检查了创建自定义降价模板,但我没有看到这是如何实现或应该完成的.我开始得到的印象是我正在咆哮错误的树,并且会欣赏一个谷歌关键词.
为什么我首先尝试解析HTML:
正如我在之前的问题中所描述的那样,我试图定义一个接口而不必重复代码.在这个例子中,我希望服务器"调用"一种危险的方法,而不是一种非危险的方法.
这是一个不好的做法,页面的非HTML标签?我需要将它们用于内部内容处理需求,并想知道它是否有任何问题(例如SEO)?
我知道使用<td>outside <table>是一个无效的标记,但它仍然是HTML DOM中的一个节点.这就是为什么我能够看到这两个单元格呈现的原因.jQuery我无法找到那些细胞.这是JSBin演示和代码
<table>
<tr><td class='cell1'>Cell inside table</td></tr>
</table>
<tr>
<td class='cell2'>Cells without table</td>
<td class='cell2'>Cells without table</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
var $a = $('#a');
var numCells1 = $('.cell1').length;
var numCells2 = $('.cell2').length;
$a.html('Num Cell1:' + numCells1 + ' Num Cell2:' + numCells2);
Run Code Online (Sandbox Code Playgroud)
Num Cell1:1 Num Cell2:0
Run Code Online (Sandbox Code Playgroud)
为什么Num Cell2为0?我究竟做错了什么 ?
<globemedia id="1"></globemedia>
<script type="text/javascript">
$("globemedia").each(function(index, value) {
var globeIDxMedia = $(this).attr("id");
$.get("getmedia.jsp?mediaID="+globeIDxMedia,function(a){
$(this).html(a);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
上面的脚本用于将内容加载到我的自定义标签中 <getmedia id="1"></getmedia>
脚本工作正常,直到从页面getmedia.jsp获取数据,但当我使用$(this).html(a);它不加载数据.
从jquery论坛得到答案 它也适用于自定义标签
<script type="text/javascript">
$(document).ready(function(){
$("div[data-globalmedia]").each(function(index, value) {
var globeIDxMedia = $(this).attr("id");
$(this).load("getmedia.jsp?mediaID="+globeIDxMedia);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
jQuery专家给了我你必须使用的解决方案$(document).ready(function(){});,它就像一个魅力
有没有一种方法在CSS/HTML中创建新元素,而不使用Javascript?这样我就可以导入一个CSS或HTML文件,并加载一个新元素,以便能够替换这样的东西:
<html>
<body>
<div id="titlebar" style="background-color:#ff0000;">
<label style="color:#00ff00;">This is a title</label>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
用这样的东西或类似的缩短(例如class ="titlebar"):
<html>
<body>
<titlebar>
This is a title
</titlebar>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果你不知道,我的意思,请在那里问.