I built my client's site to his design using ems for column widths; and I have implemented every change he's asked me to make in several rounds of edits.

Regarding what we negotiated for this project:
Originally he posed it as a tutoring project, where he'd build it and I'd watch and help him with whatever problems he ran into. Then he said he needed the project done right away and he had other priorities. When I said that my consulting fee was higher, he hesitated, so I said I'd split the difference between my tutoring rate and consulting rate and bill him hourly. After I'd built the majority of the site (to my eye it looked close to his pdf), he wanted to renegotiate for a set fee. He said it didn't feel fair that he was paying me at that hourly rate to do what he considered was just production work and for which he'd paid lower, and that he wasn't going to make anything on the project because he only charges $5 more than what I was billing him. I agreed to the set fee, and he paid me part of the fee, and said he'd pay the other part when the project was done.

We had a week-long break while I waited for him to get in touch with his client (the ones for whom this website is being built), during which time I got busier and was no longer able to work on weekends. Because I took two or three days to get back to him on two occasions in the past month, he's taken advantage of that and started blaming me for everything being wrong. The other day he vented on me because he says he can't present the site to his client. He wants everything to be exactly like the pdf he gave me, yet he's kept asking for changes. I even did a little Flash animation that wasn't in the original spec, and he complained that because it took four rounds to get it right, it indicated I wasn't very professional- he said anyone else would take his comments and figure it all out and send it back right the first time.

He asked me to increase the font size in one column, but then wanted the text in the links in that column to stay on one line, so I increased the column width, which threw off the proportions with the other two columns, so I made those bigger. This enlarged the gap between an image in the middle column and a rule on the left that divides the middle and right columns. I tried to explain that the gap is there because the photo doesn't resize when the browser font size is enlarged, he got pissed and said he's had 7 other sites built and this is the first time there's ever been a problem and that I'm making preposterous statements that it's his fault.

He just tore me apart for a second time. When I said I've implemented all the changes, and that we're in our last rounds of tweaks, he said, "No we're not. There's a number of changes that need to happen. It's not enough to do everything on the list... you have to do whatever it takes to make it ready for primetime."

He continued on, saying that I need to learn to take responsibility when I make something that's broken and that I need to fix it, and I said that I would change the widths to pixels to match a screenshot that he did of the earlier version I'd built, and also bump up the font sizes.

It was a horrible conversation that got worse and worse.

We ended with him saying, "You're failing. You really are, and you need to take responsibility and fix it. I want you to succeed", and me saying, "OK, well, I'll make these changes and send what I have by tomorrow morning and I'll meet you at your office tomorrow evening."

Am I really in the wrong for not making the boxes work in all browser text sizes? What is a reasonable answer I could have given him?