Хорошая особенность этого подхода в том, что он создает частные переменные, поэтому не будет никакого конфликта с именами переменных:
(function() {
var privateVar = 'test';
alert(privateVar); // test
})();
alert(typeof privateVar); // undefined
Добавление .call(this)
делает ключевое слово this
ссылкой к тому же значению, на которое ссылаются за пределами функции. Если он не добавлен, ключевое слово this
будет автоматически ссылаться на глобальный объект.
Вот небольшой пример, показывающий разницу:
function coffee(){
this.val = 'test';
this.module = (function(){
return this.val;
}).call(this);
}
var instance = new coffee();
alert(instance.module); // test
function coffee(){
this.val = 'test';
this.module = (function(){
return this.val;
})();
}
var instance = new coffee();
alert(typeof instance.module); // undefined
CSS - единственный реальный вариант.
Поддержка браузером CSS не должна быть серьезной проблемой (в большинстве случаев) после того, как вы изучите все тонкости CSS. Ключ к пониманию CSS заключается в том, что его цель - определить стиль HTML-документа, и он должен быть отделен от содержимого.
Вам понадобится практика, чтобы научиться, как заставить вещи ухудшаться изящно в браузерах, которые этого не делают. функции поддержки. Основная идея здесь состоит в том, что вы должны сделать так, чтобы наименьший общий знаменатель (обычно Internet Explorer) работал «достаточно хорошо», чтобы он не ухудшал пользовательский опыт, и предоставлял тонкости пользователям с лучшими браузерами. Кроме того, не сначала разрабатывать для Internet Explorer. Оставьте это напоследок, а затем исправьте ошибки. Сделать наоборот (сначала IE) намного сложнее.
У вас также есть возможность использовать JavaScript для установки стилей, но это не рекомендуется, потому что вам следует избегать применения стилей в JavaScript, поскольку JavaScript предназначен для логики, а не для стилей.
Их три (в зависимости от того, как вы смотрите на it) компоненты на веб-страницу:
Насколько я знаю, только один. По крайней мере, для HTML и т. П.
См. Также http://www.w3.org/Style/CSS/
Я согласен с тем, что текущее состояние поддержки CSS довольно ужасно.
Я думаю, что лучший подход - написать CSS в соответствии с стандартом , а затем добавить исправления для все биты, которым не соответствуют различные браузеры. Часто стоит избегать некоторых битов CSS, если вы все же (например, z-уровни имеют действительно смешанные уровни поддержки во многих браузерах).
В настоящее время нет альтернативы CSS, и это хорошая вещь. Поставщикам браузеров, W3C, WHATWG и т. Д. С трудом удается согласовать одну спецификацию, как она есть. Можете ли вы представить, что случилось бы, если бы было больше одной спецификации?
В любом случае, я обнаружил, что, изучив CSS, вы получаете знание того, что именно ломает, и либо научитесь работать с этим, либо избегайте этого.
Надеюсь, это поможет.
Нет (в основном)
Если вы хотите создавать макеты, которые работают на максимальном количестве клиентских машин, вам придется изучить CSS.
Если вы можете ограничить количество пользователей в IE8, Chrome, Safari и Firefox, тогда вы, вероятно, сможете обойтись без CSS2, иначе вам придется изучить все различия с CSS1, а также множество сломанных вещей - особенно в IE5 и 6.
HTML 3.2 включает некоторые теги форматирования (например,
или
), но с ними мало что можно сделать.
Почему только в основном? - Если вы можно предположить, что у пользователей есть Flash или Silverlight, и создать для них веб-приложения. Тогда ваш макет будет идеальным, но для работы потребуется клиентский плагин (который есть не у всех). Я'
Нет, CSS - это то, что нужно. Нет ничего плохого в самом формате (лично мне он очень нравится), скорее, только в его поддержке браузером - особенно в отношении IE. Когда все основные браузеры будут поддерживать CSS3 , все должно быть в порядке, хотя я не слишком оптимистичен по поводу того, когда это произойдет.
xslt - альтернатива
Он более мощный, чем css.
Его сложнее изучить и использовать.
Единственной альтернативой является устаревшая поддержка форматирования. этот HTML имеет, как и тег
. Но ты не хочешь этого делать. 8 -)
Я просмотрел запись CSS на Википедия ( http://en.wikipedia.org/wiki/Cascading_Style_Sheets ) и несколько других комментариев о CSS и разочаровался в отсутствии полная поддержка CSS в разных Расположение двигателей, так что мне просто любопытно если есть альтернатива или я должен научитесь также использовать фильтры CSS.
CSS - это стандарт . Альтернативы нет.
Все браузеры поддерживают основные функции CSS. Каждая новая версия каждой из (четырех?) Основных линий браузеров имеет расширенную поддержку стандарта, но веб-сайты, использующие эти функции, будут недоступны для всех пользователей в более ранней версии. На этот вопрос есть два ответа:
«Изящная деградация» (или его двойник, «Прогрессивное улучшение» - погуглите), при котором страница использует преимущества расширенных функций, если они доступны, и при этом продолжает работать, если они нет.
Кто ваша аудитория? Если вам посчастливилось знать, что 99,8% посетителей вашего веб-сайта будут использовать как минимум IE7, вам не нужно беспокоиться о функциях CSS, которые не работают в IE6.
разочаровались в отсутствии полной поддержки CSS в различных механизмах макета
Я думаю, что jQuery имеет несколько способов сделать CSS более совместимым во всех браузерах, т.е. если вы укажете некоторые атрибуты, используя jQuery, тогда он попытается использовать обходной путь для браузеров, которые не поддерживают определенные функции.
Существует также проект под названием CleverCSS , вы можете попробовать его. Однако это не альтернатива ему, просто немного другое определение.
Ну, CSS 2.1 довольно хорошо поддерживается почти всеми браузерами. (кроме IE6) Если вы знаете безопасное подмножество, легко написать изящно деградированный CSS. (Чтобы даже неподдерживающие браузеры не испортили страницу полностью)
См. http://www.quirksmode.org для советов по совместимости с браузером CSS.
Широко распространенный CSS не получает полной поддержки во всех браузерах ... как (неизвестная) альтернатива может достичь этой цели?
Да.
Как все говорили, CSS - ваш единственный реальный вариант, но есть еще один язык для «вещей типа форматирования таблиц стилей» в Интернете, называемый eXtensible Stylesheet Language (XSL), в частности подмножество спецификация, которая стала известна как XSL-FO (объекты форматирования) .
В какой-то момент, в зависимости от того, кого вы спрашивали, предполагалось конкурировать или сотрудничать с CSS .
Золи права. "xslt - это альтернатива"
XSLT превращает XML в отрисовываемую веб-страницу, так же как CSS превращает HTML в отрисовываемую веб-страницу. Обратите внимание, что XSLT нельзя смешивать с HTML или CSS с XML.
Я использовал оба CSS + XSLT для создания отрисованных веб-страниц.