Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «html»



Gravatar image
zabachok
  • Репутация: 2
  • Сниппеты: 1
  • Ревизии: 0
echo $form->field($model, 'is_bot')->radioList(['' => 'Все', false => 'Люди', true => 'Боты'], [
            'itemOptions' => ['class' => 'd-none', 'labelOptions' => ['class' => 'btn btn-primary']],
            'class' => 'btn-group',
            'data-toggle' => 'buttons',
        ])->label(false);

Valentin Sayik
  • Репутация: 37
  • Сниппеты: 5
  • Ревизии: 0

Мы хотим поделиться с вами вдохновляющими адаптивными прайс-таблицами сделанными на флексбоксе. Прайс-таблицы являются основной частью лендингов и сайтов на которых предлагают цифровые или другие платные услуги.

Продолжение »

Vampireos
  • Репутация: 11
  • Сниппеты: 1
  • Ревизии: 0
<!DOCTYPE html>
<html lang="ru">
<head>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <meta http-equiv="x-ua-compatible" content="ie=edge">

  <!-- МЕТА -->
  <title>Заголовок</title>
  <meta name="description" content="описание не длинее 155 символов" />

  <!-- open graph Facebook-->
  <meta property="og:title" content="Заголовок" />
  <meta property="og:type" content="website" />
  <!-- если сайт многоязычный -->
  <!-- <meta property="og:locale" content="ru_RU"> -->
  <meta property="og:url" content="http://localhost.my" />
  <!-- не меньше 600х315, не более 8Мб -->
  <meta property="og:image" content="http://localhost.my/img/og_cover.jpg" />
  <meta property="og:description" content="описание не длинее 155 символов" />
  <meta property="fb:admins" content="Facebook ID" />

  <!-- Twitter -->
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@ник_компании_в_твиттере">
  <meta name="twitter:title" content="Заголовок">
  <meta name="twitter:description" content="описание не длинее 155 символов">
  <meta name="twitter:creator" content="@ник_в_твиттере">
  <!-- картинка не меньше 280х150, не более 1Мб -->
  <meta name="twitter:image" content="http://localhost.my/img/tw_cover.jpg">

  <!-- G+ / Pinterest -->
  <meta itemprop="name" content="Заголовок">
  <meta itemprop="description" content="описание не длинее 155 символов">
  <meta itemprop="image" content="http://localhost.my/img/g_cover.jpg">

  <!-- Google authorship -->
  <link rel="author" href="https://plus.google.com/[Google+_Profile]/posts"/>
  <link rel="publisher" href="https://plus.google.com/[Google+_Page_Profile]"/>

  <!-- фавиконы и иконки сайта -->
  <link rel="apple-touch-icon" href="apple-touch-icon.png">

</head>
<body>

</body>
</html>

Валидаторы:

Яндекс https://old.webmaster.yandex.ru/microtest.xml

Google https://search.google.com/structured-data/testing-tool

Pinterest https://developers.pinterest.com/tools/url-debugger/

Twitter https://cards-dev.twitter.com/validator

Facbook https://developers.facebook.com/tools/debug/

Gravatar image
Makcim
  • Репутация: 8
  • Сниппеты: 3
  • Ревизии: 0
<div class="boxes">
  <input type="checkbox" id="box-1">
  <label for="box-1">Sustainable typewriter cronut</label>

  <input type="checkbox" id="box-2" checked>
  <label for="box-2">Gentrify pickled kale chips </label>

  <input type="checkbox" id="box-3">
  <label for="box-3">Gastropub butcher</label>
</div>
стилизация элементов checkbox
.boxes {
  margin: auto;
  padding: 50px;
  background: #484848;
}

/*Checkboxes styles*/
input[type="checkbox"] { display: none; }

