• Как открыть Submenu при клике jQuery?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    В зависимости какая у тебя Вложенность будет в меню)

    .mobile-menu__list
                .mobile-menu__item.mobile-menu__item--sub Хадж
                    ul
                        li
                            a(href='#') Расписание поездок
                        li
                            a(href='#') Документы


    $mobMenu.find('.mobile-menu__item--sub').click(function () {
        if ($(this).hasClass('mobile-menu__item--sub-open')) {
            $(this).removeClass('mobile-menu__item--sub-open')
        } else {
            $(this).addClass('mobile-menu__item--sub-open')
        }
         Или 
           $(this).toggleClass('mobile-menu__item--sub-open')
    });
    Ответ написан
    Комментировать
  • По какой причине может появится двойной вертикальный скрол у странички при сужении окна браузера до минимальных величин и как его убрать?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Согласен с ответом, наличие лишних ориентиров ограничений для overflow дает второй скрол внутри контейнера,
    попробуй отловить, просто повесь
    html, body {
      overflow: hidden;
    }


    Если не смог решить то тогда кидай ссылку поможем))
    Ответ написан
    Комментировать
  • Что за режим увеличенного просмотра в Safari на Iphone?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Привет, бро а для увеличения ты меняешь initial-scale=1 или стандартно работаешь с
    html {
      font-size: 16px;
      @media (max-width: 1280px) {
        font-size: 15px;
      }
    }


    Я рекомендую использовать rem в место пикселей. надо смотреть пришлите скрины!
    Ответ написан
    Комментировать
  • Gulp выдает ошибку?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Так бро смотри вот юзай!
    const gulp = require('gulp'), // Подключаем Gulp
        cleanCSS = require('gulp-clean-css'),
        sass = require('gulp-sass'), // Подключаем Sass пакет
        autoprefixer = require('gulp-autoprefixer'),
        concat = require('gulp-concat'); // Подключаем библиотеку для объеденения файлов
    
    let pathBuild = './dist/',  pathSrc = './src/';
    
    gulp.task('sass', function () {
        return gulp.src(pathSrc + 'sass/**/*.+(sass|scss)')
            .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
            .pipe(autoprefixer({browsers: ['ie >= 9', 'last 2 version'], cascade: false}))
            .pipe(cleanCSS({compatibility: 'ie9'}))
            .pipe(gulp.dest(pathBuild + 'css'));
    });
    Ответ написан
    2 комментария
  • Странный уголок, как сделать?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Если присмотреться то этот уголок скруглен так не сделать через бордер, можно через пути сделать, но я рекомендую через svg вот лови: линк
    $color: #00AFF3;
    $corn: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2096%20100%22%3E%0A%3Cpath%20fill%3D%22%2300AFF3%22%20d%3D%22M96%2C100L40.7%2C50L4.1%2C13.9C-1.1%2C8.8%2C2.5%2C0%2C9.8%2C0H96V100z%22/%3E%0A%3C/svg%3E%0A');
    	
    
    .parrent {
    	display:flex;
    	width: 100%;
    	height:300px;
    	
    	padding: 20px;
    	border: 1px solid green;
    	
    	&__block{
    		position: relative;
    		
    		width: 100px;
    		height: 100px;
    		
    		background: $color;
    		
    		&:before {
    			position: absolute;
    			top: 0;
    			width:10px;
    			height:10px;
    			
    			content:'';
    			
    			background-image: $corn;
    			background-size: 10px;
    				
    			transform: translate(-98%,0);
    		}
    	}
    }

    В принципе если захотеть можно и поменять цвет чисто в коде стилей
    Ответ написан
    Комментировать
  • Не подключается свг?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Конечно и не будет работать, потому что input одинарный тег по грубому он не имеет закрытия в нем нельзя разместить псевдоэлемент, вот делай так
    .input
        i.icon-search
        input.input__field(type="text" placeholder="search")

    Ну или просто псевдоклас повесь ток уже на .input
    Кстате такой небольшой хак если у тя иконка как раз такого размера как нужно то можно ее вывести еще так
    .input:before {
      content: url("../img/sprites/icon-search.svg");
    }
    Ответ написан
    Комментировать
  • Как правильно делать ширину кнопки: в % или px?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    В вашем вопросе вы не учли самый главный нюанс, все зависть от дизайна приложения, если все делать по канонам, то есть сначала сделать ui guide всех элементов что нарисовал дизайнер, смотря на гайд можно сразу понимать все отступы и все размеры кнопок и сразу разметить нужные модификаторы для кнопок, а потом только использовать по мере надобности!

    Смотря с какой стороны посмотреть, конечно лучше сразу учесть отступы и размеры кнопок задавать с помощью модификаторов, также я рекомендую забыть про px а использовать глобально rem и если надо локально то em!

    Вот смотри с одного из проектов:
    .button {
      &--sm {
        height: $btn-size-sm;
    
        padding: 0 rem(20);
    
        font-size: $btn-size-sm-fn;
        line-height: $btn-size-sm - rem(2);
      }
    
      &--xs {
        height: $btn-size-xs;
    
        padding: 0 rem(20);
    
        font-size: $btn-size-xs-fn;
        line-height: $btn-size-xs - rem(2);
      }
    
      &--full {
        width: 100% !important;
      }
    
      &--s150 {
        min-width: rem(150) !important;
      }
    
      &--s220 {
        width: rem(220) !important;
    
    }


    Почему rem или em, потому что они еще позволяют легко менять пропорции если это надо к примеру на маленьких экранах не все влезло:
    html {
      font-family: $font-family-primary;
      font-size: 16px;
      font-weight: normal;
      text-align: left;
      line-height: normal;
      letter-spacing: normal;
    
      -moz-osx-font-smoothing: grayscale;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    
      @media (max-width: 992px) {
        font-size: 15px;
      }
    
      @media (max-width: 760px) {
        font-size: 14px;
      }
    
      @media (max-width: 380px) {
        font-size: 13px;
      }
    }
    Ответ написан
    2 комментария
  • Почему не завершается процесс gulp?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Бро мой рабочий конфиг
    let gulp = require('gulp'), // Подключаем Gulp
        cleanCSS = require('gulp-clean-css'),
        sass = require('gulp-sass'), // Подключаем Sass пакет
        pug = require('gulp-pug'), // Подключаем pug
        imagemin = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
        pngquant = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
        cache = require('gulp-cache'), // Подключаем библиотеку кеширования
        spritesmith = require('gulp.spritesmith'), // Подключаем библиотеку создания спрайтов
        merge = require('merge-stream'), // Подключаем merge
        autoprefixer = require('gulp-autoprefixer');
    //
    // // uglify = require('gulp-uglify'), // Подключаем js-минификатор
    // concat = require('gulp-concat'); // Подключаем библиотеку для объеденения файлов
    
    let browserSync = require('browser-sync').create();
    
    let pathBuild = './dist/';
    let pathSrc = './src/';
    
    let pathFonts = [
        pathSrc + 'fonts/**/*'
    ];
    
    gulp.task('sass', function () {
        return gulp.src(pathSrc + 'sass/**/*.+(sass|scss)')
            .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
            .pipe(autoprefixer({browsers: ['last 15 versions'], cascade: false}))
            .pipe(cleanCSS({compatibility: 'ie8'}))
            .pipe(gulp.dest(pathBuild + 'css'));
    });
    
    gulp.task('cleanCSSBuild', () => {
        return gulp.src(pathBuild + 'css/main.css')
            .pipe(cleanCSS({compatibility: 'ie8'}))
            .pipe(gulp.dest(pathBuild + 'css/'))
    });
    
    gulp.task('pug', function () {
        gulp.src('src/pug/*.+(jade|pug)')
            .pipe(pug({pretty: '\t'}))
            .pipe(gulp.dest('dist/'))
    });
    
    gulp.task('js', function () {
        return gulp.src(pathSrc + 'js/**/*.js')
            .pipe(gulp.dest('dist/js'));
    });
    
    
    gulp.task('img', function () {
        return gulp.src(pathSrc + 'img/**/*')
            .pipe(cache(imagemin({
                interlaced: true,
                progressive: true,
                svgoPlugins: [{removeViewBox: false}],
                use: [pngquant()]
            })))
            .pipe(gulp.dest('dist/img'));
    });
    
    gulp.task('fontsDev', () => {
        return gulp.src(pathFonts)
            .pipe(gulp.dest(pathBuild + 'fonts'));
    });
    
    gulp.task('sprite', function () {
        let spriteData = gulp.src('src/sprite/*.png').pipe(spritesmith({
            imgName: '../img/sprite.png',
            cssName: 'sprite.scss'
        }));
        let imgStream = spriteData.img
            .pipe(gulp.dest('src/img/'));
        let cssStream = spriteData.css
            .pipe(gulp.dest('src/sprite/'));
        return merge(imgStream, cssStream);
    });
    
    gulp.task('browserSync', () => {
        browserSync.init({
            server: pathBuild
        });
    });
    
    gulp.task('watch', function () {
        gulp.watch('src/sass/**/*.+(sass|scss)', ['sass', 'cleanCSSBuild']);
        gulp.watch('src/pug/**/*.+(jade|pug)', ['pug']);
        gulp.watch('src/js/**/*.js', ['js']);
        gulp.watch('src/img/**/*', ['img']);
        gulp.watch('src/sprite/**/*.png', ['sprite']);
    });
    
    gulp.task('default', [
        'img',
        'js',
        'sass',
        'pug',
        'fontsDev',
        'cleanCSSBuild',
        'watch',
        'browserSync',
    ]);
    Ответ написан
    Комментировать
  • Почему не работает gulp pug?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Бро влом разбираться , смотри вот мой рабочий конфиг :
    let gulp = require('gulp'), // Подключаем Gulp
        cleanCSS = require('gulp-clean-css'),
        sass = require('gulp-sass'), // Подключаем Sass пакет
        pug = require('gulp-pug'), // Подключаем pug
        imagemin = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
        pngquant = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
        cache = require('gulp-cache'), // Подключаем библиотеку кеширования
        spritesmith = require('gulp.spritesmith'), // Подключаем библиотеку создания спрайтов
        merge = require('merge-stream'), // Подключаем merge
        autoprefixer = require('gulp-autoprefixer');
    
    let browserSync = require('browser-sync').create();
    
    let pathBuild = './dist/';
    let pathSrc = './src/';
    
    let pathFonts = [
        pathSrc + 'fonts/**/*'
    ];
    
    gulp.task('sass', function () {
        return gulp.src(pathSrc + 'sass/**/*.+(sass|scss)')
            .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
            .pipe(autoprefixer({browsers: ['last 15 versions'], cascade: false}))
            .pipe(cleanCSS({compatibility: 'ie8'}))
            .pipe(gulp.dest(pathBuild + 'css'));
    });
    
    gulp.task('cleanCSSBuild', () => {
        return gulp.src(pathBuild + 'css/main.css')
            .pipe(cleanCSS({compatibility: 'ie8'}))
            .pipe(gulp.dest(pathBuild + 'css/'))
    });
    
    gulp.task('pug', function () {
        gulp.src('src/pug/*.+(jade|pug)')
            .pipe(pug({pretty: '\t'}))
            .pipe(gulp.dest('dist/'))
    });
    
    gulp.task('js', function () {
        return gulp.src(pathSrc + 'js/**/*.js')
            .pipe(gulp.dest('dist/js'));
    });
    
    
    gulp.task('img', function () {
        return gulp.src(pathSrc + 'img/**/*')
            .pipe(cache(imagemin({
                interlaced: true,
                progressive: true,
                svgoPlugins: [{removeViewBox: false}],
                use: [pngquant()]
            })))
            .pipe(gulp.dest('dist/img'));
    });
    
    gulp.task('fontsDev', () => {
        return gulp.src(pathFonts)
            .pipe(gulp.dest(pathBuild + 'fonts'));
    });
    
    gulp.task('sprite', function () {
        let spriteData = gulp.src('src/sprite/*.png').pipe(spritesmith({
            imgName: '../img/sprite.png',
            cssName: 'sprite.scss'
        }));
        let imgStream = spriteData.img
            .pipe(gulp.dest('src/img/'));
        let cssStream = spriteData.css
            .pipe(gulp.dest('src/sprite/'));
        return merge(imgStream, cssStream);
    });
    
    gulp.task('browserSync', () => {
        browserSync.init({
            server: pathBuild
        });
    });
    
    gulp.task('watch', function () {
        gulp.watch('src/sass/**/*.+(sass|scss)', ['sass', 'cleanCSSBuild']);
        gulp.watch('src/pug/**/*.+(jade|pug)', ['pug']);
        gulp.watch('src/js/**/*.js', ['js']);
        gulp.watch('src/img/**/*', ['img']);
        gulp.watch('src/sprite/**/*.png', ['sprite']);
    });
    
    gulp.task('default', [
        'img',
        'js',
        'sass',
        'pug',
        'fontsDev',
        'cleanCSSBuild',
        'watch',
        'browserSync',
    ]);


    и json
    {
      "name": "project",
      "version": "1.0.0",
      "description": "project",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "browser-sync": "^2.24.7",
        "gulp": "^3.9.1",
        "gulp-autoprefixer": "^6.0.0",
        "gulp-cache": "^0.4.5",
        "gulp-clean-css": "^3.10.0",
        "gulp-concat": "^2.6.1",
        "gulp-imagemin": "^3.1.1",
        "gulp-minify": "^3.1.0",
        "gulp-pug": "^3.2.0",
        "gulp-sass": "^3.1.0",
        "gulp-uglify": "^2.0.0",
        "gulp.spritesmith": "^6.3.0",
        "imagemin-pngquant": "^5.0.0"
      }
    }
    Ответ написан
    1 комментарий
  • Где можно найти список всех существующих UI интерфейсов сделанные с помощью CSS + JS?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Бро да много где к примеру
    uplabs.com
    www.themelock.com
    themeforest.net/

    да и много других ищи в нете и найдешь все что надо!

    О лучше если есть бюджет на проект, то найми дизайнера пусть он отрисует все как положенно, и нами разботчиков пусть реализуют! В любом случае если актуально то реализую, я чтобы понимал я делаю все что бы перечислил, я специализируюсь на проектировке и верстке больших SPA!
    Ответ написан
    Комментировать
  • Есть ли сервисы онлайн генерации формы html, чтобы я мог забрать её к себе на сайт в виде строчек html?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Сервисы, ну я не встречал таких, вопрос решается легко чуть выше Глеб Варганов написал примерно как и что, а вообще бро если ты слабоват в веб разработке, то советую или реально изучить работу с формами, если ты заказчик и тебе дико нафиг надо этот веб, тип там подшаманил прикрутил и с богом))), то в таких случаях рекомендую обращаться к людям которые сделаю, я про фрилас! Также советую просмотретьhttps://habr.com/post/245731/ https://htmlweb.ru/java/forms.php
    Ответ написан
  • Как сверстать такой блок?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    вот так бро:
    https://jsfiddle.net/74enouhz/1/

    <form class="form">
    	<input class="input" placeholder="Name"></inpu>
    		<input class="input"  placeholder="Email"></inpu>
    		<textarea class="textarea"  placeholder="Message" name="" id="" cols="30" rows="10"></textarea>
    </div>


    .form {
      display: flex;
      flex-flow: row wrap;
      justify-content: space-between;
    
      padding: 10px;
    
      background-color: #f6f6f6;
    
      box-sizing: border-box;
    }
    
    .input {
      display: inline-block;
      
      width: calc(50% - 26px);
    
      margin: 10px;
    
      border: 2px solid #f24f1d;
    }
    
    .textarea {
      flex: 1 1 100%;
    
      margin: 10px;
    }
    Ответ написан
  • Можно ли использовать flexbox и let в 2018?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Привет, бро считаю что не то что можно а и нужно юзатсь новые фичи на дворе 2018, бабель полифилс и автопрефикс если уж нужно добиться кроса помогут, насчет ИЕ то они уже отходят в прошлое, я думаю еще полгода максимум год и о нем все забудут невозвратно если еще этого не сделали!!
    Ответ написан
    Комментировать
  • Съехали стили на сайте, что не так?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Во первых если у вас стили собираются через scss, то зачем уже в конечном файле main.min.css, править надо в исходниках и пересобрать, да выше вам уже написали в чем проблема обратите внимание на кодировку файлах на либу слайдера !
    Ответ написан
  • Почему некорректно отображается шрифт?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    • Убедись что реально шрифт поддерживает латиницу!
    • Сгенери на https://transfonter.org/
    • Скачай архив после генерации и проверь там есть отображение если все четко то подключи!


    Также как вариант подключи c гугл фонт, ну или скачай и проделай все как выше : Здесь

    Также не забывай задавать для более четкого отображения :
    -moz-osx-font-smoothing: grayscale;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
      font-feature-settings: 'liga';
    Ответ написан
    2 комментария
  • Как прижать последний блок через display:table?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    А что если просто контент внутри последнего элемента просто определить по правому краю prntscr.com/jsxu51
    prntscr.com/jszad1

    А что если просто контент внутри последнего элемента просто определить по правому краю  http://prntscr.com/jsxu51
    вот : 
    <code lang="css">
    *{
      margin: 0;
      padding: 0;
      list-style-type: none;
    }
    .wrap{
      display: table;
      width: 800px;
      border: 1px solid #000;
    }
    ul{
      display: table-row;
      
      li {
        display: table-cell;
        padding: 10px 10px;
        
        &:first-of-type{
          width: 300px
        }
      
        &:last-child {
          text-align:right;
    
          width :100px;
          background:red;
        }
       }
    }
    </code>
    Ответ написан
    Комментировать
  • Как изменить стили через сайт?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Конечно можно и через vue, все сделать но я согласен с Микола Деревло смылла тянуть целый фреймворк не вижу если же конечно сама страница уже не имеет задачи быть маленьким SPA приложение, если же там будет развиваться страница в будущем будет серьезный функционал то тогда есть смысл брать какой-то фреймворк , и развивать как душа желает, я бы рекомендовал angular или react, я не могу утверждать но мне кажется что под эти фреймы на данный момент времени, можно найти чуть побольше написаных готовых решений чем под vue,

    Вот сворганил тебе за 5 мин, правда не на чистом JS а на jquery, но и на чистом не проблема смотри
    здесь

    Разметка
    <div class="container">
      <div class="blocks">
    
        <div class="block">
          Блок #1
        </div>
    
        <div class="block">
          Блок #2
        </div>
    
        <div class="block">
          Блок #3
        </div>
    
        <div class="block">
          Блок #4
        </div>
      </div>
      
      <div class="settings"> 
       <div class="">
         <label for="">Цвет</label>
         <input class="color-val" type="text">
         <button id="changeColor">Сменить</button>
       </div>
       
       <div class="">
         <label for="">Ширина</label>
         <input class="width-val" type="text">
         <button id="changeWidth">Сменить</button>
       </div>
       
       <div class="">
         <label for="">Высота</label>
         <input class="height-val" type="text">
         <button id="changeHeight">Сменить</button>
       </div>     
      </div>
    </div>

    Обработка собитий
    $(function() {
     //замена цвета блоков
     $("#changeColor").click(function(){
       var parmColor = $(".color-val").val();
      
        $(".block").css( { backgroundColor: parmColor });
      });
       //замена ширины блоков
     $("#changeWidth").click(function(){
       var parmWidth = $(".width-val").val();
       if (parmWidth > 40) {
       	$(".block").css( { width: parmWidth });
       }
      });
       //замена высоты блоков
     $("#changeHeight").click(function(){
       var parmHeight = $(".height-val").val();
      
        $(".block").css( { height: parmHeight });
      });
    });
    Ответ написан
    1 комментарий
  • Как добиться респонсив в UIKit?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    С UIKit еще не работал, но что-то мне подсказывает что если нету описания для адаптивности текста, то скорее всего через медиа правила, то есть:
    @media (max-width: @your-param) {  
        .uk-text-small,
        . uk-h1 { font-size: 20px; }  
    }


    Ну или может есть какие-то параметры через атрибут на подобии:
    <div uk-h1="ratio:2" >
            Together we can Revolutionize<br>Information Delivery
          </div>
    Ответ написан
    Комментировать
  • Как сделать картинки каждая с заголовком, выводились " встрочку", а если не помещаются переносились "на следующую строку"?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Легко мой друг:
    <div class="main-content">
       <div class="title-image">
         <h2>Заголовок</р2>
         <img src="http:..." alt="" width="" height="" />
       <div>
       <div class="title-image">
         <h2>Заголовок</р2>
         <img src="http:..." alt="" width="" height="" />
       <div>
    <div>
    
    <style>
      .main-content {
       display:flex;
       flex-flow: row wrap
    }
      .title-image{
      display: inherit;
      flex-flow: column;
    }
    <style>


    Плюс также сам заголовок можно позиционировать, и относительно в нутри контейнера по картинке, все зависит от задач!
    Ответ написан
  • Как сделать, чтобы автоматически ставился курсор в форму после переходе по ссылке #anchor?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Также не забудь применить autofocus="true" и не помешает к просмотру https://html5tutorial.info/html5-autofocus.php
    Ответ написан
    Комментировать