Q:

How do I show content when Javascript isn't available, hide it when javascript is available and not flicker in either case?

I have a simple form for shipping options and I am using javascript to auto submit the form when someone selects a new option from the drop down list.
In order to support browsers without javascript there is also a button to submit the form. This button is hidden using javascript.
However, this means my button is visible for a brief period of time and can cause a flicker as the rest of the content is reformatted.
Can anyone suggest a way of creating the button so it starts off hidden, but is made visible only if javascript is not available? eg, start out with display:none; and magically change to display:block; if and only if there is no javascript.

A:

Just put anything inside <noscript> ... </noscript> tags and then it will only appear if JavaScript is not enabled/available.

A:

It depends on how you are hiding it, are you using a DOM ready or a window ready? Window ready waits for all images to download, which is generally far too long.
For accessibility, reasons, I'd hide it on DOM loaded. But to ensure it won't show up, you could put it in a noscript element
<noscript>
    <input type="submit" />
</noscript>

As for your last paragraph, nothing like that can happen in the absence of JavaScript.

