Белый сайт лучше?
RSS →    VK →

CSS reset - кроссбраузерное решение. -

С каждым новым проектом, у любого разработчика растёт уровень навыков, и появляются хорошие решения для тех или иных задач. Каждый разработчик со временем обрастает кучей готовых решений, который используются практически постоянно. При html вёрстке мне во-первых постоянно приходится прорабатывать сброс специфичных для каждого браузера стилей, дабы обеспечить максимальную кроссбраузерность, а во-вторых приходится прописывать для многих элементов один и тот же набор свойств. В какой-то момент пришлось написать собственный набор дефолтных стилей, и набор вспомогательных css классов.

Для чего нужен css-reset?

Каждый браузер имеет собственный набор значений по умолчанию для отображения различных элементов. К примеру, абзац с текстом, заключённый в теги <p></p> отображается в IE без отступов, в Firefox - с отступами сверху в 1em, в Opera - с отступом 1em сверху и снизу блока. Общего стандарта для браузеров нет, кроме того, существуют непопулярные браузеры, имеющие специфичные движки и опять таки собственные наборы стилей. Для того, чтобы обеспечить одинаковое отображение страниц во всех браузерах, очевиднее всего использовать собственный набор стилей для всех элементов по умолчанию.

Мой css-reset основан на html5boilerplate - очень клёвом наборе полезных фич для веб-разработчика.

/*DEFAULTS*/ html, address, blockquote, body, dd, div, dl, dt, fieldset, form, frame, frameset, h1, h2, h3, h4, h5, h6, noframes, ol, p, ul, center, dir, hr, menu, pre { display: block; unicode-bidi: embed } li { display: list-item } head { display: none } table { display: table } tr { display: table-row } thead { display: table-header-group } tbody { display: table-row-group } tfoot { display: table-footer-group } col { display: table-column } colgroup { display: table-column-group } td, th { display: table-cell } caption { display: table-caption } th { font-weight: bolder; text-align: center } caption { text-align: center } body { margin: 8px } h1 { font-size: 2em; } h2 { font-size: 1.5em; margin: .75em 0 } h3 { font-size: 1.17em; margin: .83em 0 } h4, blockquote, ul, fieldset, form, ol, dl, dir, menu { margin: 1.12em 0 } h5 { font-size: .83em; margin: 1.5em 0 } h6 { font-size: .75em; margin: 1.67em 0 } h1, h2, h3, h4, h5, h6, b, strong { font-weight: bolder } blockquote { margin-left: 40px; margin-right: 40px } i, cite, em, var, address { font-style: italic } pre, tt, code, kbd, samp { font-family: monospace } pre { white-space: pre } button, textarea, input, select { display: inline-block; background: #fff; } big { font-size: 1.17em } small, sub, sup { font-size: .83em } sub { vertical-align: sub } sup { vertical-align: super } table { border-spacing: 1px; font: 13px "arial", "verdana", "tahoma", sans-serif !important;} thead, tbody, tfoot { vertical-align: middle } td, th, tr { vertical-align: inherit } s, strike, del { text-decoration: line-through } hr { border: 0px inset } ol, ul, dir, menu, dd { margin-left: 0px } ol { list-style-type: none; padding-left: 30px;} ol ul, ul ol, ul ul, ol ol { margin-top: 0; margin-bottom: 0 } u, ins { text-decoration: underline } br:before { content: "\A"; white-space: pre-line } center { text-align: center } :link, :visited { text-decoration: underline } :focus { outline: none } BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override } BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override } *[DIR="ltr"] { direction: ltr; unicode-bidi: embed } *[DIR="rtl"] { direction: rtl; unicode-bidi: embed } /*Настройки для корректной печати*/ @media print { h1 { page-break-before: always } h1, h2, h3, h4, h5, h6 { page-break-after: avoid } ul, ol, dl { page-break-before: avoid } }

Также, мой css-reset включает в себя набор вспомогательных классов, значительно упрощающих вёрстку.

/*Вместо того, чтобы прописывать стили для элемента, можно просто указать дополнительный класс, к примеру class="class left"; так на элемент будет действовать оба класса.*/ .left { float: left; } .right { float: right; } /*Отдельный класс выделен для отступов. Если отступы подчиняются на сайте общему ритму - работа упрощается в разы.*/ .item { padding: 10px; } /*CSS 3 - фичи для вёрстки: тени, радиусы и трансформации*/ .rounded { -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } .shadow { text-shadow: 1px 1px 2px #000000; }

Написано 09.06.2012
Поделитесь ссылкой:

Не стесняйтесь высказываться :3