Ссылки в css

Стили для общей части документа.

Сделать рамки для содержания существенно проще, чем может казаться на первый взгляд. Нужно только хорошо знать основные правила CSS3, и вы легко сможете делать подобные элементы дизайна не используя никаких изображений. Ниже приводится список общих правил для демонстрационного документа:

@charset "utf-8";



@import url(reset.css);



/******************************************/

/*** Стили для демонстрационной страницы **/

/******************************************/

body{

	background: url(background.png);

}



.wrapper{

	width: 960px;

	overflow: hidden;

	margin: auto;

	padding: 60px 0 100px;

}



.set_item{

	width: 400px;

	float: left;

}



.clear{

	clear:both;

}

h1 {

	text-align:center;

}

/*** Конец общей секции ***/

Способ 1. Строгое структурирование

Под словами «четкое разделение» я подразумеваю разделение названных частей на два отдельных файла. Вследствие такой реализации девелоперам легче отлавливать баги и комфортнее работать. К тому же отдельный документ с прописанными стилями можно подключать к разным веб-сервисам.

В этом варианте подключения css-правил происходит через специальный тег <link>. Этот элемент может быть объявлен только в контейнере <head>.

В нем нужно указать минимум 2 параметра: rel, который описывает связь между рабочим файлом и документом, путь к которому указан в href, и href – путь к документу.

Как правило, стилевые параметры сохраняют в документе с расширением .css.

Для наглядности я привел пример такого подключения стилей. Хочу отметить важный момент: для подключения css-файла в атрибуте rel всегда пишется «stylesheet».

Для начала создадим структуру веб-ресурса.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Внешний</title>
  <link rel="stylesheet" href="style.css">
 </head>
 <body>
   <article>
<h2>Яркий заголовок</h2>
<p>Сенсационное содержание</p>
</article>
 </body>
</html>

Теперь оживим созданную страницу, подключив к ней документ со списком стилей. Вот строка, которая за это отвечает:

Создаем в блокноте файл с нужным расширением и называем его style.css. Заметьте, что имя должно быть идентичным с наименованием, указанным в теге <link>.

1
2
3
4
5
6
7
8
9
10
h2{
 color: #FF0000;
 text-shadow: 7px -3px 5px;
 border-bottom: 4px double #FF0000;
}
p {
 font-size: 19px;
 font-family: Calibri;
 margin-left: 35px;
}

Связывание таблиц стилей с HTML-кодом

Подключение с использованием тега <link>

Самым распространенным методом добавления (связывания) внешней таблицы стилей с документом является использование тега <link>.
Элемент <link> определяет связь между документом и внешним ресурсом.

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

HTML тег <link> имеет следующий синтаксис:

<link  rel = "stylesheet" href =  "styles.css"> /* синтаксис HTML 5 */
<link  rel = "stylesheet" href =  "styles.css" type =  "text/css"> /* синтаксис HTML 4.01 */

Сразу хочу обратить ваше внимание на то, что атрибут type, который определяет MIME-тип, используемого файла (в нашем случае текстовый файл таблиц стилей) не является обязательным в HTML 5.
Для всех типов документов в HTML 5 необходимы лишь два обязательных атрибута:

  1. rel = «stylesheet» — определяет отношение между текущим документом и связанным документом на который ведёт ссылка (в нашем случае таблица стилей).
  2. href — задает URL-адрес местонахождения внешнего файла. Адрес может быть как относительный, так и абсолютный.

Подключение с использованием правила @import

CSS правило @import используется для импорта содержимого CSS файла в текущую таблицу стилей. Это правило должно предшествовать всем другим видам правил, за исключением правила @charset, которое задает кодировку символов, используемую в таблице стилей.

Внешняя таблица стилей может быть подключена к веб-странице с помощью HTML тега <link>, или с использованием встроенного в CSS правила @import, которое по-большому счету делает то же самое. Оба варианта позволяют присоединить таблицы стилей к веб странице.

Основное отличие правила @import заключается в том, что с использованием этого правила вы можете присоединить одну внешнюю таблицу стилей к другой.

Импортирование к внешней таблице стилей

Давайте рассмотрим пример, который позволит нам присоединить несколько таблиц стилей к одной внешней таблице стилей:

/* Содержимое файла anyname.css */
@import url("color.css"); /* импортируем в основной файл содержимое первого файла css */
@import url("fonts.css"); /* импортируем в основной файл содержимое второго файла css */
/* стили, которые находятся в основном файле css */
селектор {
свойство: значение;	
}
...
/* Конец содержимого файла anyname.css */