input[type="checkbox"] + label {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 20px;
  font: 14px/20px 'Open Sans', Arial, sans-serif;
  color: #ddd;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

input[type="checkbox"] + label:last-child { margin-bottom: 0; }

input[type="checkbox"] + label:before {
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  border: 1px solid #6cc0e5;
  position: absolute;
  left: 0;
  top: 0;
  opacity: .6;
  -webkit-transition: all .12s, border-color .08s;
  transition: all .12s, border-color .08s;
}

input[type="checkbox"]:checked + label:before {
  width: 10px;
  top: -5px;
  left: 5px;
  border-radius: 0;
  opacity: 1;
  border-top-color: transparent;
  border-left-color: transparent;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
Gravatar image
Илья Понамарёв
  • Репутация: 1
  • Сниппеты: 1
  • Ревизии: 0

Для создания сайтов или веб-приложений в материальном дизайне есть отличный framework Material Design Lite, но он дает лишь основу. Мы попытаемся создать плавающую кнопку, которая будет исчезать при прокрутке страницы вниз и появляться при прокрутке вверх.

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

Для начала подключим стили и скрипт MDL, а также подлючим JQuery, с помощью которого мы будем реализовывать исчезновение/появление кнопки.

<!--JQuery-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<!--MDL-->
<link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.indigo-pink.min.css">
<script src="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

Добавим кнопку на страницу и создадим сss свойства для неё. Остальные классы базовые для фреймворка.

.mdl-float-button {
position:fixed;
right:10px;
bottom:10px;
}

<button class="mdl-float-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
  <i class="material-icons">add</i>
</button>

Теперь кнопка жестко привязана к правому нижнему углу с помощью параметра position:fixed и right:10px;bottom:10px;. Создадим два стиля: первый - это анимация уплывания кнопки вниз, а второй - сворачивание внутрь себя (не знаю как назвать этот эффект).

.scale-zero{                 // сворачивание кнопки
transform: scale(0,0);
transition: all 0.1s linear;
}

.scale-one{                  // разворачивание кнопки
transform: scale(1,1);
transition: all 0.1s linear;
}

.translate-down {           // уплывание вниз кнопки
transform: translate(0,120%);
transition: all 0.1s linear;
}

.translate-up {            // всплывание вверх кнопки
transform: translate(0,0);
transition: all 0.1s linear;
}

Осталось только добавить скрипт, который будет отслеживать скролл страницы и добавлять нужные классы к кнопке

var scroll = $(window).scrollTop();  // переменная, с помощью который мы будем узнавать куда скроллиться страница
$(window).scroll ( function() {     //отслеживаем скроллится ли страница
transform('mdl-float-button','translate-up','translate-down'); //параметры для уплывания кнопки
transform('mdl-float-button','scale-one','scale-zero'); //параметры для сворачивания кнопки
})

function transform (selector,classOne,classTwo) {  // функция, которая определяет куда прокручивается список и добавляет/удаляет нужные классы кнопке
 if ($('.'+selector).length != 0) {
   if ($(window).scrollTop() - 20 > scroll) {    // -20 используется лишь для того, чтобы кнопка пропадала не сразу, а после непродолжительного скролла. Данная штука сделана для красоты
    $('.'+selector).removeClass(classOne);
    $('.'+selector).addClass(classTwo);
    scroll = $(window).scrollTop();
   }
   if ($(window).scrollTop() + 20 < scroll) {  // +20 использется по той же причине, что и выше
    $('.'+selector).removeClass(classTwo);
    $('.'+selector).addClass(classOne);
    scroll = $(window).scrollTop();
   }
 }
}

Вот собственно и всё, что нужно для создания плавающей кнопки.

Рабочий пример

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.indigo-pink.min.css">
<script src="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<style>

.scale-zero{
transform: scale(0,0);
transition: all 0.1s linear;
}

.scale-one{
transform: scale(1,1);
transition: all 0.1s linear;
}

.translate-down {
transform: translate(0,120%);
transition: all 0.1s linear;;
}

.translate-up {
transform: translate(0,0);
transition: all 0.1s linear;;
}

.mdl-float-button {
position:fixed;
right:10px;
bottom:10px;
}

</style>

<button class="mdl-float-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
  <i class="material-icons">add</i>
</button>
  
<script>
var scroll = $(window).scrollTop();
$(window).scroll ( function() {
console.log($('#option-1').prop('checked'))
if ($('#option-1').prop('checked')) {transform('mdl-float-button','translate-up','translate-down');}
else {transform('mdl-float-button','scale-one','scale-zero');}
})

function transform (selector,classOne,classTwo) {
 if ($('.'+selector).length != 0) {
   if ($(window).scrollTop()> scroll) {
    $('.'+selector).removeClass(classOne);
    $('.'+selector).addClass(classTwo);
    scroll = $(window).scrollTop();
   }
   if ($(window).scrollTop() < scroll) {
    $('.'+selector).removeClass(classTwo);
    $('.'+selector).addClass(classOne);
    scroll = $(window).scrollTop();
   }
 }
}

</script>  
Gravatar image
Quberik
  • Репутация: 8
  • Сниппеты: 1
  • Ревизии: 0

Как известно css страдает от нехватки Namespace. Классы забиваются только в глобальную область видимости, что соответственно рано или поздно приводит к конфликту имён. Реализуем пространства имён через префиксы. Они позволят нам определить тип класса/объекта.

l- layout. Используется для структурных объектов страницы. Это могут быть: шапка сайта, главное меню, футер, а также любые другие части, которые «вшиты» в шаблон страницы и имеют строго определённое место. Например, сайдбар будет иметь класс l-sidebar.

e- element. Любой выделенный элемент, повторяющийся на нескольких страницах. Это может быть кнопка, список тегов, социальные иконки, JS-плагины календарика, модальных окон, туллтипов и пр. Все они повторяются на нескольких страницах, на разных местах, в разных комбинациях. Например, e-submit кнопка отправки формы, или e-news-header скажет нам о том, что данный класс относится к заголовку новостей.

g- global. Такие префиксы даются «модифицирующим классам». То есть классам, которые навешиваются на любой объект на странице и модифицируют его. К таким классам можно отнести: g-clrfix, g-bold, g-inlineBlock и пр. Все они не являются самостоятельными элементами, а лишь изменяют свойства других объектов.

p- page. Данный префикс будет означать, что данный объект встречается только на одной странице (или группе однородных страниц одного раздела сайта) и не повторяется по всему сайту. Например, блок информации о пользователе и блок друзей встречаются только на странице профиля. Желательно такие классы хранить в отдельном CSS-файле.

j- javascript. Это единственный префикс, классы которого ни в коем случае нельзя стилизовать. Классы с данным префиксом используются только для доступа из JS: $loginForm.find(’.j-sendBtn’).

a- animation. Класс, который используется для анимации объекта. Например, a-fade-in говорит о том, что объект плавно появится на странице при помощи анимации. Или a-slide-up скажет нам о том, что объект появится снизу вверх ввиде анимации слайда.

Все префиксы легко запоминаются и не тормозят ход разработки. И пускай хотя бы не решают решение пространства имён в css полностью, но хотя бы частично заменяют его.

Todo
Gravatar image
Dmitry
  • Репутация: 6
  • Сниппеты: 3
  • Ревизии: 0

Не так давно была необходимость прикрепить намертво иконку к тексту так, что бы при переполнении строки она переносилась на следующую только вместе с последним словом, так на свет и появился этот снипет.

Ограничения:

  • очень не хотелось резать и до оборачивать текст в один тэг с иконкой

Совместимость:

  • все современные браузеры
  • ie8+
<div>
	<span>Некий неизменяемый текст</span>
	<!--добавляем неразрывный пробел, чтоб приклеить иконку-->
	&nbsp;
 	<!--делаем иконку инлайновой. важно! disaplay: inline-block тут не подойдет-->
	<span class="icon"></span>
</div>
/**
* В качестве контента для псевдоэлемента выбираем букву, которая по пропорциям похожа на искомую иконку
* При помощи font-size и line-height добиваемся нужного размера иконки
* Css:
* .icon { font-size: 25px; line-height: 15px; background: url(path-to-icon); }
* .icon:after { content: 'S'; visibility: hidden; }
*/