Web development is a lot of trial-and-error. With PHP and JavaScript, most of it is logical; X happens and Y is true therefore Z will happen. But when you get into formatting (like rounded corners, testing column widths, making faux columns and so on), you have to write your CSS formatting code and then test it out. If it's not to your liking, you change it. There's no real logic about it.