HTML Standards
Since portal zones are simply div elements within a single HTML page, they must co-exist harmoniously (for example, don't assume HTML IDs are unique).
Here are some tips to avoid problems:
Avoid hard-coding sizes (e.g. widths). It's best to let the browser manage the resizing of zones when the browser window is resized by the user. One tip: Use width 100% for tables and divs.
There is an IE Bug with JavaScript in documents loaded after the main page has loaded, so-called deferred loading. To support deferred loading, JavaScript tags must use the defer attribute:

<script type="text/javascript" defer="defer">

Further, such JavaScript code should appear at the bottom of the zone. Refer to the existing XSLT files for examples.
Rely on the standard Oracle Utilities Customer Care and Billing cascading style sheets (cisDisabled.css), which are automatically loaded in the portal page. Some useful style classes are "normal", "label", and "biggerText".
Since an HTML page provides a single global namespace for widget IDs, avoid hard-coding HTML IDs. If you absolutely must, you may want to make use of the sequenceId XSLT template variable, which provides a unique ID to every zone when it renders.