Чтобы присоединить один внешний файл таблиц стилей к другому, необходимо внутри файла к которому добавляется содержимое объявить
правило @import и указать URL путь к этому файлу. Чтобы задать путь необходимо после правила @import указать url(«path/to/file»).
При этом путь, который указывается в круглых скобках может быть как абсолютным, так и относительным.
Информацию о том как задавать абсолютные и относительные пути вы можете узнать в статье учебника HTML 5 «HTML ссылки».

Как и с помощью нескольких тегов <link> вы можете разместить несколько правил @import, чтобы присоединить необходимое количество внешних таблиц стилей.

Обращаю Ваше внимание, что правила @import всегда необходимо указывать перед стилями CSS, иначе таблицы стилей будут проигнорированы браузерами и не импортированы в файл

Импортирование к внутренней таблице стилей

Кроме того, с использованием правила @import существует возможность привязать внешние таблицы стилей к внутренней таблице стилей документа. Для этого необходимо объявить правило или правила сразу после открывающего тега <style>:

<!DOCTYPE html>
<html>
<head>
	<title>Импортирование файла к внутренней таблице стилей</title>
<style>
@import url("color.css"); /* импортируем к внутренней таблице стилей документа содержимое первого файла css */
@import url("fonts.css"); /* импортируем к внутренней таблице стилей документа содержимое второго файла css */
h1 {
text-align: center; /* выравниваем заголовок по центру */
color: red; /*устанавливаем цвет текста красный */
}
</style>
</head>
<body>
	<h1>Заголовок первого уровня.</h1>
	<p>Абзац для примера.</p>
</body>
</html>

Прошу Вас учесть тот момент, что правило @import увеличивает число соединений с сервером, поскольку файл, на который вы ссылаетесь, тоже нужно скачать и проанализировать. Исходя из правил и рекомендаций PageSpeed Insight (Google), связанных с оптимизацией страниц, рекомендуется избегать применения правила @import.

Кроме того, в некоторых случаях правило @import может замедлять загрузку таблиц стилей, либо загружать их не в заданном порядке, что может быть критично для конечного отображения конкретной страницы.

Как сделать красивую кнопку в HTML и CSS?

У каждого из нас свое представление о красоте: кто-то считает красивым закат на берегу моря, а кто-то — Ниссан Жук. О вкусах, как говорится, не спорят.

В моем представлении красивая кнопка — это кнопка, которая обладает следующими качествами:

Является интерактивной (т.е. реагирует на взаимодействие с ней пользователем). Отличительной чертой кнопок, является то, что их можно нажимать, следовательно у кнопки должно быть несколько состояний: дефолтное (состояние «покоя»), нажатое и «ховер» (при наведение курсора)

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

Выглядит привычно и современно. Ваши посетители постоянно взаимодействуют с интерфейсами других сайтов и приложений. Поэтому они привыкли, что кнопки выглядят именно так, а не иначе

Если, в попытке привлечь их внимание, вы будете изобретать велосипед, пользователи могут просто не понять, что это кнопка

Кроме того, тренды в дизайне интерфейсов и технологии их создания постоянно меняются, и за ними нужно успевать.

Если вы хотите узнать как сделать кнопку объемной или с эффектом «стекляшечности»,  как сделать картинку кнопкой и т.д. — почитайте статьи по дизайну интерфейсов за 2005-2009 гг. :)

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

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

Для вывода иконок в кнопках, да и, в общем-то, везде я использую замечательный шрифт FontAwesome, а для текста — бесплатный шрифт Roboto, с которым одинаково хорошо смотрятся как кириллические, так и латинские символы. 

Теперь добавим интерактивности: при наведении кнопки будут слегка подсвечиваться, а при нажатии затемняться (как бы утапливаться).

Вот и все! Две симпатичные кнопки готовы.

При наличии желания и времени можно их дополнить плавными анимированными переходами. Вот несколько примеров:

А теперь обещанный бонус для тех кто дочитал этот пост до конца.

Синтаксис CSS border

Где:

  • border-width — толщина рамки. Можно задавать в пикселях (px) или воспользоваться стандартными значениями thin, medium, thick (они отличаются только шириной в пикселях)
  • border-style — стиль выводимой рамки. Может принимать следующие значения
    • none или hidden — отменяет границу
    • dotted — рамка из точек
    • dashed — рамка из тире
    • solid — простая линия (применяется чаще всего)
    • double — двойная рамка
    • groove — рифленая 3D граница
    • ridge, inset, outset — различные 3D эффекты рамки
    • inherit — применяется значение родительского элемента
  • border-color — цвет рамки. Можно задавать с помощью конкретного названия цвета или в формате RGB (см. названия html цветов для сайта)

