8. A method, implemented at a computer system that includes one or more processors, for rendering web page content, the method comprising: creating a layout viewport that identifies a portion of content of a web page that is available for display in a web browser and how the portion of content is to be laid out within the layout viewport, the portion of content including a fixed position user interface element that retains a fixed position within the layout viewport as the portion of content changes due to the layout viewport being scrolled over the content of the web page; creating a visual viewport that overlaps the layout viewport and that renders at least a part of the portion of content identified by the layout viewport, wherein the visual viewport is moveable and sizable within and independent of the layout viewport; and enabling interaction between the visual viewport and the layout viewport, including: rendering the fixed position user interface element based at least on identifying that a size and a position of the visual viewport causes the visual viewport to overlap a portion of the layout viewport containing the fixed position user interface element; subsequent to rendering the fixed position user interface element, detecting a condition in which an overlay user interface is to be displayed; reducing the size of the visual viewport to accommodate a detected size of the overlay user interface; and rendering the overlay user interface instead of the fixed position user interface element, based at least on the reduced the size of the visual viewport causing it to no longer overlap the portion of the layout viewport containing the fixed position user interface element, and based at least on the overlay user interface overlapping the portion of the layout viewport containing the fixed position user interface element.
8. A method, implemented at a computer system that includes one or more processors, for rendering web page content, the method comprising: creating a layout viewport that identifies a portion of content of a web page that is available for display in a web browser and how the portion of content is to be laid out within the layout viewport, the portion of content including a fixed position user interface element that retains a fixed position within the layout viewport as the portion of content changes due to the layout viewport being scrolled over the content of the web page; creating a visual viewport that overlaps the layout viewport and that renders at least a part of the portion of content identified by the layout viewport, wherein the visual viewport is moveable and sizable within and independent of the layout viewport; and enabling interaction between the visual viewport and the layout viewport, including: rendering the fixed position user interface element based at least on identifying that a size and a position of the visual viewport causes the visual viewport to overlap a portion of the layout viewport containing the fixed position user interface element; subsequent to rendering the fixed position user interface element, detecting a condition in which an overlay user interface is to be displayed; reducing the size of the visual viewport to accommodate a detected size of the overlay user interface; and rendering the overlay user interface instead of the fixed position user interface element, based at least on the reduced the size of the visual viewport causing it to no longer overlap the portion of the layout viewport containing the fixed position user interface element, and based at least on the overlay user interface overlapping the portion of the layout viewport containing the fixed position user interface element. 10. The method of claim 8 , wherein any content identified by the layout viewport and which is not overlapped by the visual viewport is not visible.