Прежде всего, классы пользовательского интерфейса jQuery в документации применяются только после document.ready. Вы можете стилизовать их как хотите, но не избавитесь от вспышки нестандартного контента. Классы полезны для создания пользовательского интерфейса, а не для того, чтобы повлиять на внешний вид до того, как пользовательский интерфейс будет создан.
Во-вторых, тега noscript следует избегать по разным причинам:
1) Это на самом деле не говорит вам, включен ли JavaScript или нет. Например, он может быть включен в браузере, но заблокирован брандмауэром.
2) Это тег уровня блока, так что есть только определенные места, где он может появиться. Это не универсальное решение.
3) Тег не различает степени реализации javascript в разных системах.
Вы были ближе к лучшей практике в своем первоначальном посте. Хитрость заключается в том, чтобы скрыть и показать в JavaScript. Во-первых, стилизуйте свою страницу так, чтобы она выглядела приемлемой с отключенным JavaScript. Затем, чтобы предотвратить флеш нестандартного содержимого, сделайте сокрытие уродливых элементов в javascript до document.ready (это критическая часть), назначив класс элементу html:
jQuery('html').addClass('blahblah');
Поскольку элемент html уже существует, он работает с ним до document.ready.
Затем, как говорит Ник, поместите нарушающие элементы в элемент div с классом «startugly», а затем вставьте в свой файл строку, которая скрывает нарушающие элементы:
.blahblah .startsugly {display: none;}
Суть в том, что дисплей: никто не вступает в игру только тогда, когда включен JavaScript. Пользователи, у которых он отключен, все равно смогут получить доступ к вашему контенту. Затем, после document.ready, вставьте в свои функции pimping пользовательского интерфейса jQuery и снова покажите нарушающий элемент:
$(".startsUgly").show();
хотя, если это содержание, которое только условно видно в аккордеоне или структуре табуляции, этот последний шаг может даже не понадобиться.