-
Обсуждения
-
Актуальные контакты: Telegram: @Nikker_web E-Mail: tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
-
Актуальные контакты: Telegram: @Nikker_web E-Mail: tarasevich.email@gmail.com Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ Портфолио https://www.behance.net/d4d4186e
-
Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение. .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }
-
Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
-
By Katerina23 · Posted
Да, подходит. Спасибо.
-
Question
s0rr0w
Введение
StateController (далее SC) логически разбит на два независимых процесса: процесс установки значения состояния и процесс обхода дерева нод. Состояние может изменяться в процессе работы несколько раз, может вообще не устанавливаться.
Состояния
Состоянием является имя переменной в процессе установки значения состояния, или идентификатор события в процессе обхода дерева нод. Синтаксис состояния должен удовлетворять правилам создания JS-переменной. При установке значения состояния создается свойство объекта states экземпляра SC. При обходе дерева нод, имя состояния используется в качестве имени события.
Описание объекта
Публичные методы
set
Описание
Устанавливает значение переменной состояния.
Параметры вызова
* name
имя переменной состояния
* value
значение переменной состояния
get
Описание
Возвращает значение переменной состояния.
Параметры вызова
* name
имя переменной состояния
launch
Описание
Запускает обход дерева.
Параметры вызова
* stateObject1
* stateObject2
...
* stateObject_n
Где stateObj = { stateName: { c: container[, v: value, l: levels, p: propagation, d: depth, data: data] } }
* stateName
Имя события
* container
Идентификатор ноды, нода или массив нод или идентификаторов
* value
Новое значение состояния
* propagation
Фильтр нод, на которые распространяется функция реагирования обходчика по дереву нод.
По умолчанию значение равно "*", т.е. обходчик обходит все ноды внутри контейнера.
Значение parent означает распространение действия обходчика только на ноду контейнера.
Значение childNodes означает распространение действия обходчика на ноду контейнера и на все дочерние ноды контейнера.
Можно указывать названия нод через запятую, в верхнем регистре, если необходимо отфильтровать только ноды с определенным именем. Например A,SPAN,DIV. При этом распространение действия обходчика будет на ноду контейнера и на все ноды с указанными именами.
* depth
Глубина погружения в дереве нод среди дочерних элементов контейнера. Действует только на параметр распространения childNodes.
* levels
Уровни состояний, написанные через запятую. По умолчанию значение levels равно "all".
* data
Дополнительные данные, которые могут быть переданы вместе с событием.
addHandler
Описание
Регистрирует обработчик в SC.
Параметры вызова
* handlerName
Имя обработчика
* function
Код обработчика
Обработчики SC
Синтаксис
Для присвоения обработчика или нескольких обработчиков любой ноде используется атрибут SC. Значение атрибута будет обрабатываться контроллером состояний.
Синтаксис scHandlers:
где directive
Каждая директива отделяется друг от друга символом "|". Директива состоит из уровня, имени JS-функции, имени состояния-события, и дополнительных параметров.
Уровень должен быть числовым значением.
Функция-обработчик - имя зарегистрированного обработчика, который будет исполнен при определенных условиях.
Дополнительные параметры не должны содержать символов ":", "*", "|". Желательно использовать синтаксис js-переменных или использовать числа в качестве дополнительных параметров.
Пример использования
Обработчики JS
Обработчикам передаются следующие параметры:
* node
ссылка на ноду, которая содержит обработчик
* scData
объект с инициализирующими параметрами
* execOptions
объект с дополнительными параметрами запуска, которые были указаны в параметре data
scData имеет следующую структуру:
* args
массив аргументов, которые передаются обработчику
* func
имя функции-обработчика
* level
уровень запуска
* state
имя состояния, на которое реагирует обработчик
Принцип работы
Состояние логически является переменной и событием одновременно. Имя состояния выступает типом события. Установка значения переменной состояния никак не влияет на обход дерева нод.
Запуск обхода нод производится для какого-либо участка дерева нод документа. Первым проверяется нода контейнера, потом остальные ноды внутри указанного контейнера. Ограничить зону "видимости" обходчика можно с помощью параметра запуска propagation. У каждой ноды ищется атрибут SC, и, если атрибут найден, разбирается значение данного атрибута. Потом выполняются те обработчики, имя состояния которых соответствует имени события, при этом учитываются параметры level и depth.
Link to comment
Share on other sites
0 answers to this question
Recommended Posts