БлогNot. Вновь о простом стиле CSS для сайта

Вновь о простом стиле CSS для сайта

Всплывает регулярно этот вопрос.

В свете всеобщего избавления от вырвиглазных макетов, ярких цветов и фоновых рисунков, бывают нужны и вовсе элементарные макеты в 2-3 Кб, под которые потом легко написать скрипт для добавления контента, пользующийся только указанными в стиле тегами и не позволяющий юзеру баловаться с казуальными стилями.

Сейчас я бы в простых случаях точно вот так не делал и даже не стал бы заморачиваться с "правильным" сбросом стиля :) Но я и не считаю себя знатоком CSS3, хотя если нужно сделать "на коленке", применяю.

Цель очень проста, сделать короткий стиль CSS, который должен:

  • позволять сайту иметь простую и логичную структуру (как этот блог :);
  • позволять иметь примитивный одноколоночный макет, впрочем, ограниченный по ширине в процентах и имеющий минимальную ширину в пикселях, что заменит адаптивную вёрстку;
  • иметь высоту страницы всегда примерно не меньше полного экрана, даже если контента на ней недостаточно;
  • публиковать тексты с цитированием, листингами, произвольными выделениями физическими и логическими тегами разметки;
  • обходиться без устаревших тегов и атрибутов, проходить валидацию (наш тест её не пройдёт из-за font face, но это мы в учебных целях), иметь возможность добавлять списки, таблицы (как с автошириной, так и занимающие всю ширину экрана), цитаты, листинги;
  • добавлять картинки, хотя бы просто отцентрированные и с подписями внизу;
  • добавлять внизу "подвал" сайта с нужной информацией;
  • может, ещё какое баловство с горизонтальной лентой ссылок или тегов в любом нужном месте страницы.

В любом случае, "танцевать" в таких случаях проще от структуры будущего контента.

Для начала установим высоту страницы, шрифт (не нужно конкретный, есть семейства), "неубиваемые" полосы прокрутки, основные цвета, отступы и класс-обёртку для контента.

/* общий макет */
html {
 height: 98%;
}
body {
 height: 98%;
 font-family: sans-serif;
 background-color: #f0f0f0;
 color: #111111;
 font-size : 100%;
 overflow: scroll;
}
body, div, p,
ul, ol, dl, li, dt, dd, 
table, tbody, tr, th, td, 
blockquote, pre,
h1, h2, h3, 
figure, figcaption, 
footer, nav {
 margin: 0.2em;
 padding: 0.2em;
}
.wrapper {
 margin: 0 5%;
 min-width: 400px;
 min-height: 98%;
}

С цветами всё понятно - я всегда за то, чтобы фон делать чуть темнее белого, типа #eee, а основной цвет текста - чуть светлее чёрного, например, #111.

Основные виды списков просто сделаем с небольшими отступами. Все единицы постараемся оставлять только "долями буквы" em или процентами, разве что "минимальную ширину сайта" выше мы указали в пикселях px.

/* списки */
ul,ol,dl,li,dt,dd {
 padding: 0;
 margin-left: 0.6em;
 list-style-position: outside;
}
dt { margin-left: 0; }
dd { margin-left: 1em; }

Для таблиц укажем "сворачивание" границ и обрамление ячеек. Отдельным классом предусмотрим таблицу с шириной контента 100%.

/* таблицы */
table {
 border-collapse: collapse;
 margin: auto;
}
th, td {
 border: 1px solid #000;
 word-wrap: break-word; 
}
.w100 {
 width: 100%;
}

Цитаты должны быть выведены шрифтом с засечками, наводящим на мысли о бумажной книге, а листинги и текстовые фрагменты кода (имена переменных, файлов и т.п.) - моноширинным. Блочные варианты цитат и кода, конечно, неплохо взять в не-вызывающую по цветам рамочку.

/* цитаты, код, листинг */
blockquote {
 margin: 0;
 padding: 0.2em;
 font-family: serif; 
 color: #444444; 
 border: 1px solid #ddd; 
}
q {
 font-family: serif; 
 quotes: none;
}
pre {
 font-family: monospace; 
 color: #003300;
 border: 1px solid #ddd;
}
code {
 font-family: monospace; 
 color: #003300;
}

Стандартные заголовки HTML слишком велики и имеют слишком большие отступы, немного поправим 3 первых уровня заголовков.

/* заголовки */
h1, h2, h3 { color: #000; }
h1 { font-size: 130%; }
h2 { font-size: 120%; }
h3 { font-size: 110%; }

Ссылки, открываемые в новом и текущем окне, а также посещённые и активные должны отличаться по оформлению, предусмотрим это. Лучше всего, если ссылка, открывающая новое окно/вкладку видна до клика, например, выделена фоном.

/* ссылки */
a[target="_blank"] { 
 background-color: #FFFFCC;
}
a {
 background-color: expression((this.getAttribute("target") && this.getAttribute("target")=="_blank") ? "#FFFFCC" : "transparent");
}
a:link, a:active { 
 text-decoration: none; color : #006699; 
}
a:visited {
 text-decoration: none; color : #003399; 
}
a:hover	{ 
 text-decoration: underline; color : #DD6900; 
}

Картинки достаточно добавлять в отдельном блоке с помощью новых тегов <figure> и <figcaption>. Так же могут выводиться и математические формулы, а для простых эффектов вроде верхних и нижних индексов есть соответствующие теги.

/* картинки в отдельном блоке */
figure {
 display: table;
 margin: 0 auto;
}
figure img {
 display: block;
}
figcaption {
 display: table-caption;
 caption-side: bottom;
 text-align: center;
 font-size: small;
}

Низ страницы не будет вкладываться в раздел-обёртку, при этом он должен быть готов выполнить свою функцию - вывести некий повторяющийся футер страниц.

/* низ страниц */
footer {
 margin: 0 5%;
 border: 1px dotted #999;
}

Дальше можно побаловаться, скажем, предусмотрев дополнительные горизонтальные навигационные блоки со ссылками, которые могут ссылаться на другие статьи по теме, теги и т.п.

/* дополнительная горизонтальная навигация */
nav {
 background: #ddd;
 position: relative;
 overflow: hidden;
 margin: 10px 0;
}
nav ul {
 list-style: none;
 margin: 0;
 padding: 0;
 position: relative;
 left: 50%;
 float: left;
}
nav ul li {
 position: relative;
 left: -50%;
 float: left;
 margin: 0 10px;
}
nav ul li a {
 color: #fff;
 display: block;
 text-decoration: none;
 padding: 0 10px;
}
nav ul li a:hover {
 background-color: #CCF;
}

Вот какой стилевой файл вышел, он прикреплён непосредственно как .css в кодировке Юникода utf-8.

 style.css, открыть в текущем окне/ссылке (utf-8) (2 Кб)

Вот простая разметка с этим стилем, не забудьте поменять ссылку на стиль в заголовке документа, если скачаете его (это легко сделать, открыв исходный код страницы).

 index.html, открыть в текущем окне/ссылке (utf-8) (5 Кб)

20.02.2020, 00:40 [1324 просмотра]


теги: html цвет css ретро вебдезигн

К этой статье пока нет комментариев, Ваш будет первым