There are several tools to arrange content on a webpage, including floats, positioning, Flexbox and Grid. Each has its own advantages, but generally I prefer flexbox for relatively simple projects.
Keeping track of all the required attributes of form elements and what they do is tedious and, as Art Moore would say, "lookupable". The same is true of HTML tables.
Large projects become tedious because many elements will share similar properties and require repetitive code. Sass provides a way to apply styles to many different elements without having to constantly repeat the same lines of code.
Javascript functionality is in many ways similar to Python, my native language, but the syntax is different and keeping them straight can be annoying.
There's lots of handy ways to iterate over elements of an array that make for loops and whatnot unnecessary in some cases. Here's a couple handy guides.
The process of adding interactivity to a website has many moving parts, all stemming from the idea of the Document Object Model. There are too many methods to remember offhand, so here are some references.
Scalable Vector Graphics are very nice for creating sharp images of any size and animating them, but implementing them in code is very tedious.
Objects in Javascript are an extremely useful way of storing data in various forms, especially when you expect variables to change throughout the course of a script.
Interacting with other websites, databases, servers, etc... is clearly crucial, and AJAX provides a way to do this asynchronously.
Fetch is a much more streamlined and powerful way to interact with other websites and abstracts away many of the complications associated with AJAX.
Bootstrap has lots of built-in styles and behaviors that make it easy to rapidly develop web pages. I used it a bit in my portfolio.
Github allows users to host live websites! Here's how:
The Hypertext Transfer Protocol is what browsers & servers use to communicate. It's very tedious and is usually obscured by the visual smoothness of the browser, but I expect to need to know how to automate HTTP requests at some point.