2014-12-04 2 views
1

Я пытаюсь ссылаться на Bootstrap в моем файле LESS.LESS Bootstrap в качестве ссылки включает содержимое

Я включаю Bootstrap в свой проект с NPM. Если я просто сделаю что-то подобное в моем файле LESS:

@import (reference) 'node_modules/bootstrap/less/bootstrap'; 

Это позволяет мне ссылаться на переменные Bootstrap. Теоретически, поскольку он по ссылке, мой LESS-файл должен компилироваться и не содержать контент, поскольку он не должен включать ничего с LESS.

Однако, она включает в себя следующее:

.thumbnail > img, 
.thumbnail a > img, 
.carousel-inner > .item > img, 
.carousel-inner > .item > a > img { 
    display: block; 
    max-width: 100%; 
    height: auto; 
} 
.btn-group-lg > .btn { 
    padding: 10px 16px; 
    font-size: 18px; 
    line-height: 1.33; 
    border-radius: 6px; 
} 
.btn-group-sm > .btn { 
    padding: 5px 10px; 
    font-size: 12px; 
    line-height: 1.5; 
    border-radius: 3px; 
} 
.btn-group-xs > .btn { 
    padding: 1px 5px; 
    font-size: 12px; 
    line-height: 1.5; 
    border-radius: 3px; 
} 
.dl-horizontal dd:before, 
.dl-horizontal dd:after, 
.container:before, 
.container:after, 
.container-fluid:before, 
.container-fluid:after, 
.row:before, 
.row:after, 
.form-horizontal .form-group:before, 
.form-horizontal .form-group:after, 
.btn-toolbar:before, 
.btn-toolbar:after, 
.btn-group-vertical > .btn-group:before, 
.btn-group-vertical > .btn-group:after, 
.nav:before, 
.nav:after, 
.navbar:before, 
.navbar:after, 
.navbar-header:before, 
.navbar-header:after, 
.navbar-collapse:before, 
.navbar-collapse:after, 
.pager:before, 
.pager:after, 
.panel-body:before, 
.panel-body:after, 
.modal-footer:before, 
.modal-footer:after { 
    content: " "; 
    display: table; 
} 
.dl-horizontal dd:after, 
.container:after, 
.container-fluid:after, 
.row:after, 
.form-horizontal .form-group:after, 
.btn-toolbar:after, 
.btn-group-vertical > .btn-group:after, 
.nav:after, 
.navbar:after, 
.navbar-header:after, 
.navbar-collapse:after, 
.pager:after, 
.panel-body:after, 
.modal-footer:after { 
    clear: both; 
} 

Как я могу ссылаться на Bootstrap файл, не получая, что 60 строк мусора добавлен в мой МЕНЬШЕ файл?

+0

https://github.com/less/less.js/issues – Christina

+0

Это, в основном, не тихий (я думаю, что это термин) mixins. – Christina

+0

Эти классы необходимы, особенно clearfix – Christina

ответ

1

см: https://stackoverflow.com/a/20023205/1596547

когда класс в ссылочном импорте вызывает подмешать из не ссылочного импорта, выход этого Mixin будет (неожиданным) показан в вашем CSS. Таким образом, в ответе выше, не используя ссылку на mixins.less действительно дает много нежелательных классы

AFAIK единственным решением является добавлением ссылочного ключевого слова перед @ импортными годами в bootstrap.less и mixins.less файлы.

+0

Интересно. Не имеет смысла, почему это сработает, но, по крайней мере, я знаю, что происходит. Благодарю. – samanime

+1

Это не совсем правильно. Фактически бросание '(reference)' на 'mixin.less' не поможет (сначала, потому что' (reference) 'является цепным, поэтому импортирует всю загрузочную загрузку, автоматически выдает' (reference) 'ко всем своим вложенным импортам , и во-вторых, проблема выше не в миксинах, а в 'extend' (которая обозначает расширенные/расширяющие классы как« ссылки »независимо от того, где это происходит ... Ну, это долгая история - есть две или три связанные проблемы на less.js/issues, которые могут складываться и применяться здесь). –

+1

Для получения дополнительной информации см. [# 1851] (https://github.com/less/less.js/issues/1851), [# 1878] (https: //github.com/less/less.js/issues/1878) и связанные с этим проблемы, связанные с/там. –

Смежные вопросы