Как уже писали выше, про inline-block и float довольно странное напутствие. По поводу inline-block все не так уж и плохо: его можно заставить работать в IE6. Если мне не изменяет память делалось это указанием следующих стилей .inline-block {display: inline; zoom: 1;}
В IE7 конструкция выше работает точно. Многие SASS/SCSS фреймворки (Compass, Bourbon, …) имеют mixin inline-block, который как раз и реализует данный хак для старых IE
Да и опять же, вы в статье упоминаете про Progressive Enhancement и Graceful Degradation и в тоже время призываете отказываться от того же inline-block и прочих вещей. Подключив modernizr, вы сможете тестировать поддержку различных css возможностей и при необходимости менять их отображение. Также modernizr хорош для проверки placeholder, pattern, упомянутых в статье для input. Верстка, выжившая для IE6, но без нужных полифилов, будет смотреться странно, особенно если все подписи к полям существуют только в виде placeholder, потому что ни одна подпись в input'е не покажется. Это, кстати, касается и IE8.
По поводу noscript. По спецификации HTML5 данный тег запрещен. Вместо него сейчас принято добавлять к html класс no-js, а у браузеров которых включен JS снимать этот класс. Используя этот подход, можно отображать/не отображать какие-то блоки, а не просто добавлять дополнительный текст, как это делает noscript. С классом no-js все легко контролируется через CSS. Также вы сможете менять функционал своего приложения, проверяя включен ли JS. Делать, к примеру, формы по умолчанию рабочими на отправку, но если включен JS и нужна поддержка ajax, то делать preventDefault и отправлять форму ajax'ом и тп.
От reset.css уже многие отказались в пользу normalize.
Упомянутый выше modernizr также включает в себя html5-shiv, поэтому нет необходимости подгружать его отдельно, если используется modernizr. Выше вроде бы как указаны плюсы его использования.
Если идти в сторону микроформатов и разметки учитывающей все, то необходимо также добавить информацию для соц. сетей в head
Сейчас самый известный формат для этого — Open graph ogp.me/. Его поддерживает Facebook и по ощущениям VK тоже
Для твиттера тоже появилась подобная возможность — dev.twitter.com/docs/cards
Только самый мелкий размер из этих — 1024×768 на максимальном размере монитора с такой матрицей — 17" (что на самом деле весьма редко встречается) — дает 75 dpi.
Более распространенные комбинации:
1280×1024 на 17" — 96 dpi
1280×1024 на 15" — 109 dpi
1366×768 на 15" (самый продаваемый сейчас формат бюджетных ноутбуков) — 104 dpi
1366×768 на 18.5" (самый продаваемый сейчас формат супербюджетных TN-мониторов) — 85 dpi
1280×800 на 17" — 89 dpi
1440×900 на 19" (второй по продаваемости формат бюджетных TN) — 90 dpi
Так что я бы скорее закладывался на то, что современный «средний dpi по больнице» на десктопах в районе 90, на ноутбуках в районе 100, но никак не 72.
по поводу отладки: я использую несколько расширенную схему, причём пришёл к ней почти сам даже не допустив косяка:
define(DEVELOPER_IP, '212.121.212.121'); // assign office IP
define(SHOWDEBUG, $_SERVER['REMOTE_ADDR'] == DEVELOPER_IP); // show DEBUG only for office IP
// настройка ini-переменных
ini_set('error_reporting', 'E_ALL & ~E_NOTICE');
error_reporting(E_ALL & ~E_NOTICE);
# /doc/root/../logs/errors.log, файл необходимо предварительно создать!
ini_set('error_log', implode(DIRECTORY_SEPARATOR, array($_SERVER['DOCUMENT_ROOT'], '..', 'logs', 'errors.log')));
if (SHOWDEBUG):
// show errors and warnings
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
ini_set('log_errors', 'Off');
ini_set('html_errors', 'On');
ini_set('track_errors', 'On'); # If enabled, the last error message will always be present in the variable $php_errormsg
else:
// disable errors and warnings
ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('html_errors', 'Off');
ini_set('ignore_repeated_errors', 'On');
ini_set('ignore_repeated_source', 'On');
ini_set('track_errors', 'Off'); # If enabled, the last error message will always be present in the variable $php_errormsg
endif;
Сам пользовался этим сервисом, остался доволен. Единственный минус — результирующая картинка отдается в 64-х битах, что для веба не нужно абсолютно. Но результирующую картинку в любом случае нужно оптимизировать, поэтому это обстоятельство не слишком мешает.
Как уже писали выше, про inline-block и float довольно странное напутствие. По поводу inline-block все не так уж и плохо: его можно заставить работать в IE6. Если мне не изменяет память делалось это указанием следующих стилей
.inline-block {display: inline; zoom: 1;}
В IE7 конструкция выше работает точно. Многие SASS/SCSS фреймворки (Compass, Bourbon, …) имеют mixin inline-block, который как раз и реализует данный хак для старых IE
Да и опять же, вы в статье упоминаете про Progressive Enhancement и Graceful Degradation и в тоже время призываете отказываться от того же inline-block и прочих вещей. Подключив modernizr, вы сможете тестировать поддержку различных css возможностей и при необходимости менять их отображение. Также modernizr хорош для проверки placeholder, pattern, упомянутых в статье для input. Верстка, выжившая для IE6, но без нужных полифилов, будет смотреться странно, особенно если все подписи к полям существуют только в виде placeholder, потому что ни одна подпись в input'е не покажется. Это, кстати, касается и IE8.
По поводу noscript. По спецификации HTML5 данный тег запрещен. Вместо него сейчас принято добавлять к html класс no-js, а у браузеров которых включен JS снимать этот класс. Используя этот подход, можно отображать/не отображать какие-то блоки, а не просто добавлять дополнительный текст, как это делает noscript. С классом no-js все легко контролируется через CSS. Также вы сможете менять функционал своего приложения, проверяя включен ли JS. Делать, к примеру, формы по умолчанию рабочими на отправку, но если включен JS и нужна поддержка ajax, то делать preventDefault и отправлять форму ajax'ом и тп.
От reset.css уже многие отказались в пользу normalize.
Упомянутый выше modernizr также включает в себя html5-shiv, поэтому нет необходимости подгружать его отдельно, если используется modernizr. Выше вроде бы как указаны плюсы его использования.
Если идти в сторону микроформатов и разметки учитывающей все, то необходимо также добавить информацию для соц. сетей в head
Сейчас самый известный формат для этого — Open graph ogp.me/. Его поддерживает Facebook и по ощущениям VK тоже
Для твиттера тоже появилась подобная возможность — dev.twitter.com/docs/cards
Только самый мелкий размер из этих — 1024×768 на максимальном размере монитора с такой матрицей — 17" (что на самом деле весьма редко встречается) — дает 75 dpi.
Более распространенные комбинации:
Так что я бы скорее закладывался на то, что современный «средний dpi по больнице» на десктопах в районе 90, на ноутбуках в районе 100, но никак не 72.
define(DEVELOPER_IP, '212.121.212.121'); // assign office IP
define(SHOWDEBUG, $_SERVER['REMOTE_ADDR'] == DEVELOPER_IP); // show DEBUG only for office IP
// настройка ini-переменных
ini_set('error_reporting', 'E_ALL & ~E_NOTICE');
error_reporting(E_ALL & ~E_NOTICE);
# /doc/root/../logs/errors.log, файл необходимо предварительно создать!
ini_set('error_log', implode(DIRECTORY_SEPARATOR, array($_SERVER['DOCUMENT_ROOT'], '..', 'logs', 'errors.log')));
if (SHOWDEBUG):
// show errors and warnings
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
ini_set('log_errors', 'Off');
ini_set('html_errors', 'On');
ini_set('track_errors', 'On'); # If enabled, the last error message will always be present in the variable $php_errormsg
else:
// disable errors and warnings
ini_set('display_errors', 'Off');
ini_set('display_startup_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('html_errors', 'Off');
ini_set('ignore_repeated_errors', 'On');
ini_set('ignore_repeated_source', 'On');
ini_set('track_errors', 'Off'); # If enabled, the last error message will always be present in the variable $php_errormsg
endif;