Задать вопрос
Ответы пользователя по тегу CSS
  • Какие актуальные технологии фронтенда?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Препроцессоры (LESS, SCSS, SASS, Stylus), всякие фреймворки типа Angular и React.js, сборщики типа Grunt или Gulp. Node.js, чтобы это всё замутить в автоматическую сборку. Bower ещё какой-нибудь.
    Нативный JavaScript — это основное и неотъемлемое требование.

    Разумеется, нужно хорошо уметь верстать. Для современных браузеров уже не настолько актуально, но всё-таки стоит использовать спрайты или иконочные шрифты. Я предпочитаю второе.
    Ответ написан
    Комментировать
  • Как организовать правильное вертикальное выравнивание div'ов?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Используйте display: table, display: table-row и display: table-cell, при адаптации под другой экран, если что, просто замените на display: block, или что вам там будет нужно.
    Либо, если вы можете себе позволить IE10+, используйте flexbox. Либо flexbox с полифиллом Flexie.js, тогда и под младшие IE пойдёт. Но это уже изврат, мне кажется.
    Плюс, в интернете полно вариантов, являющихся костылями в основном.
    Ответ написан
  • Анимация навигации как сделать аналог?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Я для таких вещей использую waypoints и CSS-анимацию.
    К примеру, с этим плагином можно написать вот такой сниппет:
    $(".waypoint").each( function() {
      			var $this = $(this);
      			$this.waypoint( function(dir) {
        				if(dir === "down") {
          					$this.addClass("reached");
        				}else if($this.data('both-direction') !== undefined) {
          					$this.removeClass("reached");
        				}
      			}, {offset: parseInt($this.data('offset')) || 0 });
    });


    И потом для любого элемента прописать класс waypoint и (опционально) data-offset — отступ в пикселях, при котором будет добавляться класс reached. И ещё, если указать атрибут data-both-direction, при скролле обратно класс будет убираться. Если не указывать, то останется насовсем. Достаточно удобно использовать такую штуку, если на сайте много элементов, у которых нужно менять класс по мере прокрутки мимо них.

    Но если это нужно для одного элемента на сайте, проще написать обработчик на scroll, конечно.
    Ответ написан
    1 комментарий
  • Как по именам классов и ID css определить фреймворк?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Использовалась методология БЭМ или что-то на неё похожее. К фреймворкам это не имеет вообще никакого отношения.
    Ответ написан
    Комментировать
  • Как сделать бесконечную ширину background в css?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Или background-size: 100% auto;
    Ответ написан
    Комментировать
  • Стоит ли полностью переходить от px к em?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Всё зависит от задачи. Если сайт адаптивный, очень желательно использовать em, а лучше rem (они теперь поддерживаются всеми браузерами, начиная с IE9). Это позволит избежать массы проблем.
    Если есть вероятность, что нужно будет изменить коэффициент масштабирования всего текста на сайте, или большей его части ("сделайте весь текст чуть больше, пожалуйста"), тоже лучше использовать относительные величины.

    Для всего остального можно спокойно использовать px. Мы недавно начали делать приложения для мобильных с помощью Cordova, используем Framework7 — у него в стилях тоже всё через px, хотя вёрстка для мобильных.

    Но для адаптивных сайтов это тоже не жёсткое правило. Если переход на em затруднителен, а адаптив не требует пропорционального уменьшения всего текста, можно обойтись и px. Вопрос в том, насколько сайт велик и как он разрастётся в будущем.

    Плюс, никто не мешает использовать частично em, частично px. Элементы, требующие точных размеров, определённых в px, можно в медиазапросах указать отдельным блоком css. Безграничный простор для творчества, в общем :)
    Ответ написан
    Комментировать
  • Как изменить css одного div при наведении на другой с javascript?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Вы уж либо пишите всё на нативном js, либо на jQuery, зачем перемешивать $ и querySelectorAll?
    Про проход по элементам в цикле в такой задаче я вообще молчу.
    Попробуйте так:
    var $links = $('.category a');
    
    $links.on('mouseover', function(){
      $(this).closest('.category').find($links).css('background','url(/image/ico-catalog-bgr.png) repeat-x');
    });
    
    $links.on('mouseout', function(){
      $(this).closest('.category').find($links).css('background','');
    });
    Ответ написан
  • Как исправить некорректное отображение SVG?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Недавно делали адаптивный сайт, всю голову себе сломал, почему так происходит. В итоге эта проблема решалась через background-size: 99% и всякие такие извращения. Ещё, вроде, помогало создание svg-файлов, у которых края самой фигуры не упираются вплотную в края файла. Но до конца проблема так и не решилась.

    UPDATE
    Кажется, я нашёл ответ на вопрос. Чтобы избавиться от краевых артефактов в Firefox, нужно включить аппаратное ускорение для отображения элемента. Для этого можно использовать, например, 3d-трансформации. Т.е. просто на элементе пропишите transform: translate3d(0,0,0). Мне помогло.
    Ответ написан
  • Как в css расшиперить div вниз до упора?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Если пофиг на старые браузеры, то flexbox.
    Ответ написан
    Комментировать
  • Как изменить класс по id?

    teotlu
    @teotlu
    Навёрстываю упущенное
    > но теперь у меня есть несколько одинаковый #item
    Так не должно быть, id элемента должен быть уникальным и не повторяться у других элементов страницы.

    Вам как раз нужно задать уникальные id всем элементам и обратиться к нужному по id, чтобы удалить класс именно у него. А чтобы навесить одинаковые стили, используйте класс item, например.
    Пример:
    <div id="item1" class="item action"></div>
    <div id="item2" class="item action"></div>
    <div id="item3" class="item action"></div>

    И удаление класса у нужного элемента:
    $("#item3").removeClass("action");
    Ответ написан
  • OOCSS, ACSS, BEM, SMACSS, MCSS?

    teotlu
    @teotlu
    Навёрстываю упущенное
    У меня свой подход к именованию классов, который чаще всего сводится к префиксам:
    lt_ — высший уровень разметки, типа контейнеров для шапки, подвала, сайдбара, основного контента, от layout
    b_ — блок или элемент блока (в случае, когда элемент, пишу b_названиеблока_названиеэлемента, типа b_item_cnt или b_item_img)
    m_ — модификатор, для навешивания дополнительных стилей на блоки или их элементы

    На малых и средних проектах этого за глаза хватает. Вообще из всех рассмотренных методологий понравилась больше всего MCSS, но мне обычно такая строгость разделения слоёв не требуется.
    Ответ написан
    Комментировать
  • Чем лучше анимировать блоки?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Ответ написан
    Комментировать
  • Хочу научиться сайтостроению. Где почерпнуть знания ?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Чтобы не копипастить, сделаю вот так.
    Ответ написан
    Комментировать
  • Как определить, что элемент достиг нижнего края окна?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Я правильно понимаю, что вам нужно что-то такое?
    jsfiddle.net/egzpqoky
    Ответ написан
    Комментировать
  • Как растянуть фон на всю ширину экрана на телефоне?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Значит, у вас блок, которому вы прописываете cover, скорее всего не растянут на всю ширину экрана. У меня никогда не было проблем с cover. Правда, caniuse.com/#search=background-size во вкладке issues говорит про баги cover на iOS, может быть поэтому.
    Ответ написан
    Комментировать
  • Как выделить часть option жирным в select?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Достаточно неплох вот этот скрипт, часто его использую: igor10k.github.io/ikSelect
    Он легко стилизуется и хорошо дружит с кастомными скроллами, например, этим: manos.malihu.gr/jquery-custom-content-scroller
    К тому же, у него есть режим отображения, аналогичного нативному, поверх всех элементов (т.е. если селект внутри контейнера с overflow: hidden, его всплывашка не обрежется).

    Но это если у вас на сайте используется jQuery, конечно. Иначе придётся искать другие варианты.
    Ответ написан
    Комментировать
  • Как сделать переключение классов для JS-меню?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Ну, раз у вас отмечен тег jquery, то примерно вот так:

    var $menu = $(".conmenu-ul"), // кэшируем в переменную меню
        $links = $menu.find("a"); // кэшируем в переменную ссылки
    
    $links.on("click", function() {
        $menu.children().removeClass("active"); // убираем класс у всех пунктов
        $(this).parent().addClass("active"); // добавляем к пункту, содержащему нажатую ссылку
    });
    Ответ написан
    1 комментарий
  • Как правильно следует подключать файлы на сайте?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Стили внутри head, скрипты по возможности в конце body.

    Объясню, почему: стили нам нужно загрузить раньше, чем весь остальной DOM, чтобы сразу отобразить все элементы правильно.

    А скрипты не дают загрузиться остальным элементам страницы, пока не загрузятся сами. Если браузер натыкается на скрипт, он прекращает загрузку DOM до тех пор, пока не выполнит скрипт. Поэтому скрипты по возможности лучше засовывать вниз — тогда страница отобразится на экране раньше, визуально загрузка будет быстрее.

    Никакого "в среднем" нет, файлов должно быть как можно меньше. Меньше файлов — меньше запросов к серверу. Поэтому стоит использовать или какой-нибудь упаковщик стилей-скриптов, который их минимизирует и сливает в один файл, или AMD-загрузчик, вроде RequireJS или чего-то такого.

    jQuery тоже лучше подключать внизу, по описанным мною выше причинам. Но тогда нельзя будет писать всякие onClick="$('.blablabla').hide()", как многие часто делают. Впрочем, так всё равно лучше не делать.
    Ответ написан
    6 комментариев
  • Как масштабировать контент в div?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Чтобы пропорционально регулировать высоту, придётся использовать либо те же vw и vh, либо padding-bottom в процентах, например так:
    jsfiddle.net/yyc7vk0b

    Только учитывайте, что vw и vh поддерживаются не всеми браузерами.
    Ответ написан
    Комментировать