> I then entered hard-coded spaces to create the shape I wanted
Using white-space characters (of any kind) to layout a screen is never a good idea, thats why HTML includes things like:
a. (HTML) tables.
b. image maps.
c. CSS based positioning, padding, & margins.
d. CSS based tables (flex box)
We would need to know more about the layout you are trying to create (visual & code examples) before we can provide a solution.