I'm an experienced Java developer just beginning to learn HTML.
I'm working on a project that uses Spring MVC as a back-end framework. On the front-end, my index page has several rather complex elements, each involving 150+ lines of html. As an OO-programmer at heart, I hate how long my index.html is, and my OO instincts are compelling me to split some/all of these elements off into their own html files, particularly given that there is a possibility that some of them can be reused on other pages. I've come across examples of HTML tags being embedded into one another, but I haven't found much discussion about whether or not doing so is in line with best practices.
What are the best practices when it comes to modularization code reuse and the separation of concerns in modern HTML web-applications?