• Как компилировать Pug в статичный HTML с помощью Brunch?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    В итоге использовал pug-brunch-static.

    А по поводу pugjs-brunch:
    Я считал, что
    здесь
    Static: Plain HTML files from pug templates in the assets directory
    говорилось о возможности компиляции *.pug-шаблонов в статичные html-файлы... но, видимо, не так понял их английский или, все же, не смог настроить.
    Ответ написан
    Комментировать
  • Почему rem'ы работают так при размере шрифта в html в процентах (в Chrome)?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    Ранние попытки решить проблему.
    Как уже заметили (спасибо большое за это) данная проблема замечена только в Chrome.
    Придумал задать стили вот так, работает, как ни странно:
    html {
      font-size: calc(6.25% + 1px - 1px) /* (100% * 1px / 16px = 6.25 | 1rem = 1px) */
      /* 6.25% + 1px - 1px = 6.25%, логично, забавно */
    }
    
    body {
      font-size: 16rem; /* 16px */
      margin:    16rem; /* 16px */
    }


    Либо так - тоже работает:
    html {
      font-size: calc(6.25% + 0px) /* (100% * 1px / 16px = 6.25 | 1rem = 1px) */
      /* 6.25% + 0px = 6.25%, все также логично, только еще проще и "страннее" */
    }


    P.S. В IE оно каким-то боком крашится: font-size: 0.3px. Даже font-size: calc(6.25%), который везде равен 6.25% (в хром, конечно же, не меньше 6px), равен там 0.3px.

    P.P.S. Данный хак можно применить только для Chrome (webkit) одним из таких способов:
    browserhacks.com/#ch


    Окончательное решение было найдено совершенно случайно. От части, на просторах интернета, от части, из проб и ошибок при попытках решить проблему.
    /* Использование em вместо % */
    html {
      font-size: 6.25%; /* (font-size: .0625em) на всякий случай */
      font-size: calc(1em * .0625)
    }

    Почему не .0625em? Это объясняется багом в IE, в котором единицы высчитываются неверно.
    В добавок, таким образом исправляется баг (фича) в webkit-браузерах, описанный подробнее в ответе Ankhena W, за что ей спасибо.

    Теперь мы можем использовать rem подобно px! Just use It!
    Ответ написан
    Комментировать
  • Как запретить скролл body при окрытом модальном окне?

    @ZaxapKramer
    Больной верстальщик
    Обычно при помощи js для body задается overflow: hidden
    или class="scroll-hidden" (где .scroll-hidden { overflow: hidden }).
    Ответ написан
    3 комментария
  • Вертикальное позиционирование дочернего элемента с position:relative;top:(some)%, почему не работает?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    Сергей написал в комментариях:
    Если у элемента не задана высота, то процент от чего брать? =)
    Не работают проценты высоты, без явного ее указания родителю.
    Ответ написан
    Комментировать
  • Как выравнивать текст и иконку по фен шую?

    @ZaxapKramer
    Больной верстальщик
    Если в Вашем случае все работает, значит, этого достаточно. Нет ничего такого в этом:)
    Ответ написан
    Комментировать
  • Как правильно установить Phalcon?

    @ZaxapKramer
    Больной верстальщик
    Не устанавливается phalcon. В чем проблема?
    Кто устанавливал Phalcon, как запустить installer из cygwin(выводит ошибки)?

    docs.phalconphp.ru/ru/latest/reference/install.htm...
    Все работает, я проверил. Именно на CentOS 7, специально даже виртуальную машину запустил:)
    curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.rpm.sh | sudo bash
    sudo yum install php70u-phalcon #у меня PHP7

    P.S. У Вас стоит Yum?
    Ответ написан
    3 комментария
  • Регулярное выражение: передвинуть запятую вправо (или "умножение на 10"), это возможно?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    Как только задал вопрос, понял, что логику выбирал в корне неверную при решении задачи.
    Все работает, прошу прощения. Правда, 0 в конце смущает, но другого решения не знаю.
    from: (\d+)rem|(\d*)\.?(\d?)(\d*)rem
    to: $1$2$3.$4\u0rem
    Ответ написан
    Комментировать
  • Замедляет ли Атрибут width="100%" загрузку iframe и картинок?

    @ZaxapKramer
    Больной верстальщик
    Асинхронная загрузка не означает параллельное ее окончание: все загружается по мере того, как оно загружается. Также, судя по вопросу, Вы сомневаетесь в самом факте асинхронности. Тогда спрошу: как "выглядит" Ваша задача, что загружается iframe, что это за страница у вас вообще такая? Iframe вписан в html (в виде "тега") или добавляется посредством JavaScript?
    А вот width="100%" вряд ли что-то здесь вообще решает. И, осмелюсь сказать, что все нормальные люди уже давно прописывают стили в CSS, а не в атрибутах тега - такая "манера" уже давно устарела:)
    На загрузку картинок тех же СТИЛИ вообще никак не влияют - мое мнение. В чем-то ошибаюсь - скажите. Максимум display:none; в старой Опере и, возможно, каких-то других мне неизвестных динозаврах говорит браузеру не загружать такое содержимое.
    Ответ написан
  • Будет ли жить Phalcon?

    @ZaxapKramer
    Больной верстальщик
    Он весьма и весьма интересный. Пусть он не обладает таким же большим сообществом, как Laravel, но это ни о чем, в принципе, не говорит.
    Laravel по архитектуре и скорости работы не превосходит Phalcon, то же самое, в принципе, можно сказать и о Yii c Zend и многих других.
    Пожалуй, одна из причин относительно малой распространенности Phalcon - то, что на обычный хостинг его не поставишь (а многим ведь нравятся такие извращения). Под него, как под Laravel, не написано множество модулей типа (собери конструктор)...

    Будучи расширением, написанным на C и Zephir, он обладает приемлемой скоростью работы и потребляет значительно меньше ресурсов, чем если бы это был чистый PHP (framework).
    Phalcon + PHP7 = Must Have.
    Архитектура мне очень нравится, писать "легко и удобно", именно с Phalcon я немного полюбил php.

    Интересно - "ковыряйте", понравится - используйте! Можно попробовать заинтересовать начальство - многим это удавалось. Удачи.
    Ответ написан
    Комментировать
  • Есть ли способ задать пользовательские стили тегу audio через css?

    @ZaxapKramer
    Больной верстальщик
    Может, немного не по теме, но почему бы не использовать библиотеку Audio.js?
    Все приводится к общему виду, так или иначе. А это - именно то, что Вам нужно.

    P.S. Отображение плеера в тех же Chrome и Firefox слишком разнится, чтобы просто стилями пытаться приводить их к общему виду - мое мнение.
    Ответ написан
    1 комментарий
  • Как присвоить класс через js?

    @ZaxapKramer
    Больной верстальщик
    На JavaScript? Так:
    document.querySelector(".story .link .highslide").classList.add("link link_ajax link_theme_normal", "story__image gw9wsja80d4pldi__image i-bem");

    Либо так, если элементов несколько:
    [].forEach.call(document.querySelectorAll(".story .link .highslide"), function(el){
        el.classList.add("link link_ajax link_theme_normal", "story__image gw9wsja80d4pldi__image i-bem");
    });
    Ответ написан
    Комментировать
  • Как следить за участниками в Facebook и Вконтакте?

    @ZaxapKramer
    Больной верстальщик
    Использовать API? ВКонтакте (не знаю, как Фейсбук) предоставляет статистику о посещаемости, весьма подробную.
    Можно вытащить все через API и поместить красиво в HTML с помощью JS. Открывать по необходимости... Как вариант.
    Ответ написан
  • Как обернуть каждый тег в несколько DIV'ов, содержащих по атрибуту от этих самых тегов?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    Решил проблему заменой getElementsByTagName() на querySelectorAll() - получил статический NodeList взамен динамического HTMLCollection. Других способов получить статическую "коллекцию" не нашел, увы...
    Ответ написан
    Комментировать
  • Интернет Магазин на фронт-енде + firebase реально?

    @ZaxapKramer
    Больной верстальщик
    Для Лендинга CMS не нужна, именно CMS, а те, кто делают это на WordPress, обычно не понимают, что это неправильно.
    От WP в таком случае ничего уже не остается, в итоге он - просто куча скриптов, которые тянутся за LP и лишь занимают место на хостинге и нагружают его.
    Для интернет магазина есть свои CMS, но можно сделать и по-вашему, если не пострадаете от этого, ибо полное незнание back-end карается...
    Для Landing Page подойдет простой движок (возможно, на файлах: вам бд не нужна особо для такой задачи, хотя...на вкус и цвет).
    То, что вы описали, вполне себе реализуемо, почему нет? Главное - как именно вам будет удобно создавать, а другу - поддерживать.
    Для начала определитесь, что именно нужно вам или другу: Интернет-магазин или (продающая) LP, потому что это совсем разные вещи.

    Можете еще про SSI почитать, но вряд ли в вашем случае это будет полезно.
    Ответ написан
    3 комментария
  • Кто устанавливал Phalcon, как запустить installer из cygwin(выводит ошибки)?

    @ZaxapKramer
    Больной верстальщик
    У меня тоже в свое время были разного рода заморочки по этому поводу: Laravel и прочие сказываются.
    На деле же phalcon.dll - это весь фреймворк, вот весь. Установили? Что делать дальше? Ничего, начинайте писать)) В документации есть примерные структуры под разного рода проекты и т.п. (Phalcon не диктует особой структуры проекта), а остальное Вы найдете в Git, удачи.
    Ответ написан
    Комментировать
  • Как получить значение из предложенного JSONP с помощью чистого JavaScript?

    @ZaxapKramer Автор вопроса
    Больной верстальщик
    Проблему решил.
    Избавился от callback - получил просто JSON (без "P").
    Далее применил JSON.parse() на этот самый JSON (в моей функции ajax последним параметром указал true), получил значение через описанный в вопросе forEach. Удачи:)
    Ответ написан
    Комментировать
  • Почему не работает контроллер?

    @ZaxapKramer
    Больной верстальщик
    Необходимо в SecurityPlugin.php, который находится в app/plugins (если не изменяет память), прописать в параметрах ACL страницу (контроллер и действие(ия)).

    Если необходимо сделать страницу доступной для всех (public) - ~59 строка:
    $publicResources = array(
    	'index'      => array('index'),
    	'about'      => array('index'),
    	'register'   => array('index'),
    	'errors'     => array('show401', 'show404', 'show500'),
    	'session'    => array('index', 'register', 'start', 'end'),
    	'contact'    => array('index', 'send'),
    	'test'       => array('index') // Как-то так: test указывает на TestController, index - на indexAction     
    );


    Если же страница должна быть доступна только зарегистрированным пользователям (private), делайте аналогично в $privateResources (~48 строка):
    $privateResources = array(
    	'companies'    => array('index', 'search', 'new', 'edit', 'save', 'create', 'delete'),
    	'products'     => array('index', 'search', 'new', 'edit', 'save', 'create', 'delete'),
    	'producttypes' => array('index', 'search', 'new', 'edit', 'save', 'create', 'delete'),
    	'invoices'     => array('index', 'profile'),
    	'test'         => array('index') // Вот, как-то так:)
    );


    Удачи!
    Ответ написан
    Комментировать
  • Есть ли перспективы у фреймворка PHP Phalcon?

    @ZaxapKramer
    Больной верстальщик
    Phalcon не утратил/утратит перспективы с выходом PHP 7. Скорее, он просто станет быстрее.
    Не думаю, что PHP7 vs Phalcon вообще имеет место быть - тут, скорее, PHP7 with Phalcon:)
    HHVM - другой вопрос: он как раз не восходит, а нисходит.
    Ответ написан
    Комментировать
  • Почему не выводится первое представление на phalcon 2.1?

    @ZaxapKramer
    Больной верстальщик
    Если речь опять идет об INVO, то тут дело в том, что шаблонизатор phtml не подключен по умолчанию, зато подключен очень удобный шаблонизатор volt. Все volt-файлы автоматически компилируются в phtml-представления (да, расширение там по умолчанию - "php" (можно задать любое), но phtml, как я понял - это php+html).
    Напишите тот же "Привет, мир!" в одноименном volt-файле.
    Если Вам необходимо писать шаблоны именно на php+html (не думаю, что это удобно), читайте, как его подключать (шаблонизатор), либо напишу.
    Ответ написан
    1 комментарий
  • Как исправить ошибку при регистрации пользователя на phalcon?

    @ZaxapKramer
    Больной верстальщик
    Какой версией фреймворка Вы пользуетесь?
    В версии 2.1 разработчики отказались от отдельного валидатора в моделях (по-моему, это правильное решение).

    Используйте Validation:
    <?php
    use Phalcon\Mvc\Model;
    use Phalcon\Validation;
    use Phalcon\Validation\Validator\Email as EmailValidator;
    use Phalcon\Validation\Validator\Uniqueness as UniquenessValidator;
    
    class Users extends Model
    {
        public function validation()
        {
            $validation = new Validation();
    
            $validation
                ->add('email', new EmailValidator())
                ->add('email', new UniquenessValidator(array(
                    'model'   => $this,
                    'message' => 'Sorry, The email was registered by another user'
                )))
                ->add('username', new UniquenessValidator(array(
                    'model'   => $this,
                    'message' => 'Sorry, That username is already taken'
                )));
    
            return $this->validate($validation);
        }
    }


    А ошибки, если что, Вы можете вывести в котнроллере, используя метод flash, конечно же, передав в него свою модель:
    <?php
    // ...
    
    $user = new Users;
    
    foreach ($user->getMessages() as $message) {
        $this->flash->error($message->getMessage());
    }
    
    // ...


    P.S. Фреймворк развивается, документация устаревает :)
    Ответ написан
    4 комментария