Многие веб-разработчики используют обнуление дефолтных стилей для HTML-элементов в браузерах, так называемые ластики или CSS-ресеты. Кто-то пишет свои собственные, кто-то просто обнуляет значения padding и margin у всех элементов. Я предпочитаю CSS-ресет от Eric Mayer.
С приходом HTML5, принесшим с собой новые элементы, возникла нужда в адаптации CSS-ресета. Что и было сделано. На сайте html5doctor.com опубликована адаптированая под нужды HTML5 версия CSS-ресета от Eric Mayer. Вот она:
/*
html5doctor.com Reset Stylesheet
v1.6
Last Updated: 2010-08-18
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
body {
line-height:1;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
display:block;
}
nav ul {
list-style:none;
}
blockquote, q {
quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content:'';
content:none;
}
a {
margin:0;
padding:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
/* change colours to suit your needs */
ins {
background-color:#ff9;
color:#000;
text-decoration:none;
}
/* change colours to suit your needs */
mark {
background-color:#ff9;
color:#000;
font-style:italic;
font-weight:bold;
}
del {
text-decoration: line-through;
}
abbr[title], dfn[title] {
border-bottom:1px dotted inherit;
cursor:help;
}
table {
border-collapse:collapse;
border-spacing:0;
}
/* change border colour to suit your needs */
hr {
display:block;
height:1px;
border:0;
border-top:1px solid #cccccc;
margin:1em 0;
padding:0;
}
input, select {
vertical-align:middle;
}
Что нового в адаптированой версии?
Сначала автор удалил нежелательные в HTML5 элементы, такие как acronym, center, и big. Затем добавил новые элементы из HTML5, чтобы обнулить их дефолтные значения и прописал свойство display: block; для тех из них, которые должны рендериться как блочные элементы.
Свойство outline: 0; на событии :focus тоже было удалено из ресета, так как автор адаптированой версии считает что уж лучше дефолтное выделение на событии :focus, чем никакого. Я склонен согласиться с этим мнением. Дело в том, что Eric Mayer добавил это свойство в CSS-ресет в надежде на то, что разработчики будут описывать его сами. По факту этого не происходит или происходит редко. Поэтому уж лучше дефолтное выделение.
В ресет добавлены стили для нового элемента mark, созданного для маркировки текста в контексте. Мне не совсем ясно почему автор выбрал именно те стили и свойства, которые он выбрал, так что обращаю на это ваше внимание.
Адаптированый ресет распространяется с лицензией Creative Commons, так что его можно использовать в персональных и коммерческих проектах. Можно скачать с Google Code.
Послесловие
Этот CSS-ресет ни в коем случае не претендует быть окончательным и истиной в высшей инстанции. Мне например не ясно зачем автор добавил в ресет следующие свойства:
a {
margin:0;
padding:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}
Этот ресет можно использовать как заготовку для написания собственного, с учетом HTML5.
Дерзайте, делитесь результатами.
:focus Дело в том, что Eric Mayer добавил это свойство в CSS-ресет в надежде на то, что разработчики будут описывать его сами. Поэтому уж лучше дефолтное выделение.
но фокусировка по дефолту стоит токо в ИЕ и в ФФ, если я не ошибаюсь. я например юзаю оперу, и как верстальщик я считаю что обязан сделать отображение не только коректным и соответствующим требованиям но и одинаковым во всех браузерах. И мне кажется что он всё таки вернёт его, так как взять к примеру картинку-ссылку, то outline у неё при фокусе просто ужасен, потому что он фокусе сайт делается не “живым” которым он является благодаря картинкам а на мой взгляд – испорченым.
И ещё хотел спросить зачем ВСЕ пишут:
...... {
vertical-align:baseline;
background:transparent;
}
body {
line-height:1;
}
del {
text-decoration: line-through;
}
Это ж всё и так по умолчанию стоит в нормальных браузерах :)
А затем и стоит, что смысл ластика – сделать так, чтобы документы без дополнительного оформления даже последние идио^W^Wбраузер от Microsoft смог это отобразить так же, как и Fx, и Opera, и все остальные.