Примечание

Значения в свойстве CSS border можно задавать в любой последовательности. Чаще всего используют последовательность «толщина стиль цвет».

Box 5

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

/* В данном селекторе мы задаем ширину, высоту, обводку, позиционирование, фоновый цвет, цвет и размер теней */

.box5{

	margin: 50px;

	width: 300px;

	padding: 0 0 1px 0;

	position:relative;

	background: #f3f3f3;

	background: -webkit-gradient(linear, 0% 20%, 0% 92%, from(#f3f3f3), to(#fff), color-stop(.1,#f3f3f3));

	background: -moz-linear-gradient(0 0 270deg, #f3f3f3, #f3f3f3 10%, #fff);

	border-top: 1px solid #ccc;

	border-right: 1px solid #ccc;

	-webkit-border-bottom-right-radius: 60px 60px;

	-webkit-border-bottom-left-radius: 60px 60px;

	-moz-border-radius-bottomright: 60px 60px;

	-moz-border-radius-bottomleft: 60px 60px;

	border-bottom-left-radius:60px 60px;

	border-bottom-right-radius: 60px 60px;

	-webkit-box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.2);

	-moz-box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.2);

	box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.2);

}



/* Это левый загиб */

.box5:before{

	content:'';

	width: 25px;

	height: 20px;

	background: white;

	position: absolute;

	bottom:0; right:0;

	background: -webkit-gradient(linear, 0% 20%, 50% 40%, from(#fff), to( #eee), color-stop(.1,#fff));

	background: -moz-linear-gradient(0 50% 90deg, #fff, #fff 10%, #eee);

	-webkit-border-bottom-right-radius: 30px;

	-moz-border-radius-bottomright: 30px;

	border-bottom-right-radius: 30px;

	-webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	-moz-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	-webkit-transform: rotate(-20deg)

			   skew(-40deg,-3deg)

			   translate(-13px,-13px);

	-moz-transform: rotate(-20deg)

			skew(-40deg,-3deg)

			translate(-13px,-13px);

	-o-transform: rotate(-20deg)

		      skew(-40deg,-3deg)

		      translate(-13px,-13px);

	transform: rotate(-20deg)

	 	   skew(-40deg,-3deg)

		   translate(-13px,-13px);

}



/* В данном псевдо классе определяется тень для левого загиба */

.box5:after{

	content: '';

	z-index: -10;

	width: 100px;

	height: 100px;

	position:absolute;

	bottom:0;

	right:0;

	background: rgba(0, 0, 0, 0.2);

	display: inline-block;

	-webkit-box-shadow: 20px 20px 8px rgba(0, 0, 0, 0.2);

	-moz-box-shadow: 20px 20px 18px rgba(0, 0, 0, 0.2);

	box-shadow: 20px 20px 8px rgba(0, 0, 0, 0.2);

	-webkit-transform: rotate(0deg)

			   translate(-45px,-20px)

			   skew(20deg);

	-moz-transform: rotate(0deg)

			translate(-45px,-20px)

			skew(20deg);

	-o-transform: rotate(0deg)

		      translate(-45px,-20px)

		      skew(20deg);

	transform: rotate(0deg)

		   translate(-45px,-20px)

		   skew(20deg);

}



/* Здесь опредляется нижняя правая тень */

.fold_box5{

	z-index: -10;

	width: 50px;

	height: 50px;

	position:absolute;

	bottom:0; left:0;

	-webkit-box-shadow: -20px 20px 8px rgba(0, 0, 0, 0.2);

	-moz-box-shadow: -20px 20px 18px rgba(0, 0, 0, 0.2);

	box-shadow: -20px 20px 8px rgba(0, 0, 0, 0.2);

	-webkit-transform: rotate(0deg)

			   translate(40px,-20px)

			   skew(-20deg);

	-moz-transform: rotate(0deg)

			translate(40px,-20px)

			skew(-20deg);

	-o-transform: rotate(0deg)

		      translate(40px,-20px)

		      skew(-20deg);

	transform: rotate(0deg)

		   translate(40px,-20px)

		   skew(-20deg);

}



/* В данном селекторе мы делаем загиб с левой стороны */

.fold2_box5{

	content:'';

	width: 25px;

	height: 20px;

	background: white;

	position: absolute;

	bottom:0; left:0;

	background: #fff;

	background: -webkit-gradient(linear, 0% 20%, 50% 80%, from(#fff), to( #eee), color-stop(.1,#fff));

	background: -moz-linear-gradient(0 50%, #fff, #fff 10%, #eee);

	-webkit-border-bottom-right-radius: 30px;

	-moz-border-radius-bottomright: 30px;

	border-bottom-right-radius: 30px;

	-webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	-moz-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.3);

	-webkit-transform: rotate(103deg)

			   skew(-3deg,-40deg)

			   translate(-13px,-15px);

	-moz-transform: rotate(103deg)

			skew(-3deg,-40deg)

			translate(-13px,-15px);

	-o-transform: rotate(103deg)

		      skew(-3deg,-40deg)

		      translate(-13px,-15px);

}



Создаем закруглённые уголки с помощью CSS 3

Одно из наиболее ожидаемых свойств CSS3, несомненно, свойство border-radius. С помощью свойства border-radius можно создавать, такие популярные в последнее время, прямоугольники с закругленными углами, исключительно средствами CSS, не используя никаких изображений.

Кроссбраузерная совместимость.

К сожалению, CSS3 еще не поддерживается всеми браузерами. Свойство border-radius поддерживается Firefox (начиная с версии 3.0), Safari (с версии 3.1) и Chrome (с самой первой версии), но оно не поддерживается Internet Explorer и Opera (будет реализовано в Opera 10).

Так как CSS3 еще не является стандартом, Вы должны добавлять префикс для свойства border-radius чтобы оно работало в браузерах, которые его поддерживают. Если Вы хотите, чтобы оно работало в Firefox необходимо написать в стилях  -moz-border-radius, для Safari/Chrome это свойство будет иметь такой вид — -webkit-border-radius.

Имейте ввиду, что, хотя Firefox, Сафари и Хром поддерживают это свойство, они реализуют его немного различными методами.  Я сначала покажу Вам, как оно реализовано Firefox и затем объясню различия в Safari и Chrome.

Для начала создадим простой блок, для которого мы и будем применять свойство border-radius.

<body><div></div></body>

В CSS зададим для него высоту, ширину и цвет фона:

#box { width:590px; height:100px; background-color:#6B86A6; } 

Добавляем свойство border-radius:

Свойство border-radius объявляется подобно свойствам margin и padding. Вы можете использовать как краткую запись этого свойства для всех четырёх углов прямоугольника, так и отдельно для каждого угла. При краткой записи указывается одно значение для каждого угла:

#box { -moz-border-radius: 20px; }

Теперь все четыре угла будут иметь радиус 20px:

Вы также можете указать два значения, первое из которых будет определять радиус для верхнего левого и нижнего правого угла, а второе — для верхнего правого и нижнего левого:

#box { -moz-border-radius:20px 40px; }

Если Вы указываете три или четыре значения, они будут применяться в следующем порядке — верхний левый угол, верхний правый угол, нижний правый угол и нижний левый угол.

#box { -moz-border-radius:10px 20px 30px 40px; } 

Объявляем свойство border-radius для каждого угла

Если вы хотите использовать это свойство только для одного угла, то достаточно добавить соответствующее окончание к свойству:

  • -moz-border-radius-topleft для верхнего левого угла;
  • -moz-border-radius-topright для верхнего правго угла;
  • -moz-border-radius-bottomright для нижнего правого угла;
  • -moz-border-radius-bottomleft для нижнего левого угла;

Горизонтальный и вертикальный радиус

#box { -moz-border-radius-topleft: 30px 15px; } 

Как Вы можете видеть на картинке верхний левый угол имеет немного «скошенный» вид. Это потому что эти два значения определяют горизонтальный и вертикальный радиус соответственно. Когда используется одно значение браузер интерпретирует его как для горизонтального, так и для вертикального радиуса.

При краткой записи этого свойства значения для горизонтального и вертикального радиуса разделяются слэшем:

#box { -moz-border-radius: 10px 20px 30px 40px / 5px 10px 15px 20px; }

Использование свойства border-radius в Safari и Chrome.

Safari и Chrome используют немного другой синтаксис, основным отличием является использование префикса -webkit, вместо -moz:

  • -webkit-border-top-left-radius для верхнего левого угла;
  • -webkit-border-top-right-radius для верхнего правого угла;
  • -webkit-border-bottom-right-radius для нижнего правого угла;
  • -webkit-border-bottom-left-radius для нижнего левого угла;

При использовании краткой записи необходимо иметь ввиду, что её можно использовать только когда значения для всех углов равны, если значения разные, то необходимо указывать свойства для каждого угла.

Этот код не будет работать в Safari и Chrome:

#box { -webkit-border-radius: 10px 20px 30px 40px; }  

Правильный код будет выглядеть так:

#box { -webkit-border-top-left-radius: 10px;    -webkit-border-top-right-radius: 20px;    -webkit-border-bottom-right-radius: 30px;    -webkit-border-bottom-left-radius: 40px; }

Горизонтальный и вертикальный радиус в Safari и Chrome.

В Safari и Chrome можно также указывать горизонтальный и вертикальный радиус:

#box { -webkit-border-top-left-radius: 30px 15px; }

При краткой записи можно указывать горизонтальный и вертикальный радиус для всех углов прямоугольника только если эти значения одинаковые для каждого угла. Также не требуется использование слэша:

#box { -webkit-border-radius: 30px 15px; }

Примеры.

Источник

Если у Вас возникли вопросы, то для скорейшего получения ответа рекомендуем воспользоваться нашим форумом

Внешняя таблица стилей

Внешняя таблица стилей хранится в отдельном файле с расширением CSS. Это самый эффективный способ, т. к. он полностью отделяет правила форматирования от ваших HTML-страниц. Он также позволяет легко применять одни и те же правила ко многим страницам.
Отдельный файл с таблицей стилей прикрепляется к HTML-документу с помощью тега <link>. Это одинарный тег, который располагается внутри элемента <head>. Элемент должен использовать три следующих атрибута. В атрибуте href указывается абсолютный или относительный URL-адрес файла CSS. Атрибут rel определяет отношение между НТМL-страницей и связанным файлом. При создании ссылки на файл CSS он должен иметь значение stylesheet, показывающее, что присоединяемый таким образом документ содержит таблицу стилей. Атрибут type определяет тип документа, на который указывает ссылка. В нем должно быть указано значение text/css.

CSS, как и HTML, не является языком программирования. Это язык каскадных таблиц стилей, то есть он позволяет выборочно применять нужные стили к элементам в HTML-документах. Например, чтобы выбрать все элементы <p>, т.е. параграфы на HTML-странице и окрасить их текст в красный цвет, вы должны написать на CSS следующее:

Давайте поместим эти три строки CSS в новый файл в любом текстовом редакторе (например Notepad++), а затем сохраним файл как style.css в папке styles.

Чтобы применять CSS к нашему HTML-документу, вставьте следующую строку в шапку, то есть между тегами <head> и </head>:

Настройка размера, цвета и стиля рамки HTML-элемента с помощью CSS

Давайте теперь попрактикуемся в установке значений для рамки элемента. Свойство border позволяет устанавливать размер, цвет и стиль (solid, dashed, dotted, inset, outset) элемента HTML. Эти три параметра можно присвоить свойству border следующим образом:

Попробуйте вставить следующее выделенное объявление в styles.css, чтобы добавить вашему элементу сплошную черную рамку шириной пять пикселей:

Примечание: Вы можете стереть предыдущие объявления padding из предыдущего раздела и заменить их одним объявлением padding: 25px, чтобы набором правил было удобнее управлять.

Сохраните файл styles.css и перезагрузите index.html в браузере, чтобы проверить изменения. Теперь желтое поле должно иметь границу согласно значениям, которые вы установили в CSS правиле:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Попробуйте изменить значения, чтобы посмотреть, как они изменяют отображение элемента в браузере. Как и в случае с внутренними полями, вы также можете установить рамку только с одной стороны: это делается с помощью свойств border-right, border-left, border-top, border-bottom.

Создание рамки HTML

Рамку можно построить для каждого html элемента, не завися от того используется <h1>,<p>,<img>,<span> или другой тег. Но рамки блочных и встраиваемых элементов отличаются.

Если она встроена и заключена внутри тегов, т.е. html код, который отвечает за ее отображение находится в середине атрибута. В этом случае для html рамки, расположенной вокруг текста, следует прописывать внутренние отступы. Ширина блочных рамок, напротив, формируется согласно ширине блока, что требует ввода ограничений этого параметра.

Чтобы создать блочную рамку, вписав в нее текст, к данному селектору добавляется свойство border. Пример: если к тексту применим тег <p>, то следует установить определенный стиль.

<!-- HTML -->
<p>Рамка для текста с применением атрибута style со свойством border</p>
/* CSS */
p {
 border: 3px solid #9932CC; 
}

Необходимо учесть, что когда документ состоит из 2-3 или более абзацев, то вокруг каждого появится рамочное обрамление. В данном случае правильней применить тег <div> и установить для него стиль, а текст вставлять уже внутрь данной «конструкции».

Чтобы разместить текст в рамке html не обойтись без встроенных стилей

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: