Поделюсь с вами лёгкой кастомизацией, которую вы сможете без проблем повторить и приукрасить стандартную форму Геткурса. А именно добавлением значков полям форм 😉
P.S. Телега немного перепутала порядок скриншотов, но я думаю вы поймете 😁
UPD: Поправил в тексте нумерацию скриншотов
Для начала нам нужен сам блок формы (куда же без него), и сделать пару небольших манипуляций с каждым полем. Я буду делать это на стандартных трёх полях, но вы можете сделать по такой же аналогии и с другими полями. Заходим в настройку первого поля, кликнув по шестерёнке (скриншот №1) и в самом низу присваиваем полю класс
Ровно так же поступаем и с остальными полями, добавляя по смыслу классы полям. У меня три поля, соответственно я обозначил их как
Вы без труда сможете найти там свою иконку, если захотите поменять или добавить, и так же поставить Юникодом в правило content (где найти Юникод смотрите скриншот №3). Номер Юникода обязательно должен идти после
#лёгкая_кастомизация #полезная_фишка
P.S. Телега немного перепутала порядок скриншотов, но я думаю вы поймете 😁
UPD: Поправил в тексте нумерацию скриншотов
Для начала нам нужен сам блок формы (куда же без него), и сделать пару небольших манипуляций с каждым полем. Я буду делать это на стандартных трёх полях, но вы можете сделать по такой же аналогии и с другими полями. Заходим в настройку первого поля, кликнув по шестерёнке (скриншот №1) и в самом низу присваиваем полю класс
field-email
, поскольку первое поле в форме просит нас заполнить email (скриншот №4) 😎Ровно так же поступаем и с остальными полями, добавляя по смыслу классы полям. У меня три поля, соответственно я обозначил их как
field-email
, field-name
, field-phone
. После этого в Стилях блока данной формы в "Подробных настройках" вставляем следующий CSS:.field-content {
position: relative;
}
.field-content:after {
content: '';
font-family: fontAwesome;
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
}
.field-email .field-content:after {
content: '\f0e0';
}
.field-name .field-content:after {
content: '\f007';
}
.field-phone .field-content:after {
content: '\f095';
}
В последних 3-х селекторах, где идут только правила content
я вставлял иконки Юникодом с сайта fontawesome v.4.7, так как эта версия интегрирована в Геткурс 😉Вы без труда сможете найти там свою иконку, если захотите поменять или добавить, и так же поставить Юникодом в правило content (где найти Юникод смотрите скриншот №3). Номер Юникода обязательно должен идти после
\
обратного слэша, как это сделано у меня.#лёгкая_кастомизация #полезная_фишка
Каморка Геткурсовода 💻 | Канал Максима Елисеева
Поделюсь с вами лёгкой кастомизацией, которую вы сможете без проблем повторить и приукрасить стандартную форму Геткурса. А именно добавлением значков полям форм 😉 P.S. Телега немного перепутала порядок скриншотов, но я думаю вы поймете 😁 UPD: Поправил в…
This media is not supported in your browser
VIEW IN TELEGRAM
Немного пошаманил и показываю, как можно добавить некоторые возможности при стилизации и разнообразить некоторыми эффектами предыдущую лёгкую кастомизацию.
Сперва следует применить все наработки из этого поста, затем будем творить магию😮
Для начала отключим у Геткурсовских инпутов их выделение при фокусе (делается это на основе псевдокласса
Добавляем вот такой CSS:
😉
#лёгкая_кастомизация #полезная_фишка
Сперва следует применить все наработки из этого поста, затем будем творить магию
Для начала отключим у Геткурсовских инпутов их выделение при фокусе (делается это на основе псевдокласса
:focus-visible
) и допишем в имеющийся CSS такое правило:.field-content input:focus-visible {
border: none;
outline: none;
}
И теперь мы можем во всей красе использовать ещё один мало известный псевдокласс :focus-within
, который позволяет стилизовать элемент, если внутри него произошел фокус или же сам элемент был взят в фокус. Звучит сложно, да, но на деле отталкиваясь от этого мы можем присвоить стили всему, что лежит внутри этого родительского элемента, например нашему псевдоэлементу :after
, а так же стилизовать при этом input
.Добавляем вот такой CSS:
.field-content:focus-within input {
border: 1px solid red;
box-shadow: 0 0 5px red;
}
.field-content:focus-within::after {
color: red;
}
И получаем красивый, а так же стильный эффект на наших полях для ввода! #лёгкая_кастомизация #полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Предыдущая лёгкая кастомизация с полями формы вам определённо понравилась, поэтому я продолжу эту рубрику на канале ☺️
В этот раз я поделюсь с вами кастомизацией эффекта при наведении на мой любимый блок карточек (да-да, видели бы вы, сколько я издевался над ними в своих уроках в Магии Геткурса). Конкретно этот блок называется "Картинка - подзаголовок - заголовок - текст". При наведении на карточки получился интересный эффект преобразования формы картинки. В стили блока был прописан следующий CSS:
😉
P.S. для тех, кто в теме: обнаружил забавный факт, что если убрать галочку из Стилей "Гибкая вёрстка", то на😆
#лёгкая_кастомизация #полезная_фишка
В этот раз я поделюсь с вами кастомизацией эффекта при наведении на мой любимый блок карточек (да-да, видели бы вы, сколько я издевался над ними в своих уроках в Магии Геткурса). Конкретно этот блок называется "Картинка - подзаголовок - заголовок - текст". При наведении на карточки получился интересный эффект преобразования формы картинки. В стили блока был прописан следующий CSS:
.lt-tsr-content .image-wrapper {Благодаря этому мы получим вполне крутой эффект, который превосходно смотрится даже на стандартном блоке без всякой дополнительной кастомизации, который уже не стыдно показать
display: flex;
justify-content: center;
align-items: center;
transition: 0.5s;
}
.lt-tsr-content .image {
transition: 0.5s;
}
.lt-tsr-content:hover .image {
border-radius: 50%;
width: 200px;
height: 200px;
}
P.S. для тех, кто в теме: обнаружил забавный факт, что если убрать галочку из Стилей "Гибкая вёрстка", то на
image-wrapper
появятся флексы, а с image-card
уберутся ненужные абсолютные позиционирования с паддингом в размере 75%, что меня всегда сильно смущал. То есть flex ставится боксу с картинкой при отключении "Гибкой вёрстки". Л — логика #лёгкая_кастомизация #полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Без JS в современной web-разработке никуда 🙂
Поделюсь с вами очень простым, но безумно функциональным методом плавного открытия блока по кнопке. Буду использовать не нативный JS, а библиотеку JQuery, которую поддерживает Геткурс.
Для начала я создал блок, в котором разместил кнопку, и блок обычного текста. Самому тексту я присвоил класс
В появившемся окне ниже я вставляю следующий код, который взаимодействует с классом text-block и применяю метод
😎
#лёгкая_кастомизация #полезная_фишка
Поделюсь с вами очень простым, но безумно функциональным методом плавного открытия блока по кнопке. Буду использовать не нативный JS, а библиотеку JQuery, которую поддерживает Геткурс.
Для начала я создал блок, в котором разместил кнопку, и блок обычного текста. Самому тексту я присвоил класс
text-block
, а в кнопке поставил действие "Вызов JavaScript", которым, я уверен, мало кто пользуется.В появившемся окне ниже я вставляю следующий код, который взаимодействует с классом text-block и применяю метод
.slideToggle()
, который помогает плавно открывать и закрывать блок:$('.text-block').slideToggle();
А чтобы наш текстовый блок изначально не показывался на странице, зайдем в Стили блока и в "Подробных настройках" вставим следующий CSS:.text-block {
display: none;
}
Благодаря таким простым действиям мы получили плавную "раскрывашку" текста по клику на кнопку и достаточно быстро нестандартно и интересно кастомизировали страницу. А если добавить нужные по вашему дизайну стили, будет ещё круче #лёгкая_кастомизация #полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Делать разработку сложнее — не мой вариант. Если это утверждение подходит и для вас, то я думаю вам понравится то, что я нашел на просторах великого и могучего интернета.
Речь пойдет о сервисе enjoycss.com который может генерировать целые, уже застилизованные шаблоны. У сервиса есть встроенный мощный редактор, который тоже приятно радует своими возможностями. Сервис поможет застилизовать блоки, инпуты, кнопки, сгенерировать текст, бекграунд, тени и многое другое. После того, как всё сделали, можно запросить выдачу кода и по смыслу подставить в Геткурс к своим блокам к нужным классам.
Надеюсь, будет полезно тем, кто пока боится писать код самостоятельно, а красоту наводить хочется😎
P.S. Пригодится знание английского!
P.P.S. Или же воспользоваться автопереводом страницы😁
#полезная_фишка
Речь пойдет о сервисе enjoycss.com который может генерировать целые, уже застилизованные шаблоны. У сервиса есть встроенный мощный редактор, который тоже приятно радует своими возможностями. Сервис поможет застилизовать блоки, инпуты, кнопки, сгенерировать текст, бекграунд, тени и многое другое. После того, как всё сделали, можно запросить выдачу кода и по смыслу подставить в Геткурс к своим блокам к нужным классам.
Надеюсь, будет полезно тем, кто пока боится писать код самостоятельно, а красоту наводить хочется
P.S. Пригодится знание английского!
P.P.S. Или же воспользоваться автопереводом страницы
#полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Сделал интересную декоративную фишку для кнопки формы, и хочу поделиться ею с вами.
Бывает такая ситуация, что наш интернет барахлит, либо происходит слишком долгое ожидание от сервера самого ГК, и когда пользователь кликает на кнопку Оплатить/Записаться и т.д., то возможно длительное ожидание, в ходе которого пользователь не до конца понимает, формируется его заказ или нет. Да, Геткурс с недавних пор сделал значок загрузки на самой кнопке, но я предлагаю ещё больше разнообразить и показать пользователю, что его заказ формируется, и ему следует немного подождать, чтобы не было соблазна тыкнуть на кнопку формы ещё раз(и убить все процессы или задвоить заказ) .
Мой простенький скрипт позволяет добавить надпись на кнопке при нажатии что заказ формируется, а так же меняет цвет самой кнопки. Вы можете изменить этот цвет и текст под себя, как вам нравится.
Порядок установки:
1. Поставьте вашему блоку с формой любой класс. У меня этот класс
😎
Пользуйтесь😊
#полезная_фишка
Бывает такая ситуация, что наш интернет барахлит, либо происходит слишком долгое ожидание от сервера самого ГК, и когда пользователь кликает на кнопку Оплатить/Записаться и т.д., то возможно длительное ожидание, в ходе которого пользователь не до конца понимает, формируется его заказ или нет. Да, Геткурс с недавних пор сделал значок загрузки на самой кнопке, но я предлагаю ещё больше разнообразить и показать пользователю, что его заказ формируется, и ему следует немного подождать, чтобы не было соблазна тыкнуть на кнопку формы ещё раз
Мой простенький скрипт позволяет добавить надпись на кнопке при нажатии что заказ формируется, а так же меняет цвет самой кнопки. Вы можете изменить этот цвет и текст под себя, как вам нравится.
Порядок установки:
1. Поставьте вашему блоку с формой любой класс. У меня этот класс
my-form
2. Поставьте скрипт в блок JavaScript под вашу форму:$(function() {
let myForm = document.querySelector('.my-form'); // Здесь поменять класс на класс вашего блока
let formBtn = myForm.querySelector('.btn');
formBtn.addEventListener('click', function() {
this.innerHTML = ' Формируем заказ...';
this.style.backgroundColor = '#a0cfa0';
});
})
Обратите внимание, что если ваш класс у формы будет другим, то в вам в скрипте нужно поставить свой класс вместо .my-form
Пользуйтесь
#полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Проводите марафоны? Есть открытые уроки для всех зарегистрировавшихся? 😏
Тогда наверняка у вас есть красный значок уведомлений, который появляется каждый день, и там скапливается от 100 до 1000 а то и больше. И всё из-за открытых марафонов/уроков/вебинаров, где люди оставляют свою отметку, особенно если потом вам нужно всё это проверить и долго, нудно, утомительно протыкивать кнопку "Принять".
Поделюсь с вами небольшим лайфхаком, как сэкономить себе кучу времени, чтобы почистить ленту ответов. Всё благодаря кнопочке "Принять всё", которую я для вас подготовил. Она принимает все ответы, которые есть на текущей страницу ответов. Т.е. если у вас 8 страниц ответов, то по одному нажатию кнопки, вся текущая страница будет принята. Итого останется нажать её ещё 7 раз, т.к. ГК автоматически подтянет следующую страницу.
Устанавливать кнопку следует в Настройки аккаунта, в раздел "Счётчики и скрипты для BODY":
#лайфхак #полезная_фишка
Тогда наверняка у вас есть красный значок уведомлений, который появляется каждый день, и там скапливается от 100 до 1000 а то и больше. И всё из-за открытых марафонов/уроков/вебинаров, где люди оставляют свою отметку, особенно если потом вам нужно всё это проверить и долго, нудно, утомительно протыкивать кнопку "Принять".
Поделюсь с вами небольшим лайфхаком, как сэкономить себе кучу времени, чтобы почистить ленту ответов. Всё благодаря кнопочке "Принять всё", которую я для вас подготовил. Она принимает все ответы, которые есть на текущей страницу ответов. Т.е. если у вас 8 страниц ответов, то по одному нажатию кнопки, вся текущая страница будет принята. Итого останется нажать её ещё 7 раз, т.к. ГК автоматически подтянет следующую страницу.
Устанавливать кнопку следует в Настройки аккаунта, в раздел "Счётчики и скрипты для BODY":
<script>Кнопочка появится в вашей Ленте ответов справа сверху, примерно через 10 минут (зависит от загруженности сервера ГК, на котором располагается ваш проект) ✔️
$(function() {
if(window.location.href.indexOf('/teach/control/answers/unanswered') > -1) {
$('.container').append(`
<button class="btn btn-success accept-all" style="position: fixed; top: 20px; right: 20px;">Принять всё</button>
`);
$(function() {
var acceptBtns = document.querySelectorAll('.btn[value="accepted"]');
$('.accept-all').on('click', function() {
acceptBtns.forEach(e => e.click());
});
});
}
})
</script>
#лайфхак #полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Многим был интересен механизм работы "Читать далее". В этом посте я раскрою одну из его механик работы. Экспериментировать я буду на своём любимом блоке "Карточек".
Если вы хотите разметить много текста в описании вашего продукта в карточке, то логичнее не делать "портянку", а придерживаться единого ритма текстового контента, например, показывать лишь 3 строчки текста, чтобы всё остальное было скрыто. Но как так сделать?🧐
Демонстрирую один из возможных вариантов:
1) Ставим блок карточек (см. скриншот)
2) Делаем описание карточки с подобной внутренней разметкой:
😉
#полезная_фишка #лёгкая_кастомизация
Если вы хотите разметить много текста в описании вашего продукта в карточке, то логичнее не делать "портянку", а придерживаться единого ритма текстового контента, например, показывать лишь 3 строчки текста, чтобы всё остальное было скрыто. Но как так сделать?
Демонстрирую один из возможных вариантов:
1) Ставим блок карточек (см. скриншот)
2) Делаем описание карточки с подобной внутренней разметкой:
<p>... Очень много вашего текста...</p>
<p class="readmore"><a style="font-weight: bold;">Читать далее...</a></p>
3) Вставляем стили в Стили блока в "Подробные настройки":.lt-tsr-content .description p {
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.lt-tsr-content .description p.opened {
-webkit-line-clamp: initial;
}
.lt-tsr-content .description p.changed a {
font-size: 0;
}
.lt-tsr-content .description p.changed a:before {
content: 'Скрыть';
font-size: 16px;
}
4) В самом низу страницы или под блок с карточками ставим блок с JS-кодом:$(function() {
let readBtns = document.querySelectorAll('.readmore');
readBtns.forEach(el => {
el.addEventListener('click', function() {
this.classList.toggle('changed');
this.previousElementSibling.classList.toggle('opened');
})
})
})
И наслаждаемся чудесным механизмом "Читать далее", который безумно сильно сокращает полотна текста на карточках, а так же делает эстетически приятный однородный вид элементов #полезная_фишка #лёгкая_кастомизация
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотите чтобы в вашем проекте регистрировались только с почты определённого домена? Можно устроить!
Уже не раз сталкивался с тем, что руководители проектов хотят ограничить регистрации таким образом, чтобы в проекте могли регистрироваться только с определенными доменами почтовых сервисов. В этом вопросе поможет достаточно простенький валидатор, который не пропустит человека дальше, если его почта не удовлетворяет условиям прописанным в скрипте.
Делюсь пошаговым планомэвакуации 😱 действий:
1) Вам нужно поставить обычную форму на страницу (поле имейла должно быть не скрыто)
2) Поставить CSS-класс блоку с формой
3) В самый верх страницы поставить следующий CSS в отдельный блок "CSS-код":
#полезная_фишка
Уже не раз сталкивался с тем, что руководители проектов хотят ограничить регистрации таким образом, чтобы в проекте могли регистрироваться только с определенными доменами почтовых сервисов. В этом вопросе поможет достаточно простенький валидатор, который не пропустит человека дальше, если его почта не удовлетворяет условиям прописанным в скрипте.
Делюсь пошаговым планом
1) Вам нужно поставить обычную форму на страницу (поле имейла должно быть не скрыто)
2) Поставить CSS-класс блоку с формой
form
в "Стилях" блока3) В самый верх страницы поставить следующий CSS в отдельный блок "CSS-код":
.form [data-item-name="emailField"] {4) Поставить JS-код в отдельный блок в самый низ страницы, либо под самой формой:
position: relative;
}
.form [data-item-name="emailField"] .field-content:before {
content: '';
position: absolute;
width: 10px;
height: 10px;
background: #333;
border-radius: 50%;
right: 20px;
top: 50%;
transform: translateY(-50%);
}
.form [data-item-name="emailField"].valid .field-content:before {
background: #0f0;
box-shadow: 0 0 5px #0f0,
0 0 10px #0f0,
0 0 20px #0f0;
}
.form [data-item-name="emailField"].invalid .field-content:before {
background: #f00;
box-shadow: 0 0 5px #f00,
0 0 10px #f00,
0 0 20px #f00;
}
$(function() {
function validate() {
let emailInput = document.querySelector('.form [data-item-name="emailField"]');
let innerInput = document.querySelector('.form [data-item-name="emailField"] input').value;
let formButton = document.querySelector('.form button');
const pattern = /@gmail.com|@yandex.ru/;
if (innerInput.match(pattern)) {
emailInput.classList.add('valid');
emailInput.classList.remove('invalid');
formButton.disabled = false;
} else {
emailInput.classList.add('invalid');
emailInput.classList.remove('valid');
formButton.disabled = true;
}
if (innerInput == "") {
emailInput.classList.remove('valid');
emailInput.classList.remove('invalid');
formButton.disabled = true;
}
};
$('.form [data-item-name="emailField"] input').on('keyup',function() {
validate();
});
validate();
})
В данный момент скрипт настроен таким образом, что будет считать валидным строку имейла, если в ней присутствует @gmail.com
или @yandex.ru
. Эта настройка хранится в переменной pattern, вы не пропустите отдельное выделение данного паттерна в скрипте, когда будете ставить его на Геткурс. Вы можете изменить этот паттерн, например, вы хотите добавить так же @mail.ru
, то паттерн будет выглядеть уже вот так /@gmail.com|@yandex.ru|@mail.ru/
Обратите внимание, все новые значения доменов перечисляйте через знак прямого слэша ( |
).#полезная_фишка
Выходные, время работы над своими ошибками и переосмыслению ситуаций. Вот и я на выходных нашел для вас полезный сервис, который помогает выявлять ошибки в CSS-коде онлайн, если вы не понимаете, где у вас затык, и пересмотрели глазами всё вдоль и поперёк 😂
CSS Lint поможет вам найти ошибки в вашем CSS-коде(а так же травмирует ваши чувства, как утверждает сам сервис 😄 ) , и покажет, что и где было не так. На скриншоте я привёл пример своего кривого CSS, и линтер вывел все имеющиеся ошибки в таблицу, так же подсветив строки, в которых нашел проблему. Где-то не закрыты скобки, о чём он тоже сообщает и ругается, а так же неправильное написание некоторых свойств и их значений.
Будет полезно для тех, кому не хочется ставить сторонние специализированные программы по редактору кода😎
#полезная_фишка
CSS Lint поможет вам найти ошибки в вашем CSS-коде
Будет полезно для тех, кому не хочется ставить сторонние специализированные программы по редактору кода
#полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Ломаем систему одноблочности 😁
Речь пойдет про достаточно популярный блок "Обложка", которым пользуются чуть ли не 99% всех проектов уж точно. И зачастую жалуются на то, что его не особо можно разнообразить, например добавить свою колоночную систему нам этот блок не позволяет.
Что ж, придётся решить эту проблему, и навести немного красоты и разнообразия в этом "одноблочном" мире.
Дело в том, что зачастую в этом блоке используются в основном 2 типа элементов: текстовый и картинка. Поэтому будем опираться на них. Они имеют свои достаточно похожие классы, начинающиеся с part:
Прибегая к нехитрой манипуляции и математике, можем уменьшить их ширину в процентах оставляя им некую погрешность в расстоянии между друг-другом.
Если нужно сделать 2 текстовые колонки, внутрь вставляем следующее:
😉
Ну и конечно же вам сперва нужно по порядку поставить текстовые элементы и картинку так, как хотите чтобы они шли в колонках. То есть просто поставить в порядке очереди эти элементы, а потом вставлять соответствующий стилевой код☺️
#полезная_фишка
Речь пойдет про достаточно популярный блок "Обложка", которым пользуются чуть ли не 99% всех проектов уж точно. И зачастую жалуются на то, что его не особо можно разнообразить, например добавить свою колоночную систему нам этот блок не позволяет.
Что ж, придётся решить эту проблему, и навести немного красоты и разнообразия в этом "одноблочном" мире.
Дело в том, что зачастую в этом блоке используются в основном 2 типа элементов: текстовый и картинка. Поэтому будем опираться на них. Они имеют свои достаточно похожие классы, начинающиеся с part:
.part-text
— текстовый элемент.part-image
— изображениеПрибегая к нехитрой манипуляции и математике, можем уменьшить их ширину в процентах оставляя им некую погрешность в расстоянии между друг-другом.
Если нужно сделать 2 текстовые колонки, внутрь вставляем следующее:
.part-text {Если нужно сделать 3 колонки с картинкой по середине, внутрь вставляем следующее:
display: inline-block;
max-width: calc(50% - 10px);
vertical-align: middle;
}
.part-text, .part-image {Функция
display: inline-block;
max-width: calc(33% - 10px);
vertical-align: middle;
}
calc()
будет постоянно пересчитывать эти значения при каждом уменьшении экрана, а значит проблем с адаптивностью данных колонок будет минимум Ну и конечно же вам сперва нужно по порядку поставить текстовые элементы и картинку так, как хотите чтобы они шли в колонках. То есть просто поставить в порядке очереди эти элементы, а потом вставлять соответствующий стилевой код
#полезная_фишка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM