The previous
writeup is not the only 'frame problem' we have in this world. There is also the 'frame problem' in the context of the
internet.
We've all seen frames on websites. Most commonly, they are used to provide a 'navigation bar' at one side of the screen, that stays in place even if you scroll up and down in the main frame, i.e. the one containing the document you are interested in.
When you define how wide you want your two different frames to be, you can define in terms of pixel width, or in terms of Percentage of the window. Now, many people want to put pictures on thier navigation bar. So they whip up some pictures. The problem is pictures are displayed without scaling, i.e. a ten pixel wide graphic will show up ten pixels wide.
The frame problem is fairly simple: If you define the widths of your frames as a percentage, if someone has a low resolution screen, the navigaion bar will have a reduced pixel width. But the graphics for it won't. If your navigation bar graphics are designed at 1024x768 resolution to fit the width of the 20%-width bar, at 640x480, they will be too wide for the 20%-width bar, and will look awful.
You may think of the obvious solution to this: Define the width of your navigation bar frame in pixels, and set the document area's pixel width to '*' (Which means stretch to fit). The problem is, if you define one frame as, n pixels wide and the other stretch to fit, if your user has a low resolution screen, it will mean the main document area is narrow and unreadable. For example, at 1024 pixels wide, a 256 pixel wide navigation bar would encompass a satisfying one quater of the screen. But at 640 pixels width, that same bar would cover two fifths of the screen, taking nearly half the viewing width from an already small screen.
How could this problem be solved? Well, you could use the percentage defintion system and use Javascript to change the graphics depending on the resolution. But this wouldn't work if your user had an older browser, or had javascript disabled.
You could have a server-side system that serves up different framesets and graphics for different resolutions, but this would need server-side scripting access (Unusual unless you own the server) and CGI scripting knowledge, which most people don't have.
Finally, you could not use frames. This is my solution. I am yet to see a high-quality site that uses frames.