width, innerwidth, outwerwidth, все возвращает более высокое значение, чем фактическое

На странице: http://local.finerock.com/engagement-rings/halo-engagement-rings.html

Я использую flexbox для отображения фильтров продукта и использовал небольшой jquery, чтобы установить ширину дочернего элемента, равную его брату, код выглядит примерно так:

      $(window).load(function(){
            if($(window).width() >= 900){
                $('.filter-options-content').width($('.filter-options-title').innerWidth());
            }
        });

все равно его ширина больше, чем на самом деле, см. снимок экрана. введите описание изображения здесь

Я использовал все параметры, ширину, внешнюю ширину и внутреннюю ширину, но результаты такие же.

1 ответ

Решение

На мой взгляд, это не лучший способ создания выпадающих элементов.

Однако вот несколько советов по исправлению.

Во-первых, не задавайте дочерним элементам значения ширины или высоты с помощью js.

CSS

custom.css:185

      .block.filter .block-content.filter-content .filter-options-item {
    margin: 0 15px !important;
    flex: 1;
    max-width: 15% !important;
    position: relative; /* add line */
}

custom.css: 210

      .block.filter .block-content.filter-content .filter-options-item .filter-options-content, .catalog-product-view .product-options-wrapper .swatch-attribute .swatch-attribute-options {
    position: absolute;
    border: 1px solid #e8d4c1;
    padding: 10px;
    background: #ffffff;
    width: 100%; /* add line */
}

theme.css: 6544

      .page-layout-1column .block.filter .block-content.filter-content .block-filter-content {
    padding: 20px;
    max-height: calc(100% - 50px);
    overflow-y: auto; /* remove line */
}

Результат:

Надеюсь, это решит вашу проблему.

Другие вопросы по тегам