I’ve got an input so the user can type either html or plain text. When the user copy & paste text from MS Word, for example, it generates a weird html. Then, when you view that topic, you can see the whole page’s style is affected. I don’t really know if the generated html has unclosed tags or something, but it looks like it does and thus, the style of the page is affected.
Does anybody know how to “isolate” the html of that div(or whatever the container be) from the whole page’s style?
Short of showing the content in an IFRAME, you can’t really do that. What I usually do in this situation is apply tag stripping logic to the content as it comes in. You really don’t want to allow arbitrary HTML from a security perspective, but even if you don’t care what your users input, you should be stripping out invalid HTML tags (Word has a habit of creating tags with weird namespace-looking things like o:p) and running something like Tidy over the result to ensure every tag is properly closed. There are a number of Tidy libraries for .NET out there; here’s one.
Here’s a quick cut-and-paste of how I’ve done this in the past. Note that the class implements an interface from the project I used it in, but you get the general idea.