This is fine, in principle, but I would use XHTML5 instead of HTML5 as it allows for the introduction of alternative XML namespaces. Then I would use your custom elements in their own namespace to avoid collisions (in case a future HTML revision adds book
and chapter
elements, for example).
<html xmlns:hanfeisun="http://someReservedURIPossiblyYourXsdPath">
...
<hanfesisun:book>
<hanfesisun:chapter>
Chapter 1
</hanfesisun:chapter>
</hanfesisun:book>
...
</html>
In CSS you need to use the @namespace
block ( https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace )
@namespace hanfeisun url(http://someReservedURIPossiblyYourXsdPath);
hanfeisun|chapter { display: block; }
For brevity's sake you can use a shorter namespace prefix, like just h
instead of hanfeisun
.