Адаптивная верстка сайта (от английского, responsive web design, иногда — adaptive web design) — это создание структуры HTML-документа на базе HTML-разметки, предусматривающей автоматическую адаптацию веб-страницы в зависимости от размера экрана устройства пользователя. Иными словами - это макет веб-страницы, автоматически подстраивающийся под размер экрана разнообразных гаджетов пользователя, таких как планшеты и смартфоны. В адаптивной вёрстка предполагается использование современных технологий, делающих основные элементы, изменяющими свой размер и расположение на странице, исходя из ширины окна. При этом отсутствуют и полосы прокрутки. Для просмотра контента достаточно просто листать страницы вниз. Для отображения на смартфонах и планшетах лишние элементы отсеивают: убирают графические объекты, сворачивают меню, оставляя только самые значимые блоки. Параллельно увеличивается размер элементов управления, чтобы нужную кнопку без труда можно было нажать пальцем, ведь на обычном сайте попасть по ссылке с первого раза удается не всегда. Все это достигается с помощью медиа-запросов, которые лежат в основе данной технологии, меняют масштаб элементов, а CSS свойства дают полную свободу действий, управляя компоновкой и расположением блоков на странице, автоматически преобразуя шаблон. Данная статья рассматривает применение адаптивной резиновой вёрстки при создании главной страницы. Основные примеры создания приведены в статье Отзывчивый дизайн.
Страница состоит из четырех основных блоков: Шапка сайта или хедер (от анг. header — заголовок) – это титульная верхняя часть страницы, в которой располагаются элементы навигации (nav или меню) и элементы, содержащие информацию о сайте, блок основного содержимого (main) и сайдбар (sidebar) — это боковая панель сайта, визуально разграниченная с контентом на странице. Благодаря ее блокам посетители понимают, что и где расположено на сайте. Ширина боковой панели обычно меньше ширины основного блока с контентом. подвал или футер (от анг. footer - нижний колонтитул) — блок в нижней части страницы. За основу преломления шаблона возьмём 768px и 480px.
/* Устройства с очень маленьким экраном (смартфоны, меньше 768px) */ /* Стили CSS (по умолчанию) - для ширины viewport <768px */ /* Устроства с маленьким экраном (планшеты, 768px и выше) */ @media (min-width: 768px) { /* Стили для устройств с шириной viewport, находящейся в диапазоне 768px - 991px */ } /* Устройства со средним экраном (ноутбуки и компьютеры, 992px и выше) */ @media (min-width: 992px) { /* Стили для устройств с шириной viewport, находящейся в диапазоне 992px - 1199px */ } /* Устройства с большим экраном (компьютеры, 1200px и выше) */ @media (min-width: 1200px) { /* Стили для устройств с шириной viewport >1200px */ }
Пример сайта выполненного в адаптивной вёрстке можно посмотреть в разделе пример или перейдя по ссылке. для понимания примера необходимо сузить просматриваемую страницу в браузере или просмотреть на компьютере и в браузере мобильного устройства.
Добавим в блок <head> (голова) запись кода приведенного ниже и открыв «Пояснительную записку блока <head>:« разберем данный код:
<!--начало веб страницы--> <!DOCTYPE html> <html> <!--начало блока метаданных веб страницы--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Responsive site layout</title> <link type="Image/x-icon" href="blender3d_demo/images/favicon.ico" rel="shortcut icon"> <!-- our project just needs Font Awesome Solid + Brands --> <link rel="stylesheet" type="text/css" href="blender3d_demo/css/Font-Awesome-6.x/css/all.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="blender3d_demo/css/Font-Awesome-6.x/css/v4-shims.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="blender3d_demo/css/blender3d_demo.css"> <script src="blender3d_demo/js/jquery/2.2.2/jquery.min.js"></script> <script src="blender3d_demo/js/prefixfree/1.0.7/prefixfree.min.js"></script> </head> <!--конец блока метаданных веб страницы-->
В блок заголовка <header> запишем следующие элементы блоков (контейнеров): логотип, кнопки меню и поиска по сайту, и открыв «Пояснительную записку блока <header>» разберем данный код:
<header> <!--начало блока логотип/меню веб страницы--> <nav class="container"> <a class="logo" href=""><img src="blender3d_demo/blender3d_demo.png" ></a> <div class="nav-toggle"><span></span></div> <form action="" method="get" id="searchform"> <input type="text" placeholder="search..."> <button type="submit"><i class="fa fa-search"></i></button> </form> <ul id="menu"> <li><a href="">Features</a></li> <li><a href="">Download</a></li> <li><a href="">Support</a></li> </ul> </nav> <!--конец блока логотип/меню веб страницы--> </header>
В данный блок поместим предварительное содержимое анонса статей и открыв «Пояснительную записку блока main» разберем данный код:
<!--начало тела веб страницы--> <body> <!--начало контейнера контента веб страницы--> <div class="container"> <!--начало контейнера контента анонса статей страницы--> <div class="posts-list"> <article id="post-1" class="post"> <div class="post-image"><a href=""><img src="blender3d_demo/blender3d_demo_1.png" ></a></div> <div class="post-content"> <div class="category"><a href="">Features</a></div> <h2 class="post-title">Blender 3.6 LTS</h2> <p>Blender 3D program Blender is one of the most popular 3D modeling software. This is a multifunctional software, acquaintance with which will be useful for those who are interested in 3d graphics and who want to understand the basic principles of this industry.</p> <div class="post-footer"> <a class="more-link" href="">Continue Reading</a> <div class="post-social"> <a href="" target="_blank"><i class="fa fa-facebook"></i></a> <a href="" target="_blank"><i class="fa fa-twitter"></i></a> <a href="" target="_blank"><i class="fa fa-pinterest"></i></a> </div> </div> </div> </article> <article id="post-2" class="post"> <div class="post-image"><a href=""> <video width="100%" controls="controls" poster="blender3d_demo/poster.jpg"> <source src="video/duel.ogv" type='video/ogg; codecs="theora, vorbis"'> <source src="blender3d_demo/vesna(720p).mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> </video> </a></div> <div class="post-content"> <div class="category"><a href="">Download</a></div> <h2 class="post-title">Spring</h2> <p> Is the story of a shepherdess and her dog who encounter ancient spirits in order to continue the cycle of life..</p> <div class="post-footer"> <a class="more-link" href="">Continue Reading</a> <div class="post-social"> <a href="" target="_blank"><i class="fa fa-facebook"></i></a> <a href="" target="_blank"><i class="fa fa-twitter"></i></a> <a href="" target="_blank"><i class="fa fa-pinterest"></i></a> </div> </div> </div> </article> </div> <!--конец контейнера контента анонса статей страницы-->
В боковую колонку <aside> добавим список категорий c анонсом последних записей и открыв «Пояснительную записку блока <aside>» разберем данный код:
<!-- начало контейнера контента правой колонки веб страницы--> <aside> <div class="widget"> <h3 class="widget-title">Categories</h3> <ul class="widget-category-list"> <li><a href="">Features</a> (3)</li> <li><a href="">Download</a> (2)</li> <li><a href="">Support</a> (1)</li> </ul> </div> <div class="widget"> <h3 class="widget-title">The last notes</h3> <ul class="widget-posts-list"> <li> <div class="post-image-small"> <a href=""><img src="blender3d_demo/blender3d_demo_2.jpg"></a> </div> <h3>Cycles</h3> is Blender’s built-in powerful unbiased path-tracer engine that offers stunning ultra-realistic rendering. · Real-time viewport preview· CPU & GPU rendering· PBR shaders & HDR lighting support· VR rendering support </li> <li> <div class="post-image-small"> <a href=""><img src="blender3d_demo/blender3d_demo_3.jpg"></a> </div> <h3>Modeling</h3> blender’s comprehensive array of modeling tools make creating, transforming and editing your models a breeze. · Full N-Gon support· Edge slide, inset, grid and bridge fill, and more· Advanced sculpting tools and brushes· Multi-resolution and Dynamic subdivision· 3D painting with textured brushes and masking · Python scripting for custom tools and add-ons </li> <li> <div class="post-image-small"> <a href=""><img src="blender3d_demo/blender3d_demo_4.jpg"></a> </div> <h3>VFX</h3> professionals say: “Probably the best tracker in the market”. Blender includes production ready camera and object tracking. Allowing you to import raw footage, track the footage, mask areas and see the camera movements live in your 3D scene. Eliminating the need to switch between programs. </li> <li> <div class="post-image-small"> <a href=""><img src="blender3d_demo/blender3d_demo_5.jpg"></a> </div> <h3>Animation</h3> Thanks to the high quality rigging and animation tools, Blender is being used for numerous short films, advertisements, TV series and feature films now.· Envelope, skeleton and automatic skinning· B-spline interpolated bones· Curve editor and dope sheets· Custom bone shapes for fast input· Sound synchronization </li> </ul> </div> </aside> <!-- конец контейнера контента правой колонки веб страницы--> </div> <!-- конец контейнера контента веб страницы-->
В подвале страницы разместим информацию о копирайте и открыв «Пояснительную записку блока <footer>» разберем данный код:
<!--начало контейнера подвал веб страницы--> <footer> <div class="footer-col"><span>The Free and Open Source 3D Creation Suite © 2023</span></div> </footer> <!--конец контейнера подвал веб страницы--> </body> </html> <!--конец веб страницы-->
Все нижеприведенные стили вынесены в один внешний файл CSS.
/*сброс стилей браузера по умолчанию. */ *, *:after, *:before { box-sizing: border-box;/*ширины и высоты элемента(width и height = значения полей и границ, но не отступов (margin))*/ padding: 0;/*значение полей вокруг содержимого элемента*/ margin: 0;/*значение отступа от каждого края элемента*/ transition: .5s ease-in-out;/*эффект анимации начинается и заканчивается медленно*/ /*плавность переходов для всех элементов страницы*/ } ul { list-style: none;/*стиль маркера отменен*/ } a { text-decoration: none;/*оформление текста отменено*/ outline: none;/*цвет, стиль и толщина внешней границы отменены*/ } img { display: block;/*элемент показывается как блочный*/ width: 100%;/*рисунок растянут на всю ширину веб-страницы*/ } h1, h2, h3, h4, h5, h6 { font-family: Geneva, Arial, Helvetica, sans-serif;/*шрифты для заголовка*/ font-weight: normal;/*обычная насыщенность шрифтов */ letter-spacing: 1px;/*интервал между символами*/ } body { font-family: Geneva, Arial, Helvetica, sans-serif;/*шрифты для заголовка*/ font-size: 14px;/* Размер текста */ line-height: 1;/*межстрочный интервал текста*/ color: #000000;/*цвет текста #000000-черный*/ background: #f5f5f5;/*цвет фона тела страницы #f5f5f5-дымчато-белый*/ } /* очистку потока для всех контейнеров, внутри которых задано обтекание дочерних элементов */ header:after, .container:after, footer:after, .widget-posts-list li:after, #subscribe:after { content: "";/*содержимое -пустая строка*/ display: table;/*представление -блочная таблица*/ clear: both;/*отмена обтекания элемента*/ } /* стилевой класс, который управляет шириной контейнера сетки*/ .container { margin: 0 auto;/*отступа от каждого края элемента отсутствует и расчитывается браузером*/ width: 100%;/*блок растянут на всю ширину веб-страницы*/ max-width: 960px;/*максимальную ширину блока*/ padding: 0 15px;/*значение полей вокруг содержимого блока(вертикаль 0, горизонталь 15px*/ }
header { width: 100%;/*блок растянут на всю ширину веб-страницы*/ background: #2f4f4f;/* цвет блока меню #2F4F4F - аспидно-серый*/ box-shadow: 3px 3px 1px rgba(0, 0, 0, .05);/* Параметры тени */ padding: 15px 0;/*значение полей вокруг содержимого блока(вертикаль 15px, горизонталь 0*/ margin-bottom: 30px;/*отступ от нижнего края элемента*/ position: relative;/*положение элемента устанавливается относительно его исходного места*/ } /* логотип */ .logo { display: block;/*элемент показывается как блочный*/ float: left;/*элемент выравнивается по левой стороне*/ } /* меню */ #menu { float: right;/*элемент выравнивается по правой стороне*/ } #menu li { display: inline-block;/*элемент обтекает другими элементами страницы*/ margin-right: 30px;/*отступа от правого края элемента*/ } #menu a { color: #f5f5f5;/*цвет теста меню #f5f5f5 - дымчато-белый*/ text-transform: uppercase;/*символы текста становятся прописными (верхний регистр)*/ letter-spacing: 1px;/*интервал между символами в пределах элемента*/ font-weight: 600;/* насыщенность цвета - 600 - жирное начертание */ display: block;/*элемент показывается как блочный*/ line-height: 40px;/*межстрочный интервал текста*/ } #menu a:hover { color: #2f4f4f;/* цвет верхней полосы разделителей блока "продолжить чтение" */ } #menu li:last-child { margin-right: 0;/*отступа от правого края элемента*/ } /* форма поиска */ #searchform { float: right;/*элемент выравнивается по правой стороне*/ margin-left: 46px;/*отступ от левого края элемента*/ display: inline-block;/*элемент обтекает другими элементами страницы*/ position: relative;/*положение элемента устанавливается относительно его исходного места*/ } #searchform input { width: 170px;/*ширина блока*/ float: left;/*элемент выравнивается по левой стороне*/ border: none;/*бордюра(границы) нет*/ padding-left: 10px;/*значение поля от левого края содержимого элемента*/ height: 40px;/*высота блочного элемента*/ overflow: hidden;/*отображается только область внутри элемента, остальное скрыто*/ outline: none;/*цвет, стиль и толщина внешней границы отменены*/ color: #9E9C9C;/*цвет вводимого пользователем текста #9E9C9C - перламутровый светло-серый*/ font-style: italic;/*шрифт вводимого пользователем текста - наклонный*/ } #searchform button { background: transparent;/*устанавливает прозрачный фон*/ height: 40px;/*высота блочного элемента*/ border: none;/*бордюра(границы) нет*/ position: absolute;/*указывает, что элемент абсолютно позиционирован*/ right: 10px;/*расстояние от правого края родительского элемента*/ color: black; /*цвет текста черный*/ cursor: pointer;/*устанавливает форму курсора, когда он находится в пределах элемента*/ font-size: 18px;/* размер шрифта элемента */ } #searchform input:focus { outline: 2px solid #EBEBE3;/*цвет, стиль и толщина внешней границы толщина 2px жирная цвет-#EBEBE3-Лесной волк*/ } /* кнопка переключения меню, появляющаяся при ширине 768px */ .nav-toggle { display: none;/*позиционирование отсутствует*/ position: relative;/*положение элемента устанавливается относительно его исходного места*/ float: right;/*элемент выравнивается по правой стороне*/ width: 40px;/*ширина блока*/ height: 40px;/*высота блочного элемента*/ margin-left: 20px;/*отступ от левого края элемента*/ background: black;/*цвет фона черный*/ cursor: pointer;/*устанавливает форму курсора, когда он находится в пределах элемента*/ } .nav-toggle span { display: block;/*элемент показывается как блочный*/ position: absolute;/*указывает, что элемент абсолютно позиционирован*/ top: 19px;/*расстояние от верхнего края родительского элемента*/ left: 8px;/*расстояние от левого края родительского элемента*/ right: 8px;/*расстояние от правого края родительского элемента*/ height: 2px;/*высота блочного элемента*/ background: white;/* цвет и размер верхней полосы разделителей кнопки меню для мобильных */ } .nav-toggle span:before, .nav-toggle span:after { content: ""; position: absolute;/*указывает, что элемент абсолютно позиционирован*/ display: block;/*элемент показывается как блочный*/ left: 0;/*расстояние от левого края родительского элемента*/ width: 100%;/*ширина блока на всю страницу*/ height: 2px;/*высота блочного элемента*/ background: white;/* цвет и размер верхней полосы разделителей кнопки меню для мобильных */ } .nav-toggle span:before { top: -10px;/*расстояние от верхнего края родительского элемента*/ } .nav-toggle span:after { bottom: -10px; } /* класс, который будет добавлен в верхнему меню при нажатии на кнопку и покажет скрытое меню*/ #menu.active { max-height: 123px;/*высота блочного элемента*/ }
/* левый контейнер */ .posts-list { margin-bottom: 30px;/*отступ от нижнего края элемента*/ width: 64%;/*ширина блока*/ float: left;/*элемент выравнивается по левой стороне*/ } /* блок для статьи */ .post { margin-bottom: 35px;/*отступ от нижнего края элемента*/ } .post-content p { line-height: 1.5;/*межстрочный интервал текста*/ padding-bottom: 1em;/*значение поля от нижнего края содержимого элемента*/ } .post-image { margin-bottom: 30px;/*отступ от нижнего края элемента*/ box-shadow: 3px 3px 0 0 #c0c0c0;/* цвет тени картинки поста */ } .category { margin-bottom: 15px;/*отступ от нижнего края элемента*/ } .category a { color: #d3d3d3; /*цвет текста категорий в поле анонса под картинкой #d3d3d3 - бороды абдель-керима*/ text-transform: uppercase;/*все символы текста становятся прописными (верхний регистр)*/ } .post-title { margin-bottom: 12px;/*отступ от нижнего края элемента*/ font-size: 26px;/* размер шрифта элемента */ } /* блок с кнопкой "продолжить чтение" и кнопками социальных сетей */ .post-footer { border-top: 1.5px solid #2f4f4f;/* цвет и размер верхней полосы разделителей блока "продолжить чтение" */ border-bottom: 1.5px solid #2f4f4f;/* цвет и размер нижней полосы разделителей блока "продолжить чтение" */ position: relative;/*положение элемента устанавливается относительно его исходного места*/ margin-top: 10px;/*отступ блока от текста-контента*/ } .more-link { position: relative;/*положение элемента устанавливается относительно его исходного места*/ display: inline-block;/*элемент обтекает другими элементами страницы*/ font-size: 10px;/* размер шрифта элемента */ text-transform: uppercase;/*все символы текста становятся прописными (верхний регистр)*/ color: white;/*цвет шрифта надписи "Продолжить чтение" white; белый*/ line-height: 34px;/*межстрочный интервал между линиями блока "продолжить чтение" */ padding: 0 20px;/* значение полей вокруг содержимого*/ background: #2f4f4f;/* цвет фона блока "продолжить чтение" */ letter-spacing: 0.1em; white-space: nowrap; } .more-link:after { content: ''; display: block;/*элемент показывается как блочный*/ position: absolute;/*указывает, что элемент абсолютно позиционирован*/ width: 0;/*ширина блока*/ height: 0;/*высота блочного элемента*/ top: 0;/*расстояние от верхнего края родительского элемента*/ right: 0;/*расстояние от правого края родительского элемента*/ border: solid transparent;/*бордюр жирный прозрачный*/ border-width: 17px 25px;/*высота и длина треугольника блока "продолжить чтение" */ border-left-color: #2f4f4f;/* цвет фона треугольника блока "продолжить чтение" */ transform: translateX(100%);/*сдвиг элемента по горизонтали влево на указанное значение*/ } .post-social { position: absolute;/*указывает, что элемент абсолютно позиционирован*/ left: auto;/*расстояние от левого края родительского элемента расчитывается браузером*/ top: 50%;/*расстояние от верхнего края родительского элемента*/ right: 0;/*расстояние от правого края родительского элемента*/ text-align: right;/*горизонтальное выравнивание текста в пределах элемента*/ transform: translateY(-50%);/*сдвиг элемента по горизонтали вправо на указанное значение*/ padding: 0;/* значение полей вокруг содержимого*/ font-size: 12px;/* размер шрифта элемента */ } .post-social a { display: inline-block;/*элемент обтекает другими элементами страницы*/ margin-left: 8px;/*отступ от левого края элемента*/ color: #2f4f4f;/* цвет фона иконок соц сетей в блока "продолжить чтение" */ width: 25px;/*ширина блока*/ height: 25px;/*высота блочного элемента*/ line-height: 23px;/*межстрочный интервал*/ text-align: center;/*горизонтальное выравнивание текста в пределах элемента*/ border-radius: 50%;/*радиус скругления уголков рамки*/ border: 1px solid; /*размер бордюра 1px жирный*/ }
/* правый контейнер */ aside { width: 33%;/*ширина блока*/ float: right;/*элемент выравнивается по правой стороне*/ } /* блок для виджетов */ .widget { padding: 20px 15px;/* значение полей вокруг содержимого*/ background: #dcdcdc;/* цвет блока для виджетов */ font-size: 13px;/* размер шрифта элемента */ margin-bottom: 30px;/*отступ от нижнего края элемента*/ box-shadow: 4px 4px 2px rgba(0, 0, 0, .05);/* тень рамки блоков */ } .widget-title { font-size: 15px;/* размер шрифта элемента */ padding: 10px;/* значение полей вокруг содержимого*/ margin-bottom: 10px;/* отступ от рамки блоков */ text-align: center;/*горизонтальное выравнивание текста в пределах элемента*/ border: 2px solid #2f4f4f;/* цвет рамки категорий */ box-shadow: 3px 3px 0 0 #c0c0c0;/* цвет тени блока категорий */ } .widget-category-list li { border-bottom: 1.5px solid #2f4f4f;/* цвет и размер полос разделителей блока категорий */ padding: 8px 0;/* значение полей вокруг содержимого*/ color: #2f4f4f;/* цвет текста количества постов в категории*/ font-style: arial; /* шрифт текста наименования постов в категории*/ } .widget-category-list li:last-child { border-bottom: none;/*толщина, стиль и цвет границы внизу элемента отсутствует*/ } .widget-category-list li a { color: #2f4f4f;/* цвет текста наименований категорий постов*/ margin-right: 20px;/* отступ от текста наименований категорий постов */ font-style: normal;/*обычное начертание текста*/ } .widget-category-list li a:before { content: "\f105"; /* стрелки перед текстом наименований категорий постов*/ display: inline-block;/*элемент обтекает другими элементами страницы*/ font-family: 'FontAwesome';/*шрифты колекции иконок FontAwesome*/ margin-right: 10px;/*отступа от правого края элемента*/ color: #2f4f4f;/* цвет стрелки перед текстом наименований категорий постов*/ } .widget-posts-list li { border-top: 1.5px solid #2f4f4f;/* цвет и размер полос разделителей блока постов */ padding: 8px 0;/* значение полей вокруг содержимого*/ } .widget-posts-list li:nth-child(1) { border-top: none;/* цвет и размер полос разделителей блока постов отсутствует*/ } .post-image-small { width: 60%; /*размер - ширина картинки*/ float: left;/*положение картинки -элемент выравнивается по левой стороне*/ margin-right: 15px;/*отступ от правого края картинки*/ box-shadow: 3px 3px 0 0 #c0c0c0;/* цвет тени картинки */ } .widget-post-title { float: left;/*элемент выравнивается по левой стороне*/ }
Подвал сайта разделим на три равных столбца:
footer { padding: 20px 0;/* значение полей вокруг содержимого*/ background: #3C3D41;/*цвет фона подвала #3C3D41 - сланцево-серый*/ color: white;/*цвет шрифта подвала #write - белый*/ } .footer-col { width: 100%;/*ширина блока растянута на всю страницу*/ float: left;/*элемент выравнивается по левой стороне*/ }
@media (max-width: 768px) {/* правило запроса для ширины viewport от 768px*/ /* показываем кнопку для переключения верхней навигации */ .nav-toggle { display: block;/*элемент показывается как блочный*/ } header { padding: 10px 0;/* значение полей вокруг содержимого*/ } /* скрываем верхнее меню, отменяем обтекание, позиционируем его, сместив на высоту шапки сайта */ #menu { max-height: 0;/*высота блочного элемента*/ background: #2f4f4f;/*цвет фона кнопок мобильного меню #2f4f4f - аспидно-серый*/ float: none;/*выравнивание элемента отсутствует*/ position: absolute;/*указывает, что элемент абсолютно позиционирован*/ overflow: hidden;/*отображается только область внутри элемента, остальное скрыто*/ top: 63px;/*расстояние от верхнего края родительского элемента*/ right: 0;/*расстояние от правого края родительского элемента*/ left: 0;/*расстояние от левого края родительского элемента*/ margin: 0;/*значение отступа от каждого края элемента*/ padding: 0;/* значение полей вокруг содержимого*/ z-index: 3;/*налажение элементов друг на друга в определенном порядке*/ } /* делаем элементы списка блочными, чтобы они располагались друг под другом */ #menu li { display: block;/*элемент показывается как блочный*/ text-align: center;/*горизонтальное выравнивание текста в пределах элемента*/ border-bottom: 1px solid black;/*толщина 1px стиль жирный и цвет границы черный внизу элемента*/ margin-right: 0;/*отступа от правого края элемента*/ } /* отменяем обтекание левой и правой колонок, устанавливаем им ширину 100%*/ .posts-list, aside { width: 100%;/*ширина блока растянута на всю страницу*/ float: none;/*выравнивание элемента отсутствует*/ } .widget-post-title { font-size: 1.5em;/* размер шрифта элемента */ } } @media (max-width: 480px) {/* правило запроса для ширины viewport от 480px*/ /* отменяем обтекание для логотипа и выравниваем по центру*/ .logo { float: none;/*выравнивание элемента отсутствует*/ margin: 0 auto 15px;/*значение отступа от каждого края элемента*/ display: table;/*представление -блочная таблица*/ } .logo span { margin: 0 2px;/*значение отступа от каждого края элемента*/ } /* позиционируем меню на увеличившуюся высоту шапки */ #menu { top: 118px;/*расстояние от верхнего края родительского элемента*/ } /* позиционируем форму поиска по левому краю */ #searchform { float: left;/*элемент выравнивается по левой стороне*/ margin-left: 0;/*отступ от левого края элемента*/ } /* убираем верхнюю и нижнюю границы и выравниваем кнопку по центру */ .post-footer { border-top: none;/* толщина, стиль и цвет границы сверху элемента отсутствует*/ border-bottom: none;/*толщина, стиль и цвет границы внизу элемента отсутствует*/ text-align: center;/*горизонтальное выравнивание текста в пределах элемента*/ } /* отменяем позиционирование кнопок соцсетей */ .post-social { position: static;/*элемент отображаются как обычно*/ text-align: center;/*горизонтальное выравнивание текста в пределах элемента*/ transform: none;/*трансформации элемента нет*/ margin-top: 20px;/*отступ блока от текста-контента*/ } .widget-post-title { font-size: 1.2em;/* размер шрифта элемента */ } /* отменяем обтекание для столбцов подвала страницы */ .footer-col { float: none;/*выравнивание элемента отсутствует*/ margin-bottom: 20px;/*отступ от нижнего края элемента*/ width: 100%;/*ширина блока растянута на всю страницу*/ text-align: left;/*горизонтальное выравнивание текста в пределах элемента*/ } }
<script src="blender3d_demo/js/blender3d_demo.js"></script>
Данный скрипт работает при ширине окна браузера менее 768px, откройте «Пояснительную записку» для понимания кода скрипта.
$('.nav-toggle').on('click', function(){ $('#menu').toggleClass('active'); });
Все файлы данного примера включая все скрипты и таблицы шрифтов и иконок упакованы в архив и доступны для скачивания.
Вам необходимо поменять пути к файлам, согласно будущего месторасположения папок и файлов на вашем сервере.
rar arhiv 71,8mb