new Date('2020-11-10T12:10:16.000000Z')
const date = new Date('2020-11-10T12:10:16.000000Z')
console.log(new Intl.DateTimeFormat('en-US').format(date)); // 11/10/2020
console.log(new Intl.DateTimeFormat('ru-RU').format(date)); // 10.11.2020
console.log(new Intl.DateTimeFormat(navigator.language).format(date)); // Зависимо от языка пользователя
new Date(str.split(' ', 1)[0].split('.').reverse().join('-')).toLocaleString('ru-RU', {
month: 'long',
day: 'numeric',
})
document.querySelectorAll('.row').forEach(addClass);
// или
for (const n of document.getElementsByClassName('row')) {
addClass(n);
}
const addClass = el => el.classList.add(`row-${el.children.length}`);
const classes = {
3: 'row-3',
5: 'row-5',
7: 'row-xxx',
};
function addClass(el) {
const className = classes[el.children.length];
if (className) {
el.classList.add(className);
}
}
const classes = [
{ max: 3, name: 'row-0-3' },
{ max: 5, name: '' }, // если дочерних элементов 4 или 5, класс не добавляется
{ max: 7, name: 'row-6-7' },
{ max: Infinity, name: 'row-7-x' },
];
function addClass(el) {
const { name } = classes.find(n => n.max >= el.children.length) ?? {};
if (name) {
el.classList.add(name);
}
}
const classes = [
[ c => c < 5, 'row-0-4' ],
[ c => c % 2, 'row-odd' ],
[ c => 6 < c && c < 9, 'row-7-8' ],
];
const addClass = ({ classList, children: { length } }) =>
classList.add(...classes.reduce((acc, n) => (
n[0](length) && acc.push(n[1]),
acc
), []));
<div class="class1 class2">some elem</div>
<button class="btn">toggle</button>
window.onload = e => {
// получаем элементы
const $div = document.querySelector('.class1')
const $btn = document.querySelector('.btn')
// функция, переключающая класс ( нужна для демонстрации )
const toggle = e => $div.classList.toggle('class2')
// функция, которая будет выполняться при изменении атрибутов у $div
const obsCallback = ( ml, ob ) => {
// за место вывода в консоль после проверки на существование класса подставляем нужные функции
ml[0].target.classList.contains('class2') ? console.log(true) : console.log(false)
}
// создание обсервера и передача нашей функции
const observer = new MutationObserver(obsCallback)
// опции (за чем будем следить)
const observerOptions = {
childList: false,
attributes: true,
subtree: false
}
// начинаем наблюдать
observer.observe($div, observerOptions)
// просто повесил событие на кнопку чтобы менять класс у $div
$btn.addEventListener('click', toggle)
}
<section class="portfolio-section">
<div class="container">
<h2 class="portfolio-title">Портфолио</h2>
<div class="portfolio-items">
<div class="portfolio-items__item">
<a href="/" class="portfolio-items__link">
<img class="portfolio-items__image" src="/" alt="">
</a>
</div>
</div>
</div>
</section>
<div class="container"></div>
<div class="title"></div>
<div class="project-preview">
<div class="project-preview__image"></div>
</div>
<div class="portfolio-section">
<div class="portfolio-section__inner">
<div class="portfolio-section__title"></div>
<div class="portfolio-section__grid">
<div class="portfolio-section__preview"></div>
<div class="portfolio-section__preview"></div>
<div class="portfolio-section__preview"></div>
...
</div>
</div>
</div>
<div class="portfolio-section">
<div class="portfolio-section__inner container">
<div class="portfolio-section__title title">Портфолио</div>
<div class="portfolio-section__grid">
<div class="portfolio-section__preview project-preview">
<div class="project-preview__image"></div>
</div>
<div class="portfolio-section__preview project-preview">
<div class="project-preview__image"></div>
</div>
<div class="portfolio-section__preview project-preview">
<div class="project-preview__image"></div>
</div>
<div class="portfolio-section__preview project-preview">
<div class="project-preview__image"></div>
</div>
</div>
</div>
</div>
<ul class="footer__socials socials socials_theme_ligth">
...
</ul>
.socials {
color: #000;
}
.socials_theme_ligth {
color: #fff;
}
.footer__socials {
margin-top: 100px
}
"header": {
"prefix": "p1",
"body": [
"<header class=\"page-header\">",
" <div class=\"page-header__logo page-logo\">",
" <img src=\"/img/$1\" alt=\"$2\" width=\"$3\" height=\"$4\">",
" </div> <!--page-header__logo-->",
" <nav class=\"page-nav page-header__nav\">",
" <button class=\"page-nav__toggle\" type=\"button\">",
" <span class=\"visually-hidden\">${5: Открыть меню}</span>",
" </button>",
" <ul class=\"page-nav__list\">",
" <li class=\"page-nav__item\"><a class=\"page-nav__link ${6: page-nav__link--active}\" href=\"${7: index.html}\">${8: Главная}</a></li>",
" <li class=\"page-nav__item\"><a class=\"page-nav__link\" href=\"${9: catalog.html}\">${10: Каталог}</a></li>",
" <li class=\"page-nav__item\"><a class=\"page-nav__link\" href=\"${11: galery.html}\">${12: Галерея}</a></li>",
" <li class=\"page-nav__item\"><a class=\"page-nav__link\" href=\"${13: about.html}\">${14: О нас}</a></li>",
" </ul> <!--page-nav-->",
" </nav> <!--page-nav__list-->",
" <div class=\"page-header__cover\">",
" <h1 class=\"page-title page-header__title\">$15</h1>",
" <a class=\"page-header__action\" href=\"$17\">${16: Скачать}</a>",
" </div> <!--page-header__cover-->$18",
"</header>$0"
],
"description": "header+nav+cover"
}
.wrapper - /*обвертка сайта*/
.header - /*верхняя часть сайта*/
.sidebar - /*сайдбар (левая или правая часть сайта)*/
.content - /*тело сайта (центральная часть)*/
.footer - /*нижнаяя часть сайта*/
.bl
.block
.box
.wrap
.inner
.container
.main
.head, .header - /*верхняя часть блока например заголовок*/
.cnt, .content, .body - /*тело блока например текс с картинкой*/
.footer - /*нижняя часть блока к примеру дата добавления, категория и т.д.*/
.column, .col - /*колонка*/
.list
.item
.top /* элемент сверху */
.left /* элемент слева float:left */
.right /* элемент справа float:right */
.bottom /* элемент внизу */
.center /* элемент отцвентрирован margin:0 auto; */
.fixed - /*фиксированный элемент postion:fixed */
.next - /*следующий*/
.prev - /*предыдущий*/
.last - /*последний*/
.first - /*первый*/
.back - /*назад*/
.ahead - /*вперед*/
.one
.thwo
.three
.four
.five
.xs, .tiny - /*очень маленький*/
.s, .small - /*маленький*/
.md, .medium - /*средний */
.lg, .large, .big - /*большой */
.xl, .extra-large - /*очень большой*/
.danger - /*цвет опасности*/
.default - /*стандартный цвет*/
.warning, .error - /*цве ошибки*/
.success - /*цвет успеха (к примеру верно введн код подтвержления)*/
.primary - /*основной цвет */
.button, .btn - /*кнопка*/
.loading - /*загрузка*/
.close - /*закрыть*/
.open - /*открыть*/
.touch - /*клик*/
.edit - /*редактировать*/
.more - /*больше*/
.remove - /*удалить*/
.logout - /*выход*/
.select - /*выбрать*/
.divider - /*выпадающийся список меню*/
.caret, .arrow - /*стрелочка*/
.up - /* Вверх */
.down - /* Вниз */
.delete - /* удалить */
.reply - /*ответить*/
.profile - /*профиль*/
.person - /*человек*/
.ava, .avatar - /*аватарка, картинка*/
.name - /*имя*/
.description - /*описание*/
.address - /*адресс*/
.nickname - /*ник*/
.birthday - /*дата рождения*/
.sex - /*пол*/
.author - /* автор */
.title - /*заголовок*/
.short-title - /*скороченный заголовок*/
.full-title - /*полный заголовок*/
.link - /*ссылка*/
.text, .txt, .paragraph - /*текст*/
.info, .information - /*информация*/
.image, .img - /*картинка*/
.icon, .ic - /*иконка*/
.bg - /*фоновая картинки или цвет*/
.search, .form-search - /*поиск по сайту*/
.input - /*текстовый элемент*/
.form - /*форма*/
.form-group - /*группа элементов формы*/
.help-block - /*текст подсказки*/
.label - /*название элемента формы*/
.type - /*тип*/
.cat, .category - /*катигория*/
.subcat, .subcategory - /*подкатегория*/
.section - /*раздел*/
.subsection - /*подраздел*/
.video
.play - /*пуск*/
.stop - /*стоп*/
.pause - /*пауза*/
.social - /* социальные сети */
.vk - /*вконтакте*/
.fb - /*фейсбук*/
.twit - /*твиттер*/
.inst - /*инстаграм */
.none - /*скрытый элемент*/
.disabled - /*заблокированный*/
.active, .current - /*активный */
.selected - /*выбраный*/
.visible - /*видный элемент*/
.focus - /*нажатый*/
.time - /*время*/
.date - /*дата*/
.day - /*день*/
.month - /*месяц*/
.year - /*год*/
.clear, .clearfix, .clr - /*очистка*/
.separator, .divide - /*разделитель вертикальный для слов */
.br, .line - /*разделитель горизонтальный для блоков*/
.logo - /*лого сайта*/
.new - /*новинка*/
.sale - /*распродажа*/
.feedback - /*обратная связь*/
.support - /*помощь */
.group - /*группа*/
.module - /*модуль*/
.posters - /*пост*/
.form - /*форма*/
.tabs - /*вкладки*/
.slider - /*слайдер*/
.news - /*новости*/
.table - /*таблица*/
.full - /*полный*/
.breadcrumbs - /*Хлебные крошки*/
.pagination, .pager - /*Нумерация страниц*/
.navbar, .nav, .menu, .navigation - /*Навигация (меню)*/
.dropdown - /*выпадающейся меню */
.comment - /*комментарий*/
.subscription - /* Подписка */
.special - /* особенный элемент */
.standard - /* стандартный элемент */
.screens - /* Скрины */
.rate - /* рейтинг */
.online - /* онлайн */
.panel - /* панель */
.popup - /* попап */
.version - /* версия */
.page - /* страница */
.banners - /* баннер */
.map - /* Карта */
.more - /*еще, подробнее*/
.tags - /* тег */
.price - /* цена */