Задать вопрос
  • Как сделать такую сетку на Masonry?

    @Chuv1
    <div class="grid">
      <div class="grid-item grid-item--width2 grid-item--height2">1</div>
      <div class="grid-item grid-item--width2 grid-item--height1">2</div>
      <div class="grid-item grid-item--height2">3</div>
      <div class="grid-item">4</div>
      <div class="grid-item grid-item--height2">5</div>
      <div class="grid-item">6</div>
      <div class="grid-item">7</div>
      <div class="grid-item">8</div>
      <div class="grid-item grid-item--width2">9</div>
    </div>

    * { box-sizing: border-box; }
    
    body { font-family: sans-serif; }
    
    /* ---- grid ---- */
    
    .grid {
      background: #EEE;
      max-width: 320px;
    }
    
    /* clearfix */
    .grid:after {
      content: '';
      display: block;
      clear: both;
    }
    
    /* ---- grid-item ---- */
    
    .grid-item {
      width: 80px;
      height: 80px;
      float: left;
      background: #D26;
      border: 2px solid #333;
      border-color: hsla(0, 0%, 0%, 0.5);
      border-radius: 0px;
    }
    
    .grid-item--width2 { width: 160px; }
    .grid-item--width3 { width: 240px; }
    .grid-item--width4 { width: 320px; }
    
    .grid-item--height2 { height: 160px; }
    .grid-item--height3 { height: 240px; }
    .grid-item--height4 { height: 320px; }

    $('.grid').masonry({
      itemSelector: '.grid-item',
      columnWidth: 80,
      columnHeight: 80
    });


    fdb55f59e92e47de8963b55ddd607d8c.png
    Ответ написан
    2 комментария
  • Как правильно собирать CSS файл в Gulp, включая установленные через NPM файлы?

    monochromer
    @monochromer
    DIVeloper
    gulp.task('sass', function() {
      return gulp.src('app/sass/*.scss')
      .pipe(sass({
        includePaths: ['./node_modules']
      }))
      .pipe(gulp.dest('app/css'))
    });

    @import 'normalize.css/normalize.css';
    Ответ написан
    Комментировать
  • Есть ли сайты для проверки верстки?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ага, freelansim.ru
    Ответ написан
    Комментировать
  • Вопрос верстальщикам. Как вы так быстро верстаете и не умираете от скуки?

    @elov4anin
    Frontend developer
    1 Ипользуете БЕМ блоки - заметно ускорят верстку, благодаре реиспользуемости.
    2 Разберитесь с перепроцессорами CSS - less, sass, stylus. Я остановился на пока на стайлус. Миксины, работа с переменными и цветами. чем то напомнит программирование и так же поможет в скорости верстки и поддержке проектов.
    3. Освойте emmet или pug(jade). Тут дело вкуса, тоже ускорят процесс верстки.
    4. Используйет технику помидоро - поработали 20-30 минут - перерыв 5-10. Так раза 2 а потом можно и большой. Но это не каждому заходит, но помогает сконцетрироваться на задаче.
    5. Сброщики проектов gulp/grunt/webpack - автоматизируют рутину. Тут нет предела для творчества
    6. Изучите JS, - будет не скучно))))
    Ответ написан
    1 комментарий
  • Как очень быстро отправить POST?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    все дело в параметрах:
    $.makePost({
    url: somesite.com,
    speed: fast,
    onTrippleClickSpeed: superfast
    })
    Ответ написан
    Комментировать
  • Заработок на вёрстке?

    @myskypesla
    за 1.5 месяца вы изучили даже html и css процентов на 30, впереди ещё много... котсыли, препроцессоры, анимации, сборщики, подбор сторонних библиотек и т.д. это что касается вёрстки. Одна нормальная настройка проекта у вас для понимая месяц займёт
    Ответ написан
  • Поможете разобать вирусный скрипт,который спрятан в SVG картинке?

    lazalu68
    @lazalu68
    Salmon
    Вот что он делает
    window.top.location.href = 'http://yinsewe.us/location.php';


    Функция осуществляет какое-то сложное декодирование, я не стал тратить время на разбор. Всякие даэдрические lmktar, nzbeu и ndgexl хранят в себе ключи top, location и href соответственно
    Ответ написан
    Комментировать
  • С чего начать карьеру, если чувствуешь свою проф непригодность, хотя никогда не пытался устроиться?

    platotel
    @platotel
    IT Product Manager
    selfdestroy, добрый день. Что мне бросилось в глаза:
    - ник про саморазрушение и отсутствие аватарки, что иногда (не всегда) бывает признаком низкой самооценки. Да, есть те, кто по идеологическим или ещё каким-то причинам не хочет афишировать своё лицо, у кого-то просто нет хорошей фотографии, кто-то больше любит какую-то картинку поставить вместо лица, но нет ли именно проблем с восприятием себя?
    - наложение на себя клейма: "проф непригодность", "не обладаю супер знаниями",
    - страх отказа ("никогда не пытался устроиться"),
    - позиция "снизу", демонстрация чувство вины ("извиняюсь"),
    - растерянность ("понятия не имею, как найти", "не знаю, куда плыть дальше"),
    - настрой на провал ("меня просто нигде не возьмут"),
    - "никогда не щупал продакшн в живую" - есть стажировки, Open Source проекты, онлайн-курсы, на которых можно делать свой проект, обучаясь.

    Если Вы сами не верите в себя, кто в Вас поверит? Пожалеют - да, кто-то добрый - даст совет, но сами подумайте: Вы бы взяли на работу человека, который бы на собеседовании говорил, что вообще-то, он плохо подготовлен для работы у Вас, который бы на вопросы о известных ему технологиях сказал бы что-то о том, что не пробовал их изучать, потому что они слишком сложны и т. п.

    Я Вас очень понимаю в том, что иногда хочется опустить руки и переложить ответственность за свою жизнь на кого-то другого или на сложные обстоятельства. Но Вы ведь понимаете, что сильнее Вас за Ваши мечты и идеалы не будет бороться никто? Только Вы можете сказать себе: "я - хозяин своей жизни, и всё, что со мной происходит - результат моих действий либо моего восприятия происходящего". Очень просто сказать: "полюби себя", "начни ценить себя", но часто за низкой самооценкой кроется именно нежелание брать на себя ответственность за свою жизнь. Попробуйте что-то делать в этом направлении. Тогда и в программировании, и в трудоустройстве, и в общении с окружающими станет проще.
    Ответ написан
    17 комментариев
  • Использование событий 'click' и 'touchstart' - есть ли хитрости?

    Inkognitoss
    @Inkognitoss
    Full-stack разработчик.
    В зависимости от устройства можно, особенно если вас устроит проверка через userAgetn
    var isMobile = {
        Android: function() {
            return navigator.userAgent.match(/Android/i);
        },
        BlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        iOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        Opera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        Windows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        any: function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
        }
    };

    Используйте метод isMobile.any() который будет возвращать тру если сейчас задействован мобильный браузер.
    (могут быть нюансы, учитывайте)

    Например нюанс может возникнуть с полноценными десктопами или ноутбуками, где владелец использует тачскрин.
    поэтому ваш вопрос в корне имеет зачатки проблемы, с которыми вы сталкнетесь
    Ответ написан
    1 комментарий
  • Какие проекты могут доверить Junior PHP Developer?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Какие проекты могут доверить Junior PHP Developer?

    любые, как по специфике так и по уровню сложности (c)
    Ответ написан
    Комментировать
  • Поможет ли знание алгоритмов в решении типичных задач?

    Falseclock
    @Falseclock
    решаю нестандартные задачи
    Что такое алгоритм? Это блок схема с правилами и условиями. Часто думают что алгоритм - это что-то страшное и связанное с высшей математикой, длинными формулами и кучей неизвестных. Вовсе нет! Алгоритм - это последовательность действия, которые ведут к какому-то результату.

    У вас есть задача, соответственно надо придумать как ее решить.

    Самый действенный способ, которым даже я пользуюсь, особенно когда у меня 10-ки условий и операций - это нарисовать блок схему и в ней ориентироваться что я хочу и как это реализовать.
    435bd24dad594f279b18ee293b1f353c.gif

    Когда такая блок схема есть, то потом дальше легче ориентироваться, я иногда пишу прям в коде

    /* пример выборки
    		 invoice_number | invoice_amount |           invoice_customer           |    invoice_date     |    date_check    | order_id | order_data_id | quantity | price |              item_uuid
    		----------------+----------------+--------------------------------------+---------------------+------------------+----------+---------------+----------+-------+--------------------------------------
    		 00000000073    |         493920 | bd63f5ba-55f1-11e5-5d98-0e459e882122 | 2017-03-02 01:51:35 |                  |     5110 |         10125 |        8 | 41160 | 76e80df8-5802-11e4-6686-0e459e882122
    		 00000000073    |         493920 | bd63f5ba-55f1-11e5-5d98-0e459e882122 | 2017-03-02 01:51:35 |                  |     5110 |         10124 |        4 | 41160 | bde6a7ce-32c2-11e2-92a8-c692850d4a80
    		 00000000073    |         493920 | bd63f5ba-55f1-11e5-5d98-0e459e882122 | 2017-03-02 01:51:35 |                  |     5110 |               |        1 |   111 | e6b5251c-feb3-11e6-ef88-26a4bef88324
    		 
    		 1.		Пользоваетель добавляет инвойс через сайт, соответствие позициций заказа сохраняется через order_data_id, а то что в инвойсе через item_uuid
    		 2.		Если в 1с кто-то удаляет позицию, то мы в базе также обязаны удалить запись и из invoice_data
    		 2.1		Алгоритм поиска записи:
    		 2.1.1			получаем из этого запроса все текущие позиции с item_uuid
    		 2.1.2.			ищем такую запись в массиве $invoice['Товары']. Если не найдено, то строку нужно удалить
    		 2.2		Процесс удаления:
    		 2.2.1			перед удалением нам надо изменить в таблице order_data стаус на  OrderState::CANCELED -> Отменен
    		 2.2.2			затем удалить запись из invoice_data, так как в инвойсе этой строки не существует
    		 3.		Если в 1с кто-то добавляет позицию, а в CMR такой позиции нет, то мы должны будем ее добавить в invoice_data
    		 3.1.		Добавляем запись без указания order_data_id. Это будет говорить о том, что в счете есть такая позиция, а в CRM она никуда не привязана
    		 3.2.		Необходимо в веб сокете передать эту информацию и на сторое JS сделать информирование и обработку этих данных
    		 4.		Необходимо сравнить все позиции и высчитать новые значения
    		 5.		Пустая выборка означает, что полученный счет никуда не привязан
    		*/


    Ну а реализация алгоритма - это уже инструментарий языка. И это уже нарабатывается с опытом.
    Ответ написан
    2 комментария