% widths behave more correctly