Anchor tags only link to ID’s, and rightfully so. The reason you cant link to classes is that you should only ever link to 1 HTML element. It’s not like you should never use ID’s, it’s just that they aren’t used as much as you would think. The only reason you would use an ID would be if you needed to ENFORCE the unique-ness of an element. Anchor tags are a good example, because you want to enforce that it links to one path and one path only.
In short think of it like this, if an element simply cannot be replicated somewhere else in your code without causing some sort of layout/function error; use an ID. In just about every other case, use a class. That way in the event you want to copy some code someplace else, like having the same button style for multiple buttons, its as simple as adding the class name.
As far as text-editors go, I have personal experience with 4. If you want an online/cloud editor, cloud9 is your best bet. It’s free, recommended by FreeCodeCamp, and gives you infinite workspaces. A good alternative is Codeanywhere. You only get one workspace free, but it doesnt require your credit card info, and it gets past my schools firewall, unlike cloud9 ;).
For offline editors I’ve used Atom and WebStorm. Atom is my personal editor, and 1 its free/open-source, 2 its made by Github, 3 its built on Electron so all the code for the editor is written in JS, and 4 I love how easy it is to add plugins like linters/file-icons/emmet. It’s my recommendation, especially if you’re a beginner it’s very friendly. Webstorm on the other hand is for the more heavy duty/professional developer. It’s developed by JetBrains, who also design editors for Java, C++, Python, and Ruby. It’s $90, but free to college/high school students for education purposes. Webstorm has a built-in terminal, database manager, refactoring engine, and is basically specifically built to handle anything a web developer can throw at it. There is a steeper learning curve, and you probubly won’t use half it’s functionality unless your a professional.