Адаптивная сетка иконок
Суть очень проста. Просто меняйте размер окна браузера и сетка будет адаптироваться под ее размер.
Начнем с самого начала. Нужно написать структуру. Делать это будем с помощью списков.
HTML
А теперь напишем стили для придания формы, дизайна, плавности и адаптивности элементов.
CSS
Подключим иконический шрифт с нашими иконками.
Далее оформим наше меню
Все готово!
Начнем с самого начала. Нужно написать структуру. Делать это будем с помощью списков.
HTML
Код
<ul class="cbp-ig-grid">
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-shoe"></span>
<h3 class="cbp-ig-title">Squid voluptate</h3>
<span class="cbp-ig-category">Fashion</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-ribbon"></span>
<h3 class="cbp-ig-title">Mixtape lo-fi</h3>
<span class="cbp-ig-category">Design</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-milk"></span>
<h3 class="cbp-ig-title">Cosby sweater</h3>
<span class="cbp-ig-category">Lifestyle</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-whippy"></span>
<h3 class="cbp-ig-title">Commodo</h3>
<span class="cbp-ig-category">Food</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-spectacles"></span>
<h3 class="cbp-ig-title">Bitters kitsch</h3>
<span class="cbp-ig-category">Gadgets</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-doumbek"></span>
<h3 class="cbp-ig-title">Austin proident</h3>
<span class="cbp-ig-category">Music</span>
</a>
</li>
</ul>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-shoe"></span>
<h3 class="cbp-ig-title">Squid voluptate</h3>
<span class="cbp-ig-category">Fashion</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-ribbon"></span>
<h3 class="cbp-ig-title">Mixtape lo-fi</h3>
<span class="cbp-ig-category">Design</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-milk"></span>
<h3 class="cbp-ig-title">Cosby sweater</h3>
<span class="cbp-ig-category">Lifestyle</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-whippy"></span>
<h3 class="cbp-ig-title">Commodo</h3>
<span class="cbp-ig-category">Food</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-spectacles"></span>
<h3 class="cbp-ig-title">Bitters kitsch</h3>
<span class="cbp-ig-category">Gadgets</span>
</a>
</li>
<li>
<a href="#">
<span class="cbp-ig-icon cbp-ig-icon-doumbek"></span>
<h3 class="cbp-ig-title">Austin proident</h3>
<span class="cbp-ig-category">Music</span>
</a>
</li>
</ul>
А теперь напишем стили для придания формы, дизайна, плавности и адаптивности элементов.
CSS
Подключим иконический шрифт с нашими иконками.
Код
@font-face {
font-family: 'anyoldicon';
src:url('../fonts/anyoldicon/anyoldicon.eot');
src:url('../fonts/anyoldicon/anyoldicon.eot?#iefix') format('embedded-opentype'),
url('../fonts/anyoldicon/anyoldicon.woff') format('woff'),
url('../fonts/anyoldicon/anyoldicon.ttf') format('truetype'),
url('../fonts/anyoldicon/anyoldicon.svg#anyoldicon') format('svg');
font-weight: normal;
font-style: normal;
}
font-family: 'anyoldicon';
src:url('../fonts/anyoldicon/anyoldicon.eot');
src:url('../fonts/anyoldicon/anyoldicon.eot?#iefix') format('embedded-opentype'),
url('../fonts/anyoldicon/anyoldicon.woff') format('woff'),
url('../fonts/anyoldicon/anyoldicon.ttf') format('truetype'),
url('../fonts/anyoldicon/anyoldicon.svg#anyoldicon') format('svg');
font-weight: normal;
font-style: normal;
}
Далее оформим наше меню
Код
/* Основные стили */
.cbp-ig-grid {
list-style: none;
padding: 0 0 50px 0;
margin: 0;
}
/* сброс выравниваний */
.cbp-ig-grid:before,
.cbp-ig-grid:after {
content: " ";
display: table;
}
.cbp-ig-grid:after {
clear: both;
}
/* ячейка сетки */
.cbp-ig-grid li {
width: 33%;
float: left;
height: 420px;
text-align: center;
border-top: 1px solid #ddd;
}
/* рамки, тени ... */
.cbp-ig-grid li:nth-child(-n+3){
border-top: none;
}
.cbp-ig-grid li:nth-child(3n-1),
.cbp-ig-grid li:nth-child(3n-2) {
box-shadow: 1px 0 0 #ddd;
}
/* стили для ссылок */
.cbp-ig-grid li > a {
display: block;
height: 100%;
color: #47a3da;
-webkit-transition: background 0.2s;
-moz-transition: background 0.2s;
transition: background 0.2s;
}
/* иконки */
.cbp-ig-icon {
padding: 30px 0 0 0;
display: block;
-webkit-transition: -webkit-transform 0.2s;
transition: -moz-transform 0.2s;
transition: transform 0.2s;
}
.cbp-ig-icon:before {
font-family: 'anyoldicon';
font-size: 14em;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.cbp-ig-icon-shoe:before {
content: "\e000";
}
.cbp-ig-icon-ribbon:before {
content: "\e001";
}
.cbp-ig-icon-milk:before {
content: "\e002";
}
.cbp-ig-icon-whippy:before {
content: "\e003";
}
.cbp-ig-icon-spectacles:before {
content: "\e004";
}
.cbp-ig-icon-doumbek:before {
content: "\e007";
}
/* элемент title */
.cbp-ig-grid .cbp-ig-title {
margin: 20px 0 10px 0;
padding: 20px 0 0 0;
font-size: 2em;
position: relative;
-webkit-transition: -webkit-transform 0.2s;
-moz-transition: -moz-transform 0.2s;
transition: transform 0.2s;
}
.cbp-ig-grid .cbp-ig-title:before {
content: '';
position: absolute;
background: #47a3da;
width: 160px;
height: 6px;
top: 0px;
left: 50%;
margin: -10px 0 0 -80px;
-webkit-transition: margin-top 0.2s;
-moz-transition: margin-top 0.2s;
transition: margin-top 0.2s;
}
.cbp-ig-grid .cbp-ig-category {
text-transform: uppercase;
display: inline-block;
font-size: 1em;
letter-spacing: 1px;
color: #fff;
-webkit-transform: translateY(10px);
-moz-transform: -moz-translateY(10px);
-ms-transform: -ms-translateY(10px);
transform: translateY(10px);
opacity: 0;
-webkit-transition: -webkit-transform 0.3s, opacity 0.2s;
-moz-transition: -moz-transform 0.3s, opacity 0.2s;
-webkit-transition: transform 0.3s, opacity 0.2s;
}
.cbp-ig-grid li:hover .cbp-ig-category,
.touch .cbp-ig-grid li .cbp-ig-category {
opacity: 1;
-webkit-transform: translateY(0px);
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
transform: translateY(0px);
}
/* Стили для элементов при наведении мыши */
.cbp-ig-grid li > a:hover {
background: #47a3da;
}
.cbp-ig-grid li > a:hover .cbp-ig-icon {
-webkit-transform: translateY(10px);
-moz-transform: translateY(10px);
-ms-transform: translateY(10px);
transform: translateY(10px);
}
.cbp-ig-grid li > a:hover .cbp-ig-icon:before,
.cbp-ig-grid li > a:hover .cbp-ig-title {
color: #fff;
}
.cbp-ig-grid li > a:hover .cbp-ig-title {
-webkit-transform: translateY(-30px);
-moz-transform: translateY(-30px);
-ms-transform: translateY(-30px);
transform: translateY(-30px);
}
.cbp-ig-grid li > a:hover .cbp-ig-title:before {
background: #fff;
margin-top: 80px;
}
@media screen and (max-width: 62.75em) {
.cbp-ig-grid li {
width: 50%;
}
/* сброс строк сетки */
.cbp-ig-grid li:nth-child(-n+3){
border-top: 1px solid #ddd;
}
.cbp-ig-grid li:nth-child(3n-1),
.cbp-ig-grid li:nth-child(3n-2) {
box-shadow: none;
}
.cbp-ig-grid li:nth-child(-n+2){
border-top: none;
}
.cbp-ig-grid li:nth-child(2n-1) {
box-shadow: 1px 0 0 #ddd;
}
}
@media screen and (max-width: 41.6em) {
.cbp-ig-grid li {
width: 100%;
}
.cbp-ig-grid li:nth-child(-n+2){
border-top: 1px solid #ddd;
}
.cbp-ig-grid li:nth-child(2n-1) {
box-shadow: none
}
.cbp-ig-grid li:first-child {
border-top: none;
}
}
@media screen and (max-width: 25em) {
.cbp-ig-grid {
font-size: 80%;
}
.cbp-ig-grid .cbp-ig-category {
margin-top: 20px;
}
}
.cbp-ig-grid {
list-style: none;
padding: 0 0 50px 0;
margin: 0;
}
/* сброс выравниваний */
.cbp-ig-grid:before,
.cbp-ig-grid:after {
content: " ";
display: table;
}
.cbp-ig-grid:after {
clear: both;
}
/* ячейка сетки */
.cbp-ig-grid li {
width: 33%;
float: left;
height: 420px;
text-align: center;
border-top: 1px solid #ddd;
}
/* рамки, тени ... */
.cbp-ig-grid li:nth-child(-n+3){
border-top: none;
}
.cbp-ig-grid li:nth-child(3n-1),
.cbp-ig-grid li:nth-child(3n-2) {
box-shadow: 1px 0 0 #ddd;
}
/* стили для ссылок */
.cbp-ig-grid li > a {
display: block;
height: 100%;
color: #47a3da;
-webkit-transition: background 0.2s;
-moz-transition: background 0.2s;
transition: background 0.2s;
}
/* иконки */
.cbp-ig-icon {
padding: 30px 0 0 0;
display: block;
-webkit-transition: -webkit-transform 0.2s;
transition: -moz-transform 0.2s;
transition: transform 0.2s;
}
.cbp-ig-icon:before {
font-family: 'anyoldicon';
font-size: 14em;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.cbp-ig-icon-shoe:before {
content: "\e000";
}
.cbp-ig-icon-ribbon:before {
content: "\e001";
}
.cbp-ig-icon-milk:before {
content: "\e002";
}
.cbp-ig-icon-whippy:before {
content: "\e003";
}
.cbp-ig-icon-spectacles:before {
content: "\e004";
}
.cbp-ig-icon-doumbek:before {
content: "\e007";
}
/* элемент title */
.cbp-ig-grid .cbp-ig-title {
margin: 20px 0 10px 0;
padding: 20px 0 0 0;
font-size: 2em;
position: relative;
-webkit-transition: -webkit-transform 0.2s;
-moz-transition: -moz-transform 0.2s;
transition: transform 0.2s;
}
.cbp-ig-grid .cbp-ig-title:before {
content: '';
position: absolute;
background: #47a3da;
width: 160px;
height: 6px;
top: 0px;
left: 50%;
margin: -10px 0 0 -80px;
-webkit-transition: margin-top 0.2s;
-moz-transition: margin-top 0.2s;
transition: margin-top 0.2s;
}
.cbp-ig-grid .cbp-ig-category {
text-transform: uppercase;
display: inline-block;
font-size: 1em;
letter-spacing: 1px;
color: #fff;
-webkit-transform: translateY(10px);
-moz-transform: -moz-translateY(10px);
-ms-transform: -ms-translateY(10px);
transform: translateY(10px);
opacity: 0;
-webkit-transition: -webkit-transform 0.3s, opacity 0.2s;
-moz-transition: -moz-transform 0.3s, opacity 0.2s;
-webkit-transition: transform 0.3s, opacity 0.2s;
}
.cbp-ig-grid li:hover .cbp-ig-category,
.touch .cbp-ig-grid li .cbp-ig-category {
opacity: 1;
-webkit-transform: translateY(0px);
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
transform: translateY(0px);
}
/* Стили для элементов при наведении мыши */
.cbp-ig-grid li > a:hover {
background: #47a3da;
}
.cbp-ig-grid li > a:hover .cbp-ig-icon {
-webkit-transform: translateY(10px);
-moz-transform: translateY(10px);
-ms-transform: translateY(10px);
transform: translateY(10px);
}
.cbp-ig-grid li > a:hover .cbp-ig-icon:before,
.cbp-ig-grid li > a:hover .cbp-ig-title {
color: #fff;
}
.cbp-ig-grid li > a:hover .cbp-ig-title {
-webkit-transform: translateY(-30px);
-moz-transform: translateY(-30px);
-ms-transform: translateY(-30px);
transform: translateY(-30px);
}
.cbp-ig-grid li > a:hover .cbp-ig-title:before {
background: #fff;
margin-top: 80px;
}
@media screen and (max-width: 62.75em) {
.cbp-ig-grid li {
width: 50%;
}
/* сброс строк сетки */
.cbp-ig-grid li:nth-child(-n+3){
border-top: 1px solid #ddd;
}
.cbp-ig-grid li:nth-child(3n-1),
.cbp-ig-grid li:nth-child(3n-2) {
box-shadow: none;
}
.cbp-ig-grid li:nth-child(-n+2){
border-top: none;
}
.cbp-ig-grid li:nth-child(2n-1) {
box-shadow: 1px 0 0 #ddd;
}
}
@media screen and (max-width: 41.6em) {
.cbp-ig-grid li {
width: 100%;
}
.cbp-ig-grid li:nth-child(-n+2){
border-top: 1px solid #ddd;
}
.cbp-ig-grid li:nth-child(2n-1) {
box-shadow: none
}
.cbp-ig-grid li:first-child {
border-top: none;
}
}
@media screen and (max-width: 25em) {
.cbp-ig-grid {
font-size: 80%;
}
.cbp-ig-grid .cbp-ig-category {
margin-top: 20px;
}
}
Все готово!
-
FalleN -
2024 -
1 -
217
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...