Recentemente, tive alguns problemas ao usar o Twitter Bootstrap para um projeto legado.
O projeto usou alguns nomes de classe CSS muito genéricos que também foram usados pelo Twitter Bootstrap.
Esses nomes de classe genéricos causaram conflitos de interface do usuário entre o estilo legado e o estilo do Twitter Bootstrap.
Uma solução para esse tipo de problema poderia ser o “namespace” dos nomes das classes do Twitter Bootstrap.
Tudo que você precisa fazer é criar um arquivo LESS (por exemplo, style.less) que cria um nome de classe pai para todos os nomes de classe do Twitter Bootstrap.
.tb-styles {
@ import "bootstrap.less";
/** remove the space between @ and import */
}
Quando compilado em um arquivo CSS, a saída deve ser algo como o seguinte exemplo:
.tb-styles .table-condensed { /** properties */ }
/** other classes */
Tudo que você precisa fazer é colocar um elemento de contêiner ao redor das coisas que devem ser estilizadas usando o Twitter Bootstrap. Este elemento recipiente deve ter um atributo de classe de acordo com o prefixo escolhido (.tb-styles no meu exemplo).
Exemplo:
<div class="tb-styles">
<table class="table-condensed">
<!-- table body -->
</table>
</div>
Isso causa algum inchaço em sua saída, mas é uma maneira fácil de evitar colisões de nomes em seus nomes de classe.