Задать вопрос
  • Резиновый контент. Как сделать в Figme?

    kocherman
    @kocherman
    Открывай DevInspector (клавишей F12) и жми комбинацию Ctrl+Shift+M.
    Потом найди среди настроек вкладку со списком устройств.
    Главное в адаптивной верстке - flex-layout и медиа-запросы CSS.
    Ну а что тут еще скажешь...
    5f630c8c17971759872059.png
    Ответ написан
    5 комментариев
  • Как восстановить даты фотографий из EXIF для копий файлов в других каталогах?

    @ComodoHacker
    Разобьем задачу на части.

    1. Перебрать файлы с неверными EXIF.
    2. Для каждого файла найти соответствующий файл с верным EXIF.
    3. Перезаписать EXIF.


    П. 1, полагаю, реализуется простым for /r

    П. 2 можно также реализовать через for /r, но думаю, будет лучше заранее составить список исходных файлов с помощью dir /b /s > list.txt
    А поиск выполнять командой find.

    Для п. 3 подойдет утилита ExifTool. Для копирования информации из другого файла предназначен ключ -tagsFromFile
    Ответ написан
    Комментировать
  • Выбор криптопровайдера (КриптоПро CSP vs ViPNet CSP)?

    ystr
    @ystr
    УЦ практически всегда будет выдавать сертификаты с использованием Крипто-Про CSP, это текущее положение вещей.

    А вот для формирования подписи на базе этих сертификатов вполне возможно использовать и ViPNet CSP, выданные в УЦ сертификаты вполне под это подойдут.

    Эта тема обсуждалась на форуме Крипто-Про: ссылка.

    Альтернативы КриптоАрму тоже можно найти, просто эта программа наиболее популярна.
    Ответ написан
    7 комментариев
  • Где найти сетевые драйвера для windows xp?

    Diman89
    @Diman89
    На сайте производителя материнской платы
    Ответ написан
    1 комментарий
  • Где учить opencart?

    SpiderPigAndCat
    @SpiderPigAndCat
    занимаюсь салообразованием
    надо учить не опенкарт, а пхп. я правда очень рекомендую учить пхп, а не опенкарт. после изучения пхп на +- нормальном уровне опенкарт и вордпресс учится за недельку, а так будешь только кнопочки менять в стандартном шаблоне

    Советую исходя из опыта. Я верстал, потом поучил вп по видеокурсу и худо-бедно мог делать простенькие сайты. Потом на стажировке в веб студии мне сказали делать сайт на опенкарт. Тоже посмотрел пару видосов и начал менять кнопки местами и рамочки на товары добавлять. Очень повезло устроиться в веб студию где был чел который шарил и то и то и теперь, полтора года спустя, смотря на свое тестовое задание я поражаюсь, кто меня мог взять? А чел шарил именно в пхп и вордпресс и опенкарт это были просто инструменты. Например если надо перекопать огород, ты будешь сразу приступать к делу копая лопатой или подготовишь плуг, который перекопает быстрее и без особых усилий с твоей стороны, но его нужно смазать и подкрутить для начала.

    Сейчас ищу работу и везде требуют не wordpress\opencart, а php программиста с знанием вп и опенкарт.
    Ответ написан
    6 комментариев
  • Как сделать такой эффект обводки у текста?

    @agafonov_sv
    Теги h1,...,h6 относятся к блочным элементам, вы border присваиваете не к тексту а к элементу H1. Предлагаю воспользоваться онлайн генератором owumaro.github.io/text-stroke-generator
    Ответ написан
    1 комментарий
  • Компьютер, независимо от ОС, живет по UTC, наплевав на BIOS-время. А сам BIOS ресетится, если отключить питание ПК (CR2032 менял трижды). Есть идеи?

    Slayer_nn
    @Slayer_nn
    Гугол, памаги!
    Ещё есть момент: при отключении питания сбрасываются настройки BIOS, в т.ч. время.
    И три подряд замены батарейки эту проблему не решили.
    Возможно, это как-то связано.


    Да хоть с вытащенной батарейкой. Пока не вытащишь кабель питания из розетки биос должен сохранять свои настройки.
    А раз батарейку вы меняли трижды, то да, где-то в линии что-то не работает
    Надо прозванивать. Сходу не получится определить время

    Решить проблему со временем можно, добавив в планировщике задачу на синхронизацию
    во время запуска пк, входя пользователя и т.д.
    А вот с настройками bios такое не прокатит
    Ответ написан
    Комментировать
  • Объединить html+js+css?

    wapster92
    @wapster92 Куратор тега CSS
    spoiler
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            canvas#canvas {
                display: block;
                background: #000;
            }
        </style>
        <canvas id="canvas">Canvas not supported.</canvas>
        <script>
            (function() {
      'use strict';
      window.addEventListener('load', function() {
        var canvas = document.getElementById('canvas');
    
        if (!canvas || !canvas.getContext) {
          return false;
        }
    
        /********************
          Random Number
        ********************/
    
        function rand(min, max) {
          return Math.floor(Math.random() * (max - min + 1) + min);
        }
    
        /********************
          Var
        ********************/
    
        // canvas 
        var ctx = canvas.getContext('2d');
        var X = canvas.width = window.innerWidth;
        var Y = canvas.height = window.innerHeight;
        var mouseX = X / 2;
        var mouseY = Y / 2;
        var lightMin = 150;
        var lightMax = 200;
    
        if (X < 768) {
          lightMin = 100;
          lightMax = 150;
        }
    
        /********************
          Animation
        ********************/
    
        window.requestAnimationFrame =
          window.requestAnimationFrame ||
          window.mozRequestAnimationFrame ||
          window.webkitRequestAnimationFrame ||
          window.msRequestAnimationFrame ||
          function(cb) {
            setTimeout(cb, 17);
          };
    
        /********************
          Ball
        ********************/
        
        // var
        var ballNum = 3;
        var balls = [];
        var circleSplit = 12;
        var angleSplit = 360 / circleSplit;
         
        function Ball(ctx, x, y, r) {
          this.ctx = ctx;
          this.init(x, y, r);
        }
    
        Ball.prototype.init = function(x, y, r) {
          this.a = rand(0, 360);
          this.a1 = -0;
          this.rad1 = this.a1 * Math.PI / 180;
          this.x = x;
          this.y = y;
          this.r = r;
          this.v = rand(3, 5);
          this.rad = this.a * Math.PI / 180;
          this.points = [];
          this.setPoints();
          this.c = {
            r: rand(0, 255),
            g: rand(0, 255),
            b: rand(0, 255)
          };
          this.v1 = {
            x: 0,
            y: 0
          };
        };
    
        Ball.prototype.setPoints = function() {
          for (var i = 0; i < circleSplit; i++) {
            var pointX = Math.cos(this.rad) * this.r;
            var pointY = Math.sin(this.rad) * this.r;
            var point = [pointX, pointY, rand(0, 360)];
            this.points.push(point);
            this.rad = this.a * Math.PI / 180;
            this.a += angleSplit;
          }
        };
    
        Ball.prototype.draw = function() {
          ctx = this.ctx;
          ctx.save();
          ctx.globalCompositeOperation = 'lighter';
          ctx.shadowColor = 'rgb(' + this.c.r + ', ' + this.c.g + ', ' + this.c.b + ')';
          ctx.shadowBlur = 100;
          ctx.fillStyle = 'rgb(' + this.c.r + ', ' + this.c.g + ', ' + this.c.b + ')';
          ctx.beginPath();
          var xav1 = (this.points[0][0] + this.points[circleSplit - 1][0]) / 2 + this.x;
          var yav1 = (this.points[0][1] + this.points[circleSplit - 1][1]) / 2 + this.y;
          ctx.moveTo(xav1, yav1);
          for (var i = 1; i < this.points.length - 1; i++) {
            var xav2 = (this.points[i][0] + this.points[i + 1][0]) / 2;
            var yav2 = (this.points[i][1] + this.points[i + 1][1]) / 2;
            ctx.quadraticCurveTo(this.points[i][0] + this.x, this.points[i][1] + this.y, xav2 + this.x, yav2 + this.y);
          }
          ctx.quadraticCurveTo(this.points[circleSplit - 1][0] + this.x, this.points[circleSplit - 1][1] + this.y, xav1, yav1);
          ctx.closePath();
          ctx.fill();
          ctx.restore();
        };
    
        Ball.prototype.transform = function() {
          for (var i = 0; i < this.points.length; i++) {
            this.points[i][0] -= Math.sin(this.points[i][2] * Math.PI / 180);
            this.points[i][1] -= Math.cos(this.points[i][2] * Math.PI / 180);
            this.points[i][2] -= this.v;
          }
        };
    
        Ball.prototype.changeColor = function() {
          this.c = {
            r: rand(0, 255),
            g: rand(0, 255),
            b: rand(0, 255)
          }; 
        };
        
        Ball.prototype.resize = function() {
          this.x = X / 2;
          this.y = Y / 2;
        };
    
        Ball.prototype.render = function() {
          this.transform();
          this.draw();
        };
    
        for (var i = 0; i < ballNum; i++) {
          var ball = new Ball(ctx, X / 2, Y / 2, rand(lightMin, lightMax));
          balls.push(ball);
        }
    
        /********************
          Render
        ********************/
        
        function render(){
          ctx.clearRect(0, 0, X, Y);
          for (var i = 0; i < balls.length; i++) {
            balls[i].render(i);
          }
          requestAnimationFrame(render);
        }
    
        render();
    
        /********************
          Event
        ********************/
        
        function onResize() {
          X = canvas.width = window.innerWidth;
          Y = canvas.height = window.innerHeight;
          for (var i = 0; i < balls.length; i++) {
            balls[i].resize();
          }
        }
    
        window.addEventListener('resize', function() {
          onResize();
        });
    
        canvas.addEventListener('click', function(e) {
          mouseX = e.clientX;
          mouseY = e.clientY;
          for (var i = 0; i < balls.length; i++) {
            balls[i].changeColor();
          }
        }, false);
    
      }); 
      // Author
      console.log('File Name / lightBall.js\nCreated Date / April 28, 2020\nAuthor / Toshiya Marukubo\nTwitter / https://twitter.com/toshiyamarukubo');
    })();
        </script>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Google не индексирует сайт? Доступ к отправленному URL заблокирован в файле robots.txt. Как исправить ошибку?

    @sHARek
    Я не мастер!
    Бросилось в глаза */index.php - это не говорит о том что все буквы, символы перед /index.php не индексировать т.к. Disallow: */index.php
    Ответ написан
    Комментировать
  • Как сделать адаптивный фон который продолжается на 4 блока по 900px?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    Обернуть 4 блока в единый контейнер и задать фон ему.
    Ответ написан
    2 комментария
  • Как изменить код HTML в зависимости от ширины экрана?

    Tim-A-2020
    @Tim-A-2020
    $(window).resize(function(e) {
      let width = e.target.innerWidth
        if(width < 1200) {
          //меняем элементы в html
       }
    });
    Ответ написан
    1 комментарий
  • Есть ли готовый скрипт для слабовидящих?

    Robur
    @Robur
    Знаю больше чем это необходимо
    что такое "слабовидящие"?
    Дальтоники? С плохим зрением? различные CVI? Другое?
    Для каждой группы будет своя адаптация. И далеко не все можно сделать "готовыми" скриптами. часть потребует вообще серьезного изменения разметки сайта - это только руками.
    Разве что контрастность поднять и сделать черно-белое все.

    Если вы просто хотите "сделать что-то" чтобы отчитаться что сайт адаптирован для слабовидящих, и вам реальные проблемы реальных людей совершенно не интересны - то просто сделайте все буквы побольше.
    Ответ написан
    4 комментария
  • Почему сайт не работает в explorer 11?

    NeiroNx
    @NeiroNx
    Программист
    Это нормально, не взлетело, так не взлетело. Используйте Хром или Фаирфокс.
    Ответ написан
    Комментировать
  • Как правильно расположить текст на картинке?

    Лучше всего делать, конечно через стили. Подробнее тут.
    Ответ написан
    Комментировать
  • Стоит ли учить css фрейворки по типу Bootstrap?

    @Froggyweb
    Не понятен вопрос.
    Бутсрап это набор классов со стилями для построения шаблонных страниц.
    SASS - синтаксический сахар CSS
    Одно к другому вообще никак
    Знания CSS будет достаточно :)
    Ответ написан
    Комментировать
  • Как отправлять почту с хостинга через другой почтовый сервер?

    @Nc_Soft
    в /etc/postfix/main.cf пишем
    relayhost = [smtp.mailgun.org]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = static:postmaster@mydomain.com:password
    smtp_sasl_security_options = noanonymous
    Ответ написан
    1 комментарий
  • Как решить проблему с блокировкой всплывающих окон в Firefox?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Когда FF блокирует окно, которое бы иначе возникло, вверху окна FF рисует жёлтый бар с предупреждением, что, мол, заблокировал, не дал случиться беде, и кнопкой, через которую можно разрешить сему сайту баловаться и открывать всплывающие окна.

    2019-11-03-07-40-02-5f32be.pngНет жёлтой полоски — не было попытки открыть окно.

    Окно даже не попытается открыться, если window.open() не является прямым следствием действия пользователя: клика мышки, нажатия кнопки на клавиатуре.
    Ответ написан
    1 комментарий
  • Как посмотреть всех членов группы "Администраторы домена" в windows server 2003?

    @Dobryak88
    Системный администратор
    Очень давно не видел 2003 сервер, но он же не отличается от остальных в плане организации учётных записей вроде?
    Администрирование /-/ Управление компьютером /-/ Локальные пользователи и группы /-/ Группы
    Открыть нужную группу и посмотреть.
    Ответ написан
    4 комментария
  • Могут ли взломать Mysql через открытый порт 3306?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Не в порте дело, базу при просмотре сайта будет открывать любой пользователь. Ему же надо смотреть на какие-то посты и комментарий.
    Просто, для безопасности от инъекции делайте проверки запросов. Организуйте свою систему запросов, чтобы сложно было взломать. Храните публичные файлы отдельно от приватных. Все скрипты по работе и обработке баз данных храните в приватной папке. А все что связано с пользовательской информацией храните в папке публичной.
    Ответ написан
  • Странная функция встроенного почтового приложения на айфоне?

    Zoominger
    @Zoominger
    System Integrator
    Это фича. У меня тоже частенько добавляется дополнительная инфа о контактах, удобно же.
    Наверняка это можно отключить, погуглите.
    Но это не глюк.
    Ответ написан
    Комментировать