我的博客网站上有一些特殊的标签需要尽可能简单,以便我对HTML一无所知的大学可以使用它。例如
<question>...</question>
和
<answer>...</answer>
然后这些在CSS中设置样式。 HTML-idiots比使用<div class="answer">...</div>
格式要容易得多。
我刚刚发现IE8显示错误,而Firefox和Chrome做得对。是预期还是我做错了什么?你知道有什么黑客可以解决这个问题吗,因为我需要手动更改大量的博客帖子!
答案 0 :(得分:2)
我不知道这个答案是否符合您的需求,但使用自定义HTML标签的imho基本上是不使用 HTML。因此缺乏相容性。 如果你需要用HTML渲染数据,使用XML + XSLT会不会更好?
您可以在w3schools
上找到指南答案 1 :(得分:2)
您想要创建<question>...</question>
等。
这些不是HTML(甚至不是HTML5),您很难让浏览器可靠地理解它们。
可能对您有帮助的快速提示:
你说你已经在除了IE之外的所有浏览器中都能使用它。如果是这样,你可能会破解IE以使其工作,使用类似于HTML5Shiv这样的黑客技术,这些技术被用来让IE使用新的HTML5标签。这些使用Javascript来创建具有新标记名称的DOM元素,之后IE突然开始将该标记识别为有效的HTML。
它可能会起作用。但要注意它是一个黑客,它只针对IE。而且由于您使用的是非标准标签,因此即使它们现在正常运行,您也无法知道将来会破坏浏览器会发生什么。 (事实上,我会说更糟糕的情况是,如果你发明的其中一个标签在以后添加到HTML标准中,那么你会开始得到奇怪的布局故障,因为它会被添加到默认值样式表)
如果你能以这种方式工作,那么做得好。但是请考虑自己警告说这不是好习惯。
您实际要求的不是HTML,而是XML标记。这非常好,但不应该像你希望的那样直接放入网页。
有许多记录良好的方法可以将原始XML代码放入浏览器中。
一种选择是使用XSL将其转换为有效的HTML。另一种方法是将其加载到Javascript中的DOM对象中并使用脚本处理它。 (这是'X'出现'Ajax'的地方。)
我的猜测是,一个简单的XSL转换可以帮到你。 (事实上,听起来你的用例可能很简单,即使只是基本的字符串替换也可能足以获得相同的最终结果)。您可以使用<whatever>
<tags>
<they>
<want>
让您的同事创建代码,并编写一个脚本来解析它并在将其合并之前将其转换为常规HTML页面的其余部分。
从长远来看,这可能是一个比我上面描述的黑客更好的解决方案。
希望有所帮助。
答案 2 :(得分:1)
您无法添加类似的新元素。 HTML有一些浏览器可以理解的固定元素,但是如果你自己添加,浏览器就不知道如何处理它们。
HTML5有一些你可能会觉得有用的新元素:http://www.w3schools.com/html5/html5_new_elements.asp但是如果没有某种类型的javascript来解决问题,这对旧的浏览器不起作用。例如http://remysharp.com/2009/01/07/html5-enabling-script/
但是,如果你真的想添加新标签,可以这样做,然后通过javascript将它们“修改”为已知标签(实际上它是IE的html5启用脚本所做的),但它不会可以轻松地将CSS应用于新标签。
简而言之,我强烈建议不要添加新标签。理解像<div class="answer">
这样的东西并不难。
答案 3 :(得分:1)
听起来您想要使用XSLT编写XML并转换为HTML。 This是一个旧教程(包括定义DTD),但进一步的网络搜索将获得更多可能适合的结果
答案 4 :(得分:0)
在这里你去了家伙:
您需要使用createElement:)