I have read this topic, but I still have doubts. Is there any way to define void tag?
I tried this:
(know that slash is
You shouldn't define your own HTML tags, period.
HTML is useful because it's a set of agreed meanings for tags.
(For example, browsers make links clickable because we've agreed (via the HTML spec) that the <a>
tag is a link to another page.)
You can create your own tags, but they won't have meaning to anyone except yourself.
For a given purpose, that might be fine, but you're not really using HTML any more.
This is currently not an answer because it does not fully address the question, but it did not fit into the comment section.
The /
in />
is ignored by the browsers if parsed to the html5 specs (except foreign elements
of MathLM
and SVG
, because for the elements of this modules their specs has self enclosing element, so there it needs to stay valid)
Relevant parts of the specs:
(The relevant part how browsers should handle missing tags and that they ignore /
is missing, i need to look this up)
If the element is a void element
no closing tag is generated, because it does not require one.
For the other elements the closing tag is created if it is missing. So if you write something like this:
<div>
<div/>test
</div>
It will result in
<div>
<div>test</div>
</div>
Because the /
is ignored.
Custom elements are non-void
by default. I know there is a draft for Custom Elements but honestly i don't know if it is already supported in some browsers. But even if it is, you will have the problem of backward compatibility. So i would not recommend to use it.
Even so defining a tag name not prefixed with an x-
is a bad idea because if later an element is added by the specs with the name you choose and if that has another meaning you will have a problem.
As soon as i have time to look up the specs i'll provide the corresponding missing parts to proof this.