Не злоупотребляю ли я здесь sass extension?

Я использую sass %extend с display:flex ради кроссбраузерной совместимости, и в итоге я получил этот длинный список вложенных элементов в моем файле css только для flexBox.

стиль:

display: -webkit-box;
display: -ms-flexbox;
display: flex;

Это нормально, или это чрезмерное использование% extend, и если да, то какова наилучшая практика.

Спасибо

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

Arkellys 04.01.2019 08:16
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
1
213
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это хорошая практика, потому что если вы хотите использовать это свойство, вы пишете так:

For Example: 
.row{display: -webkit-box; display: -ms-flexbox; display: flex;}
nav .container{display: -webkit-box; display: -ms-flexbox; display: flex;}
nav form{display: -webkit-box; display: -ms-flexbox; display: flex;}
nav form .input-group{display: -webkit-box; display: -ms-flexbox; display: flex;}
nav ul:first-of-type{display: -webkit-box; display: -ms-flexbox; display: flex;}
.sr-buttons.internal{display: -webkit-box; display: -ms-flexbox; display: flex;}
.main-form .status{display: -webkit-box; display: -ms-flexbox; display: flex;}
.main-form .status>aside>ul:first-child{display: -webkit-box; display: -ms-flexbox; display: flex;}
.main-form>ul{display: -webkit-box; display: -ms-flexbox; display: flex;}
.main-form>ul>li{display: -webkit-box; display: -ms-flexbox; display: flex;}
.publish{display: -webkit-box; display: -ms-flexbox; display: flex;}
.publish>div{display: -webkit-box; display: -ms-flexbox; display: flex;}
.publish>div>ul{display: -webkit-box; display: -ms-flexbox; display: flex;}
.publish>div>div{display: -webkit-box; display: -ms-flexbox; display: flex;}
.publish.active>div>ul>li{display: -webkit-box; display: -ms-flexbox; display: flex;}

One more option you can use like this:
.commonFlex{display: -webkit-box; display: -ms-flexbox; display: flex;}

Если вы хотите создать стиль кроссбраузерной совместимости с помощью sass. много способов сделать это. Один из способов создания миксина. сначала вы создаете такой миксин:

@mixin display-flex($important: '') {
    @if $important == '' {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
    } @else {
        display: -webkit-box $important;
        display: -moz-box $important;
        display: -ms-flexbox $important;
        display: -webkit-flex $important;
        display: flex $important;
    }
}

Затем вы можете использовать этот миксин с использованием @include следующим образом

.row {
    @include display-flex;
}

ИЛИ

.row {
    @include display-flex(!important);
}

Если вы хотите расширить это. ты сможешь

%display-flex {
    @include display-flex;
}
.row {
    @extend %display-flex;
}

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