Code's default behaviour when you do Emmet abbreviations:
This sucks and I could fill this entire database with rants about how much it bothers me. It can be fixed by setting "Emmet Profiles" in your Code settings. The Settings UI can't do it, and to make it more annoying you have to do it per-language as well. Being a PHP coder for the most part that means I have to set at least two keys:
"emmet.syntaxProfiles": {
	"php": { "self_closing_tag": "xhtml" },
	"html": { "self_closing_tag": "xhtml" }
}
And the result of this:
Much better. I almost don't want to tell you because its almost as annoying as not being self-closed, but, if you use "xml" instead of "xhtml" it will do the self closing tags, but without the space between the last attribute and the closing. But certainly nobody sane would want that.