Интересное применение каскадных таблиц css и html
В данной статье приводятся малоизвестные или малоиспользуемые приемы применения html и css, приводящие к интересным эффектам. Данная страничка постоянно обновляется и в нее добавляются разные эффекты, которые можно использовать при строительстве вашего сайта.
- Как сделать "Бегущую строку"?
- Как сделать вывод текста телетайпом?
- Как выделить первую букву параграфа (Создать буквицу)?
- Как изменить внешний вид курсора?
- Как создать простую 3D кнопку средствами css?
- Как изменить размеры и цвет линии средствами css?
- Как, средствами css, сделать у рамок закругленные углы?
- Как сделать иконку для сайта, чтобы она отражалась в поисковиках?
- Как сделать цифровые ссылки на страницы одной тематики?
- Как сделать всплывающие подсказки?
В. Как сделать "Бегущую строку"?
О. Для придания своему сайту своебразного стиля иногда применяют т.н."бегущую строку". "Бегущей строкой" удобно выводить какие-либо новости или что-то, на что необходимо обратить внимание пользователя. Итак, как же это реализовать? Проще некуда. Создает бегущую строку парный тэг marquee.
<p><marquee>Здесь располагается Ваш замечательный текст.</marquee></p>
Выглядит это так:
Текст можно заставить двигаться в любую сторону. Для этого используется оператор direction со значениями left, right, up или down. А чтобы изменить скорость движения текста - используется оператор scrolldelay со значениями от 0 до 1000. Значение 0 - самое быстрое движение текста.
Теперь попытаемся все суммировать. Создадим класс css, где укажем размеры блока движущегося текста:
.go {
margin-left: 100px; /*Отступ слева*/
padding: 5px; /*Отступ вокруг текста*/
width: 250px; /*Ширина блока*/
height:100px; /*Высота блока*/
border: solid 1px black; /*Рамка*/
color: red; /*Цвет текста*/
}
Предположим, что текст должен двигаться вверх в окне, размерами 250 на 100 пикселей и обрамленную рамкой. Ширину блока и рамку мы установили в стилях, а вот высоту нужно установить в html-коде. Для того, чтобы останавливалось движение при наведении курсора, сюда добавлены параметры onmouseover=this.stop() и onmouseout=this.start(). В нужном месте пишем следующий код:
<div class="go"><marquee behavior="scroll" scrolldelay="200" direction="up" onmouseover=this.stop() onmouseout=this.start()>Здесь вставляете нужный Вам текст.</marquee></div>
И оп-ля. Получаем результат:
C таким же успехом можно перемещать и рисунки. Просто вместо текста вставляете рисунок. Ну например так:
<div class="go"><marquee scrolldelay="100" direction="left" onmouseover=this.stop() onmouseout=this.start()><img src="Путь к вашей картинке" width="468" height="100" alt=" "></marquee></div>
И вот что должно получиться:
В. Как сделать вывод текста телетайпом?
О. Здесь без скрипта не обойтись. Ниже приведен листинг самого скрипта. Нужный текст прописывается в самом теле скрипта (см.пример). Строки должны быть взяты в кавычки и разделятся запятой. Если необходимо выделить параграф, то строки разделяются пустыми кавычками.
<script language="javascript">
<!--
var tl = new Array(
"",
" Приветствую Вас, дорогие друзья!",
"",
" Здесь располагается первая строка.",
" Здесь располагается вторая строка.",
" Здесь располагается третья строка и т.д.",
"",
"",
" Мой сайт: http://shad-55.narod.ru"
);
var speed = 60;
var index = 0; text_pos = 0;
var str_length = tl[0].length;
var contents, row;
function type_text()
{
contents = '';
row = Math.max(0, index-13);
while (row<index) contents += tl[row++] + '\r\n';
document.forms[0].elements[0].value = contents + tl[index].
substring(0,text_pos) + "_";
if (text_pos ++== str_length)
{
text_pos = 0;
index++;
if (index != tl.length)
{
str_length = tl[index].length;
setTimeout("type_text()", 100);
}
} else
setTimeout("type_text()", speed);
}
//-->
</script>
Здесь показан код окна, в который будет выводиться Ваш текст. С размерами и фоном поиграйтесь сами.
<center>
<form>
<textarea rows="15" cols="80" style="width: 500; border: 1px solid; background-color:#EAF2F4;">
</textarea>
</form>
</center>
Здесь запускается сам скрипт, код которого вставляется в необходимом вам месте
<script>
type_text()
</script>
У Вас должно получится так:
Правда красиво? Пользуйтесь... Для перезапуска нажмите F5.
В. Как выделить первую букву параграфа?
О. Чтобы выделить первую букву - Создать буквицу, испльзуется псевдостиль first-letter. Для начала создадим класс стиля для буквицы.
.bukvica:first-letter { /*Стиль для буквицы*/
font-family: Arial, serif; /*Шрифт буквицы*/
color: red; /*Цвет буквицы*/
font-size: 150%; /*Размер буквицы*/
font-style: italic; /*Наклонный шрифт*/
font-weight: bold; /*Жирный шрифт*/
}
В нужном месте применяем стиль для параграфа следующим образом:
<p class=bukvica>Здесь располагается текст, в котором мы хотим выделить первую букву.</p>У Вас должно получиться так:
Создать сайт ПРОСТО, с точки зрения его написания. Посетите сайт Новичок для новичков и Вы убедитесь в этом сами.
В. Как изменить внешний вид курсора?
О. Вид курсора определяется с помощью CSS свойства cursor. В нужном месте необходимо определить стиль курсора в тэге <span>.
Ниже приведен список всех курсоров, доступных в css. Наведите курсор мыши на определенную строку, чтобы увидеть как изменяется курсор. Можно также определить пользовательский курсор, который Вы придумали и нарисовали сами. Укажите в стилях путь к вашему файлу курсора. Файл курсора может быть в формате cur, ani (только IE).
- <span style="cursor: default">По умолчанию</span>
- <span style="cursor: url(cursor.cur), auto">Пользовательский</span>
- <span style="cursor: auto">Авто</span>
- <span style="cursor: crosshair">Крест</span>
- <span style="cursor: pointer">Палец</span>
- <span style="cursor: move">Перемещение</span>
- <span style="cursor: e-resize">Горизонтальный</span>
- <span style="cursor: ne-resize">Диагональный вправо</span>
- <span style="cursor: nw-resize">Диагональный влево</span>
- <span style="cursor: n-resize">Вертикальный</span>
- <span style="cursor: se-resize">Диагональный влево</span>
- <span style="cursor: sw-resize">Диагональный вправо</span>
- <span style="cursor: s-resize">Вертикальный</span>
- <span style="cursor: w-resize">Горизонтальный</span>
- <span style="cursor: text">Текстовый</span>
- <span style="cursor: wait">Ожидание</span>
- <span style="cursor: help">Справочный</span>
В. Как создать простую 3D кнопку средствами css?
О. Простую 3D кнопочку сделать довольно просто. Вначале пишем следующие стили для ссылок.
Примечание: Чтобы данные стили не мешали работе основных ссылок, я определил для ссылок кнопок класс button
a.button, a.button:wisited {
margin-left: 280px; /*Отступ кнопки слева*/
color:#000; /*Цвет надписи на кнопке*/
display: block; /*Делаем кнопку блочным элементом*/
border:1px solid; /*Одинарная рамка толщиной в 1 пиксель*/
border-color: #aaa #000 #000 #aaa; /*Цвет рамки - верхняя и левая - темно-серые,
а правая и нижняя - черные*/
text-decoration:none; /*Отменяем подчеркивание ссылки*/
width:8em; /*Ширина кнопочки*/
text-align:center; /*Центровка текста кнопки*/
height:2em; /*Высота кнопочки*/
line-height:2em; /*Сдвиг надписи по вертикали сверху*/
background:#7FFF00; /*Фон ненажатой кнопки*/
font-weight:bold /*Жирный шрифт надписи*/
}
a.button:hover {
color:#000; /*Цвет надписи на нажатой кнопке*/
background:#00FF00; /*Фон нажатой кнопки*/
position:relative; /*Задаем относительное свободное позиционирование*/
top:1px; left:1px; /*Сдвигаем фон сверху и слева на 1 пиксель*/
border-color: #000 #aaa #aaa #000} /*Цвет рамки - верхняя и левая - черные,
а правая и нижняя - темно-серые*/
}
Теперь в нужном месте прописываем следующий html-код:
<a href="#" class="button">Название вашей кнопочки</a>
Получилась вот такая красота!
Ваша кнопочкаВ. Как изменить размеры и цвет линии средствами css?
О. Изменить размеры и цвет линии также просто. Но необходимо учитывать следующее: По умолчанию в Opera и Mozilla вокруг линии существует рамка, а в IE рамки нет. Для того, чтобы в разных браузерах линия выводилась одинаково, необходимо устанавливать свойство рамок. К тому же по умолчанию в Opera рамки плотно прижаты друг к другу без внутренней области и для того, чтобы изменить цвет линии необходимо указывать кроме цвета фона этой области еще и ее высоту (толщину).
Для примера создадим линию длиною в 70%, толщиною в 6 пикселей, голубого цвета и без рамки.
hr {
color:#00BFFF; /*Цвет линии*/
background-color:#00BFFF; /*Цвет линии для Opera и Mozilla*/
height: 6px; /*Толщина линии*/
width: 70%; /*Длина линии*/
border-width:0px; /*Убираем рамку вокруг элемента */
}
В нужном месте вставляйте код <hr> и вуаля... получаете желаемый результат.
В IE линия позиционируется прижатой к левой стороне. Для того, чтобы разместить линию по центру, возьмите тэг <hr> в двойной тэг<center>
Если вам необходима вокруг линии рамочка, измените ее стиль, например так:
border:3px solid red; /*толщина 3 пикселя, одинарная, красная*/
К сожалению в IE до 7 верси включительно и в Mozilla Firefox рамочка вокруг линии не получается. Окрашивается только сама линия.
В. Как средствами css сделать у рамок закругленные углы?
О. Иногда возникает необходимость сделать у рамочек закругленные края. Можно подставить в углах, нарисованные в Фотошопе, специальные уголки. А можно реализовать эту идею исключительно средствами css. Пишем следующие стили и попробуем в них разобраться.
.konteyner { /*Общие стили для элемента*/
display: block; /*Делаем элемент блочным*/
padding: 0; /*Обнуляем внутренние отступы*/
margin: 0 auto; /*Центрируем элемент*/
width: 33%; /*Определяем общую длину элемента*/
margin-bottom:25px; /*Задаем отступ снизу*/
position:relative; /*Задаем относительное свободное позиционирование*/
}
b.top b, b.bottom b{ /*Стили для тэга b*/
display:block; /*Делаем элемент блочным*/
overflow: hidden; /*Скрыть все, что выходит за пределы*/
}
.r1, .r2, .r3, .r4 { /*Стили для радиусов*/
border-left:1px solid #333; /*Толщина рамки и цвет закругления слева*/
border-right:1px solid #333; /*Толщина рамки и цвет закругления справа*/
height:1px; /*Толщина рамки*/
}
.r1{
background:#333; /*Цвет верхней и нижней линии рамки*/
margin:0px 5px; /*Позиционирование фона закругления рамки*/
}
.r2{
background:#FFE4C4; /*Цвет фона радиуса закругления*/
margin:0px 3px; /*Позиционирование фона закругления рамки*/
border-width:0px 2px; /*Длина линии закругления*/
}
.r3{
background:#FFE4C4; /*Цвет фона радиуса закругления*/
margin:0px 2px; /*Позиционирование фона закругления рамки*/
}
.r4{
background:#FFE4C4; /*Цвет фона радиуса закругления*/
margin:0px 1px; /*Позиционирование фона закругления рамки*/
height:2px; /*Высота рамки до закругления*/
}
.txtblock { /*Текстовый блок*/
margin: 0px; /*Обнуляем внешний отступ*/
padding: 5px; /*Устанавливаем внутренний отступ*/
border:solid #333; /*Цвет левой и правой рамки*/
border-width:0px 1px 0px 1px; /*Позиционирование рамки*/
background:#FFE4C4; /*Фон текстового блока*/
color: red; /*Цвет шрифта текстового блока*/
}
Теперь в нужном Вам месте вставляем следующий код:
<div class="konteyner">
<b class="top">
<b class="r1"></b> <b class="r2"></b> <b class="r3"></b> <b class="r4"></b> </b>
<div class="txtblock">
<p>;Содержимое текстового блока</p>
</div>
<b class="bottom">
<b class="r4"></b> <b class="r3"></b> <b class="r2"></b> <b class="r1"></b> </b>
</div>
Вот как должно получиться. Красота-а-а-а...
Содержимое Вашего текстового блока
Если кому интересна глубина понимания техники закругления уголков - вот ссылка себе в ущерб: Создание закругленных углов.
В. Как сделать иконку для сайта, чтобы она отражалась в поисковиках?
О. Для привлекательного и запоминающего вида сайта можно создать иконку, которая будет отображаться во вкладках браузеров, в заголовке страниц и в поисковике Яндекс. Ну, например, так:
Иконка создается в любом графическом редакторе и сохраняется с размерами 16х16 пикселей и с именем favicon.ico.
Затем иконка переносится на сайт в корневую директорию. Теперь, чтобы иконка была видна, необходимо указать к ней путь и свойства. Между тэгами <head> и </head> необходимо вставить такую строку <link rel="icon" href="Абсолютный путь к вашей иконке" type="image/x-icon">. С этого момента иконка будет видна и в поисковике, и во вкладках браузеров, и в заголовке страницы, где эта иконка прописана. В принципе, иконки на разных страницах вашего сайта могут быть разные. Нужно только, чтобы к ней был прописан правильный путь. Существуют программы, которые автоматически конвертируют любую картинку в иконку с размерами 16х16 пикселей. Одну из таких программ можно найти и скачать во вкладке Полезные программы для сайтов.
В. Как сделать цифровые ссылки на страницы одной тематики?
О.Бывает что по одной тематике у Вас несколько страниц и необходимо между ними реализовать связь. Сделать это можно, используя цифровые ссылки. Например у нас есть шесть страниц и нам необходимо организовать переход на любую из них или последовательно страницу за страницей.
Пишем следующие стили:
.page, .num { /*Классы для текстовых и цифровых ссылок*/
text-align: center; /*Центровка надписи*/
color:#5A5B5C; /*Цвет надписи*/
background:#ECF6FE; /*Фон надписи*/
padding:2px 4px 3px 4px; /*Отступы*/
}
.page a, .num { /*Для ссылок этих классов*/
text-decoration:none /*Ссылки без подчеркивания*/
}
.num { /*Класс цифровых ссылок*/
width: 10px; /*Ширина*/
border:1px solid #B0C8EA; /*Рамка*/
}
.activ { /*Класс текущей страницы*/
color:#999999; /*Цвет надписи*/
border:1px solid #999999; /*Рамка*/
background:#fff; /*Фон*/
padding:2px 4px 3px 4px; /*Отступы*/
width: 8px; /*Ширина*/
}
.pagin { /*Класс для строки текущей страницы*/
padding-bottom:7px; /*Отступ снизу*/
font:bold 8pt Verdana,Arial,Helvetica,sans-serif; /*Шрифт*/
color:#666666; /*Цвет шрифта*/
text-align: center; /*Центровка строки*/
}
Теперь вставляем в нужном месте следующий код:
<div class=page>
<a href="Путь к вашей страничке.html" title="Предыдущая">Предыдущая</a>
<span class=page1>
<a href="Путь к вашей страничке.html" title="1">1</a>
</span>
<span class=activ>
2
</span>
<span class=page1>
<a href="Путь к вашей страничке.html" title="3">3</a>
</span>
...
<span class=page1>
<a href="Путь к вашей страничке.html" title="6">6</a>
</span>
<a href="Путь к вашей страничке.html" title="Следующая">Следующая</a>
</div>
<div class=pagin>Страница 2 из 6</div>
Должно получиться вот так:
Второй, более профессиональный вариант:
div.newpag {
padding: 3px 3px 3px 3px;
margin: 3px;
text-align: center
}
div.newpag a {
border: #dedfde 1px solid;
padding: 2px 6px 2px 6px;
background-position: 50% bottom;
color: #0061de;
margin-right: 3px;
text-decoration: none
}
div.newpag a:hover {
border: #000 1px solid;
background-image: none;
color: red;
background-color: #c8f0fe
}
div.meneame a:active {
border: #000 1px solid;
background-image: none;
color: #fff;
background-color: #0061de
}
div.newpag span.current {
padding: 2px 6px 2px 6px;
font-weight: bold;
color: gray;
margin-right: 3px;
}
div.newpag span.disabled {
padding: 2px 6px 2px 6px;
color: #adaaad;
margin-right: 3px;
}
.pagin {
padding-bottom:7px;
font:bold 8pt Verdana,Arial,Helvetica,sans-serif;
color:#666666;
text-align: center;
}
А вот html код для аж 200 страниц, хотя их может быть и 1000:
<p>
<div class="flickr">
<a href="Путь к предыдущей странице">Предыдущая</a>
<a href="Путь к странице 1">1</a>
<span class="current">2</span>
<a href="Путь к странице 3">3</a>
<a href="Путь к странице 4">4</a>
<a href="Путь к странице 5">5</a>
<a href="Путь к странице 6">6</a>
<a href="Путь к странице 7">7</a>
...
<a href="Путь к странице 199">199</a>
<a href="Путь к странице 200">200</a>
<a href="Путь к следующей странице">Следующая</a>
</div>
</p><br>
<div class=pagin>Страница 2 из 200</div>
В. Как сделать всплывающую подсказку?
О.Чтобы сделать текст более информативным, в некоторых случаях необходимо вставлять подсказки. Один из способов вывода всплывающих подсказок приведен ниже:
.tooltip {
border-bottom: 1px dotted #000000; color: #000000; outline: none;
cursor: help; text-decoration: none;
position: relative;
}
.tooltip span {
margin-left: -999em;
position: absolute;
}
.tooltip:hover span {
border-radius: 5px 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
font-family: Calibri, Tahoma, Geneva, sans-serif;
position: absolute; left: 1em; top: 2em; z-index: 99;
margin-left: 0;
width: 250px;
}
.tooltip:hover img {
border: 0; margin: -10px 0 0 -55px;
float: left; position: absolute;
}
.tooltip:hover em {
font-family: Candara, Tahoma, Geneva, sans-serif;
font-size: 1.2em;
font-weight: bold;
display: block; padding: 0.2em 0 0.6em 0; }
.classic { padding: 0.8em 1em; }
.custom { padding: 0.5em 0.8em 0.8em 2em; }
* html a:hover { background: transparent; }
.classic {background: #FFFFAA; border: 1px solid #FFAD33; }
.critical { background: #FFCCAA; border: 1px solid #FF3334; }
.help { background: #9FDAEE; border: 1px solid #2BB0D7; }
.info { background: #9FDAEE; border: 1px solid #2BB0D7; }
.warning { background: #FFFFAA; border: 1px solid #FFAD33; }
В нужном месте вы можете вставить следующие коды:
Классическая подсказка
<a class="tooltip" href="#">Классическая подсказка<span class="classic">Здесь пишется текст подсказки</span></a>Критическое сообщение
<a class="tooltip" href="#">Критическое сообщение<span class="custom critical"><img src="Здесь указывается путь к сопутствующей картинке" alt="Ошибка" height="48" width="48" />Критическое сообщениеЗдесь пишется текст подсказки</span></a>Предупреждение
<a class="tooltip" href="#">Предупреждение<span class="custom warning"><img src="Здесь указывается путь к сопутствующей картинке" alt="Предупреждение" height="48" width="48" />ПредупреждениеЗдесь пишется текст подсказки</span></a>Информация
<a class="tooltip" href="#">Информация<span class="custom info"><img src="Здесь указывается путь к сопутствующей картинке" alt="Информация" height="48" width="48" />ИнформацияЗдесь пишется текст подсказки</span></a>Помощь
<a class="tooltip" href="#">Помощь<span class="custom info"><img src="Здесь указывается путь к сопутствующей картинке" alt="Помощь" height="48" width="48" />ПомощьЗдесь пишется текст подсказки</span></a>Пример
Наведите курсор мыши на надписи чтобы увидеть:
классическую подсказкуЗдесь пишется текст подсказки,
критическое сообщение
Критическое сообщениеЗдесь пишется текст подсказки,
помощь
ПомощьЗдесь пишется текст подсказки,
информация
ИнформацияЗдесь пишется текст подсказки
и предупреждение
ПредупреждениеЗдесь пишется текст подсказки.
