Ответы пользователя по тегу CSS
  • Как сверстать такой блок или как сверстать треугольную кнопку?

    Exomode
    @Exomode
    Архитектор ПО
    Учитывая, что в CSS3 можно не только геометрические примитивы рисовать, но еще и полноценные шейдеры видеокарты с нуля писать и применять в визуализации, в вашем распоряжении куда больше возможностей, чем просто внедрение SVG в разметку шаблона на уровне 1998го года. Но касательно вашей задачи, она легко решается в рамках стандартного CSS всего за одни сутки, и поможет вам в решении псевдоселектор ::after. Задайте ему необходимую высоту, градиентный бэкграунд, box-shadow и главное - border-параметры в правильном формате, и вы на выход получите готовое универсальное решение без применения векторной графики. Примеров реализации треугольной кнопки в гугле можно найти тысячи, это уже давно тривиальная задача. Вам лишь остаётся адаптировать имеющиеся решения под свой требуемый формат задачи.
    Ответ написан
    2 комментария
  • Как сделать анимацию плавного увеличения?

    Exomode
    @Exomode
    Архитектор ПО
    Пропишите блоку, который должен быть анимирован, свойство transition в CSS и поиграйтесь с его значениями. Например, transition: all 250ms ease-in-out;
    Эта штука отвечает за базовые анимации, по сути, создаёт плавность изменения свойств CSS в том блоке, где задана.
    Ответ написан
    Комментировать
  • Как на js изменять цвет div в зависимости от выданной цифры(значения)?

    Exomode
    @Exomode
    Архитектор ПО
    Регуляркой парсить то число что у вас там в скобках, иначе никак. Но сразу скажу, что это костыль костылей. Куда лучше передать с сервера сразу в разметке эту информацию, например:
    <div class="user" data-count="число_генерируется_движком">{news}</div>

    после этого вам останется лишь сделать что-то в роде:
    $(".user").each(function (i, e) {
      var count = $(e).attr("data-count");
      // далее делаете с этим числом что хотите.
    });
    Ответ написан
    5 комментариев
  • Как сделать hover на svg?

    Exomode
    @Exomode
    Архитектор ПО
    Для того, чтобы на вашем векторном канвасе работали все события js и css, вам нужно в разметку вашего документа (страницы) непосредственно внедрить полную разметку вашего svg. Далее вы можете с ним делать что угодно, словно это любой другой DOM-элемент. Доступ к дочерним элементам типа g или path так же сохранится с теми же событиями. Если вы подгрузите в документ свой вектор svg как <img src="some.svg" alt="svg" /> или в таком духе, ваши события, разумеется, не будут работать, ни в css, ни в js.
    Ответ написан
    Комментировать
  • В чем смысл bootstrap'a и его аналогов?

    Exomode
    @Exomode
    Архитектор ПО
    Наверное, потому, что проще подключить модуль готового кода в несколько тысяч строчек кода и использовать его потом в своем проекте повторно, чем писать несколько тысяч строчек того же кода с нуля. Это в продакшне фактически экономит минимум одну неделю времени на более-менее серьезном проекте.
    Ответ написан
  • Как исправить прыгающие меню при возведении букв в верхний регистр при наведении?

    Exomode
    @Exomode
    Архитектор ПО
    Как вариант, зафиксируйте высоту ссылки. Или высоту самого меню, а ссылкам дать вертикальное выравнивание vertical-align: middle.
    Ответ написан
    Комментировать
  • Как сменить background-image по таймеру?

    Exomode
    @Exomode
    Архитектор ПО
    На сколько я помню, в нативном js стиль у элемента идет как обычный string, а не словарь. Попробуйте поменять это
    s.backgroundImage = 'url('+bg[i]+')';
    на вот это
    s += "background-image: url("+bg[i]+");";
    Ответ написан
  • Как запретить выступ линка за пределы дива?

    Exomode
    @Exomode
    Архитектор ПО
    У родителя добавить в css "overflow-x: hidden" или сделать ссылку обтекаемой через word-break
    Ответ написан
    4 комментария
  • Можно ли заблокировать размер элементов страницы?

    Exomode
    @Exomode
    Архитектор ПО
    Как вариант, через медиазапросы. Можно на стороне css прописать нужные пропорции на определенном шаге масштабирования. Если сделать их относительными единицами, тогда пропорции будут максимально точны
    Ответ написан
    Комментировать
  • Почему блок сдвинут вверх?

    Exomode
    @Exomode
    Архитектор ПО
    Потому что по умолчанию ссылки имеют свойство display: inline-block и vertical-align у них bottom. Поставьте ссылке свойство:
    vertical-align: top;
    или же уберите у родителя высоту, пускай будет автоматической, а ссылки выравниваются по центру высоты родителя с помощью:
    vertical-align: middle;
    Ответ написан
    5 комментариев
  • Как сохранить класс активной ссылки после перезагрузки страницы?

    Exomode
    @Exomode
    Архитектор ПО
    Можно сохранить параметр в куку, можно привязаться к хешу урла, после перезагрузки он никуда не исчезнет и можно будет проверить наличие:
    var hash = window.location.hash;
    var selectedOption = null;
    
    if (hash && hash != '#') {
      var parts = hash.split('=');
    
      if (parts.length == 2 && parts[0] == "select_option") {
        selectedOption = parts[1];
      }
    }

    Дальше просто присвоить свойство selected селектору "select option[name='" + selectOption + "']" при загрузке страницы, а в onchange списка обновлять хэш. Не часто вижу чтобы подобное решение применялось, но иногда оно вписывается куда элегантнее и проще, чем даже те же куки, которые можно очистить и всё слетит, или вообще отключить. Хэши напоминают строку GET-запроса, только работают исключительно в рамках клиентсайда.

    Эти два варианта подойдут для сугубо клиентской привязки. Можно еще и с помощью сервера организовать, сразу отдавать на клиент разметку с выделенным элементом списка в зависимости от параметра запроса или куки, или сессии, как угодно.

    Вместо списков можно применить к любому элементу, достаточно лишь изменить селектор и вместо свойства selected использовать атрибут классов, к примеру. Всё от вашей фантазии зависит, решений здесь много.
    Ответ написан
    Комментировать
  • Как разместить элемент относительно правого нижнего угла родительского?

    Exomode
    @Exomode
    Архитектор ПО
    Можно так. Если нужно чтобы пространство, которое должен занимать блок ссылки, оставалось исходной высоты, то можно эту ссылку обрамить в тег и задать ему text-align: right, или же просто добавить ссылке float: right. но в таком случае нужно будет ввести после неё ещё один элемент, которому задать clear: both, чтобы отступы работали правильно.
    Ответ написан
    Комментировать
  • Как сделать инпуты ровно?

    Exomode
    @Exomode
    Архитектор ПО
    label {
      display: inline-block;
      vertical-align: middle;
      width: 45%;
      box-sizing: border-box;
    }
    
    input:not([type="radio"]) {
      display: block;
      width: 100%;
    }

    В HTML у вас чуть-чуть ошибочка, там не совсем правильно обрамили радио, нужно открывающий тег перенести ниже, за предыдущий label.
    Если нужно выровнять в одну горизонтальную линию еще и надписи к полям ввода, текст надписи тоже нужно обрамить тегом и сделать его вместе с input display: inline-block, а так же зафиксировать ширину, чтобы это всё не плавало.
    Ответ написан
    Комментировать
  • Как сделать меню с полосками?

    Exomode
    @Exomode
    Архитектор ПО
    .menu .menu_item {
      border-left: 1px solid #c0c0c0;
    }
    
    .menu .menu_item:first-child {
      border-left: 0 none;
    }

    или
    .menu .menu_item {
      border-right: 1px solid #c0c0c0;
    }
    
    .menu .menu_item:last-child {
      border-right: 0 none;
    }


    Вариант для вашей вложенности меню: codepen.io
    Ответ написан
  • Ежедневная смена бэкграунда - как реализовать?

    Exomode
    @Exomode
    Архитектор ПО
    cron/crontab
    Запуск PHP скрипта по расписанию cron. Когда не вс...
    Будет выполнять действие асинхронно по интервалу времени.
    Как вы реализуете логику cron-задачи, уже полностью от вас зависит. Либо будет подменять картинку, либо весь стиль целиком, просто у вас должен быть конфиг, который будет переключаться cron'ом, по нему движок сайта определит, какой контент в данный момент времени отдать клиенту.
    Ответ написан
    Комментировать
  • Как отключить стили таблицы шорткода темы?

    Exomode
    @Exomode
    Архитектор ПО
    Переназначьте новые правила после первого объявления, например:
    table th, table td {
        padding: 10px;
        text-align: center;
        border-width: 1px;
        border-style: solid;
        vertical-align: middle;
    }
    
    table th, table td {
        text-align: left;
    }

    или просто закомментируйте правило в основном стиле:
    table th, table td {
        padding: 10px;
        /*text-align: center;*/
        border-width: 1px;
        border-style: solid;
        vertical-align: middle;
    }

    Для того, чтобы указать конкретным столбцам свои правила, можно сделать так:
    table th:nth-child(2), table td:nth-child(2),
    table th:nth-child(4), table td:nth-child(4) {
        text-align: left;
    }

    Выравнивание слева будет применено лишь ко второму и четвёртому столбцам и их заголовкам.
    Ответ написан
    Комментировать
  • Как сделать так чтобы js код действовал только для div с определенным классом?

    Exomode
    @Exomode
    Архитектор ПО
    Если нужно учитывать высоту только тех блоков, у которых класс hdr:
    function setEqualHeight(columns) {
      var tallestcolumn = 0;
    
      columns.each(function () {
        currentHeight = $(this).height();
        if (currentHeight > tallestcolumn) {
          tallestcolumn = currentHeight;
        }
      });
    
      columns.height(tallestcolumn);
    }
    
    $(document).ready(function () {
      setEqualHeight($(".columns > div.hdr"));
    });

    Если нужно учитывать высоту всех блоков, а применять лишь к тем, у которых класс hdr:
    function setEqualHeight(columns) {
      var tallestcolumn = 0;
    
      columns.each(function (i, e) {
        currentHeight = $(e).height();
    
        if (currentHeight > tallestcolumn) {
          tallestcolumn = currentHeight;
        }
      });
    
      columns.each(function (i, e) {
        if ($(e).hasClass("hdr")) {
          $(e).height(tallestcolumn);
        }
    }
    
    $(document).ready(function () {
      setEqualHeight($(".columns > div"));
    });
    Ответ написан
    Комментировать
  • Как улучшить внешний вид изображения?

    Exomode
    @Exomode
    Архитектор ПО
    Делаете обертку-родителя, вставляете в него изображение через background-image, делаете дочерний блок, тоже вставляете в него изображение через background-image, далее уже от вашей фантазии зависит, позиционировать можно как угодно, рамку, эффекты, анимации, фильтры, тексты, события, другие блоки - все что пожелаете.
    Ответ написан
    Комментировать
  • Как вызвать событие на определённом элементе?

    Exomode
    @Exomode
    Архитектор ПО
    $("#elements > .test:nth-child(2)").click();
    или
    $("#elements > .test").each(function (i, e) {
      if (i == 1) {
        $(e).click();
      }
    });

    или
    var tests = $("#elements > .test");
    
    for (var i = 0; i < tests.length; i++) {
      if (i == 1) {
        $(tests[i]).click();
        break;
      }
    });
    Ответ написан
    3 комментария
  • Как правильно расположить блоки с кнопками?

    Exomode
    @Exomode
    Архитектор ПО
    Набросал я вам тут вариантик на досуге...
    https://codepen.io/Exomode/pen/OjJdma - с применением JavaScript, самый надёжный, но более сложный и требует JS, что само по себе иногда может быть не так производительно как на чистом CSS.
    флоатов и таблиц здесь нет, а это значит что верстка будет отзывчивой для разрешений экранов различных устройств и может содержать в себе неограниченное количество блоков.
    Ответ написан