В статье рассказывается о новой адаптивной структуре, разработанной одним из веб-разработчиков из России. Фреймворк основан на загрузке Twitter с некоторыми дополнительными функциями и улучшениями. Оригинальный разработчик подготовил для нас эту подготовительную статью, описывающую возможности этого фреймворка, поэтому давайте прочитаем, что об этом сказано.
Привет всем. Я разработчик внешнего интерфейса из России. Я начал создавать собственную структуру для адаптивного веб-дизайна. Это называется ResponsiveFramework (RF) . Я использовал идею Twitter Bootstrap (скорость и удобство), когда разрабатывал свой собственный фреймворк. Но у него есть несколько отличий от туберкулеза, давайте посмотрим подробнее.
Прежде всего я постарался помочь разработчикам сделать компактный и понятный источник. В результате были сделаны простые и очевидные части кода, которые подтверждают стандарт W3C.
Во-вторых. Многие анимированные элементы здесь. Они гладкие и быстрые. Я оптимизирую и выпускаю их, все время.
В третьих. Он содержит чистые компоненты JS и jQuery. Измените все, чтобы использовать чистый JS в моем списке дел.
В-четвертых. Здесь используются 3 самых популярных препроцессора: LESS, SASS / SCSS, Stylus. Вы можете использовать все, что использовали.
В этом основные отличия Twitter Bootstrap. Позвольте мне показать, как вы можете его использовать. Мы создадим адаптивную веб-страницу, используя RF. Он будет содержать меню, слайдер, контент (о нас и портфолио), форму обратной связи и контакты. Мы будем использовать только ResponsiveFramework. ResponsiveGrid используется для создания каркаса для нашей страницы.
Live Demo
Шаг 1. Заголовок.
Заголовок будет состоять из логотипа и меню. Логотип — это просто ссылка на страницу. ResponsiveMenu будет использоваться для создания меню. HTML код:
<div class="wrapper_header" id="home"> <header class="container header"> <a href="#home" class="logo"><h1>Responsive UX <span class="logo_item">template</span></h1></a> <nav id="wrapper_menu" class="wrapper_menu"> <span id="icon_menu" class="position_right" data-effect="slide_top" data-menu="drop_down_block"> </span> <ul class="menu"> <li class="menu_item"> <a href="#about" class="menu_link">About<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#works_portfolio" class="menu_link">Works<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#feedback" class="menu_link">Feedback<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#contacts" class="menu_link">Contacts<span class="line_bottom"> </span></a> </li> <li class="menu_item wrapper_drop_down_block"> <a href="#" class="menu_link">Pages</a> <ul class="drop_down_block"> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="shortcodes.html">Shortcodes</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="blog.html">Blog</a></li> </ul> </li> <li class="menu_item wrapper_drop_down_block"> <a href="#" class="menu_link">Portfolio</a> <ul class="drop_down_block"> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="portfolio3.html">3 Columns</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="portfolio4.html">4 Columns</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="dynamic_portfolio.html">Dynamic portfolio</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="project.html">Single Project</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="3dproject.html">3d Single Project</a></li> </ul> </li> </ul> </nav> </header> </div>
Тег `nav` включает в себя селекторы` # icon_menu` и `.menu`. Селектор `icon_menu` будет использоваться в качестве меню на мобильных устройствах. Главное меню будет показано, когда пользователь нажмет `icon_menu`.
Давайте углубимся в меню. HTML код:
<nav id="wrapper_menu" class="wrapper_menu"> <span id="icon_menu" class="position_right" data-effect="slide_top" data-menu="drop_down_block"> </span> <ul class="menu"> <li class="menu_item"> <a href="#about" class="menu_link">About<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#works_portfolio" class="menu_link">Works<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#feedback" class="menu_link">Feedback<span class="line_bottom"> </span></a> </li> <li class="menu_item"> <a href="#contacts" class="menu_link">Contacts<span class="line_bottom"> </span></a> </li> <li class="menu_item wrapper_drop_down_block"> <a href="#" class="menu_link">Pages</a> <ul class="drop_down_block"> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="shortcodes.html">Shortcodes</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="blog.html">Blog</a></li> </ul> </li> <li class="menu_item wrapper_drop_down_block"> <a href="#" class="menu_link">Portfolio</a> <ul class="drop_down_block"> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="portfolio3.html">3 Columns</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="portfolio4.html">4 Columns</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="dynamic_portfolio.html">Dynamic portfolio</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="project.html">Single Project</a></li> <li class="drop_down_menu_item"><a class="drop_down_menu_link" href="3dproject.html">3d Single Project</a></li> </ul> </li> </ul> </nav>
Тег `ul` — верхний уровень меню, он очень распространен. Давайте посмотрим на тег `span` с классом` line_bottom`. Этот тег украшает элементы меню. Когда пользователь наводит на пункт меню, пункт будет плавно подчеркнут.
Тег `ul` с классом` drop_down_block` представляет собой выпадающий список. Каждый список появляется, когда соответствующий элемент будет наведен курсором. Вот и все.
Шаг 2. Слайдер.
Для его построения мы будем использовать ResponsiveFullslider. HTML код:
<div id="slideshow"> <span class="arrow prev" id="leftControl"></span> <div id="slidesContainer" > <div id="slideInner"> <div id="slide1" class="slide active_slide"> <div class="layer scale icon_slide"></div> <p class="layer slide_info slide_right"> I've seen the <span class="decor"> future</span> </p> <p class="layer slide_info slide_left paragraph_two"> It's in my <span class="decor"> Browser</span> </p> </div> <div id="slide2" class="slide"> <div class="layer slide_top icon_slide"></div> <p class="layer slide_info flipY"> delightful<span class="decor"> animations</span> </p> <p class="layer slide_info slide_bottom paragraph_two"> In your<span class="decor"> devices</span> </p> </div> <div id="slide3" class="slide"> <div class="layer slide_bottom icon_slide"></div> <p class="layer slide_info slide_left"> Create interactive<span class="decor"> interfaces</span> </p> <p class="layer slide_info scale paragraph_two"> Bring joy </p> </div> </div> </div> <span class="arrow next" id="rightControl"></span> </div>
Мы создадим 3 слайдера, чтобы продемонстрировать, как это работает. Для каждого слайдера мы должны добавить атрибут id (slide1, slide2, slide3). Мы добавляем контент к этим слайдерам. Для анимации ползунков мы добавляем класс `layer` в слайдер и выбираем тип анимации. Здесь я использую `slide_left`,` slide_bottom`, `flipY`,` scale`, `slide_right`.
Также мы должны указать необходимые настройки в файле `fullslider.js`.
speed = '0.5s', // time animation carusel = true, //endless scrolling autoplay = false, //automatic beggining time = 6000, // item changing time src = 'images/', // background path (we don't use it in demo) format = '.jpg', //background format (we don't use it in demo)
Шаг 3. Содержание.
Мы можем разделить этот шаг на две отдельные части:
1 — Здание «о нас»
2 — Здание «Портфолио»
Шаг 3.1. О нас.
Этот блок содержит 3 столбца. ResponsiveGrid снова работает. HTML код:
<section id="about" class="main_container columns3"> <h3>About</h3> <p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. </p> <div class="main_container_item"> <a href="#" class="hover_circle"> <img class="img_post" src="images/designer.jpg" alt="designer" /> <div class="wrapper_circle"> <div class="circle"> <span class="circle_item">Development of UX interfaces</span> </div> </div> </a> <h3 class="title_post">Design</h3> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> <div class="main_container_item"> <a href="#" class="hover_circle"> <img class="img_post" src="images/frontenddev.jpg" alt="frontenddev" /> <div class="wrapper_circle"> <div class="circle"> <span class="circle_item">Development of the high-loaded systems</span> </div> </div> </a> <h3 class="title_post">Development</h3> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> <div class="main_container_item"> <a href="#" class="hover_circle" id="hover_left_circle"> <img class="img_post" src="images/seo.jpg" alt="seo" /> <div class="wrapper_circle"> <div class="circle"> <span class="circle_item">SEO-analysts</span> </div> </div> </a> <h3 class="title_post">Analysts</h3> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> <article class="skills"> <h3>Skills</h3> <div class="skills_item"> <div class="skill">HTML5/CSS3/JS</div> <div class="value blue"></div> </div> <div class="skills_item"> <div class="skill">Design</div> <div class="value green"></div> </div> <div class="skills_item"> <div class="skill">PHP/Ruby/Python</div> <div class="value yellow"></div> </div> </article> </section>
Для выравнивания текста мы используем тег `selection` с классом` main_container`. Также мы добавляем класс `column3`, который говорит RF разделить его на 3 столбца. Так что просто создадим каркас для нашего контента. Мы также добавим анимацию (анимированный круг). ResponsiveHover делает все для нас. Тег `img` оборачивается тегом` a` с классом `hover_circle`. Добавьте тег `div` с классом` wrapper_circle` на том же уровне, что и тег `img`.
Шаг 3.2. Портфолио.
ResponsiveFilter используется для построения раздела портфолио. HTML код:
<section id="works_portfolio"> <h2>Works</h2> <div id="type_products" class="type_products"> <span id="category1" class="type_products_item">Web-design</span> <span id="category2" class="type_products_item">Back-end</span> <span id="category3" class="type_products_item">Front-end</span> <span id="all_category" class="type_products_item active_type">All</span> </div> <div id="all_production"> <div class="production_item show_category wrapper_svg" data-id="category1"> <svg width="300" height="225"> <filter id="light"> <feComponentTransfer> <feFuncR type="linear" slope="2" /> <feFuncG type="gamma" amplitude="2" exponent="1" /> <feFuncB type="linear" slope="1" /> <feFuncA type="linear" intercept ="1"/> </feComponentTransfer> <feColorMatrix type="hueRotate" values="350" /> </filter> <image x="0" y="0" width="300" height="225" filter= "url(#light)" xlink:href="images/cat3.jpg" /> </svg> <img class="img_production" src="images/cat3.jpg" alt="img" /> </div> </div> </section>
Здесь мы включаем файлы JS и CSS. После этого мы устанавливаем размеры блоков в CSS и стилизуем кнопку «Закрыть». Мы используем ResponsiveHover для анимации изображений.
Шаг 4. Форма обратной связи.
RF также имеет ResponsiveForm, и мы можем использовать его для создания формы обратной связи. HTML код:
<section id="feedback" class="wrapper_form"> <h2>Feedback</h2> <form class="form" id="form_contact"> <div class="left_column"> <input type="text" id="full_name" name="full_name" class="input_text" placeholder="Name" required /> <input class="input_text" type="email" id="email" name="email" placeholder="Email" required /> <div id="rating" class="element_form"> <div class="wrapper_stars"> <span class="icon-star"></span> <span class="icon-star"></span> <span class="icon-star"></span> <span class="icon-star"></span> <span class="icon-star"></span> </div> <input type="hidden" id="total_rating" /> <p>Your rating: <span id="total_value">0</span></p> </div> </div> <textarea class="input_text textarea" id="comment" name="comment" placeholder="Review" required></textarea> <button type="submit" id="button" class="button" disabled="disabled">send</button> </form> </section>
Здесь мы включаем файлы JS и CSS для выбора рейтинга.
Шаг 5. Карта и нижний колонтитул.
Карта и нижний колонтитул были построены без RF, так как здесь нет необходимости.