Задать вопрос

Нужны ли такие посты на хабре: Возможности СSS3 в одном тэге?

image Для одной CSS3 демки, которой я сейчас пишу tutorial для habrahabr.ru понадобилась иконка CSS3. Одним из свойст демки являтся отсутсвие какой-либо графики, поэтому вставлять ссылку на иконку показалось некошерным. Поэтому было решено изобразить ее cредствами СSS ну и минимом HTML.

Минимумом HTML оказался один тэг — <div id="css3icon />

A код СSS оказался демонстрацией новых свойств CSS3, он внутри.
Поэтому быть может маленький челендж для всех,
попробовать проиллюстрировать возможности СSS3 в одном тэге.



Для придумывания как понадобилось совсем немного времени.
То что получилось в один тэг на самом деле не планировалось, но зато
натянуть градиент и отбросить адекватную тень на подложку не получилось.
Больше времени ушло на попытки устраненит артефакты вылезшие во всех браузерах.

Cобственно пощупать CSS код можно здесь codepen.io/rassadin/details/vkBDC
Собственно сам листинг в конце статьи.

Пользоваться можно просто включением тега <div id="css3icon /> и подключением стиля. Изменение размеров осуществляется установкой значения font-size для #css3icon.

Исходник лежит на github — www.github.com/rassadin/css3icon/
или можно сразу линковаться так
<link href="http://rassadin.github.com/css3icon/css3icon-blue.css" rel="stylesheet" type="text/css" />


Чуть позже, попробовав найти делал ли кто-нибудь подбное, я натолкнулся на человека который собирает такие «однотеговые» иконки и отправил ему свою Всю коллекцию иконок можно посмотреть на one-div.com, и надо сказать некоторые поражают —, например, иконка Android…

Теперь собственно код, а потом собственно комментарии, вопросы и ваши идеи с одним тегом.

#css3icon {
	outline:solid 1px transparent;
	display:inline-block;
	position:relative;
	height:0.8em; width:0.8em;
	background:transparent;
	color:transparent;
	line-height:0.8em;
	overflow:visible;
	box-shadow:
 0.8em 0 0 #38c, 1.4em 0 0 #38c, 2em 0 0 #38c, 2.6em 0 0 #38c, 3.2em 0 0 #38c, 3.6em 0 0 #38c, 4em 0 0 #38c, 4em .65em 0 #38c, 0.8em 1.3em 0 #38c, 1.4em 1.3em 0 #38c, 2em 1.3em 0 #38c, 2.6em 1.3em 0 #38c, 3.2em 1.3em 0 #38c, 3.6em 1.3em 0 #38c, 4em 1.3em 0 #38c, 4em 1.9em 0 #38c, 0.8em 2.6em 0 #38c, 4em 2.6em 0 #38c;
	transform: skewX(-12deg);
	-webkit-transform: skewX(-12deg);
	-ms-transform: skewX(-12deg);	
}
#css3icon:before {
	position:absolute;
	content:''; 
	display:block;
	height:0.8em; width:2em;
	margin:3.4em 0 0 0.8em;
	background:#38c;
	transform: skew(-1deg,18.4deg);	
	transform-origin: 100% 100%;
	-webkit-transform: skew(-1deg,18.4deg);	
	-webkit-transform-origin: 100% 100%;
	-ms-transform: skew(-1deg,18.4deg);	
	-ms-transform-origin: 100% 100%;
	border-right:solid 1px #38c;
}
#css3icon:after {
	position:absolute;
	content:''; 
	display:block;
	height:0.8em; width:2em;
	margin:3.4em 0 0 2.8em;
	background:#38c;
	transform: skew(1deg,-18.4deg);	
	transform-origin: 0% 100%;
	-webkit-transform: skew(1deg,-18.4deg);	
	-webkit-transform-origin: 0 100%;
	-ms-transform: skew(1deg,-18.4deg);	
	-ms-transform-origin: 0 100%;
}
  • Вопрос задан
  • 5434 просмотра
Подписаться 17 Оценить Комментировать
Решения вопроса 1
toptalo
@toptalo
undefined
Нужны.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Только ради фана. Логичнее было бы использовать SVG.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Очень интересный подход, так же любые иконки можно нарисовать. Кода даже меньше, чем svg, и использовать просто. Вот бы редактор, который бы выдавал результат в виде такого css
Ответ написан
Комментировать
LegoMushroom
@LegoMushroom
Как насчет ховера у такой иконки, занимались?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы