110

Twitter Bootstrap を使用したいのですが、特定の要素に対してのみです。そのため、すべての Twitter Bootstrap クラスにプレフィックスを付ける方法を見つけるか、あまり使用しない mixin を使用する必要があります。私はまだこれに慣れていないので、これを行う方法がよくわかりません。スタイルを設定しようとしている HTML の例を次に示します。

<div class="normal-styles">
  <h1>dont style this with bootstrap</h1>
  <div class="bootstrap-styles">
    <h1>use bootstrap</h1>
  </div>
</div>

この例では、Twitter Bootstrap は両方とも通常のスタイルh1を使用しますが、Twitter Bootstrap スタイルを適用する領域をより選択したいと考えています。

4

13 に答える 13

143

これは思ったより簡単でした。Less と Sass はどちらも名前空間をサポートしています (同じ構文を使用しても)。ブートストラップを含める場合、名前空間へのセレクター内で実行できます。

.bootstrap-styles {
  @import 'bootstrap';
}

更新: LESS の新しいバージョンの場合、その方法は次のとおりです。

.bootstrap-styles {
  @import (less) url("bootstrap.css");
}

同様の質問がここで回答されました。

于 2012-12-20T17:14:51.813 に答える
10

@Andrew、@Kevin、および @adamj の回答 (およびその他のいくつかのスタイル) をまとめると、「bootstrap-namespaced.less」という名前のファイルに以下を含めると、単に「bootstrap-namespaced.less」を任意のファイルにインポートできます。ファイル:

// bootstrap-namespaced.less

// This less file is intended to be imported from other less files. 
// Example usage:
// my-custom-namespace {
//  import 'bootstrap-namespaced.less';
// }

// Import bootstrap.css (but treat it as a less file) to avoid problems 
// with the way Bootstrap is using the parent operator (&).
@import (less) 'bootstrap.css';

// Manually include styles using selectors that will not work when namespaced.

@import 'variables.less';

& {
    // From normalize.less

    // Previously inside "html {"
    // font-family: sans-serif; // Overridden below
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;

    // Previously inside "body {"
    margin: 0;

    // From scaffolding.less

    // Previously inside "html {"
    // font-size: 10px; // Overridden below
    -webkit-tap-highlight-color: rgba(0,0,0,0);

    // Previously inside "body {"
    font-family: @font-family-base;
    font-size: @font-size-base;
    line-height: @line-height-base;
    color: @text-color;
    background-color: @body-bg;
}
于 2015-07-01T07:44:49.857 に答える
3

ファイルの .less バージョンを使用します。必要な less ファイルを決定し、それらの .less ファイルを次のようにラップします。

.bootstrap-styles {

    h1 { }

}

これにより、次の出力が得られます。

.bootstrap-styles h1 { }
于 2012-12-20T13:08:39.220 に答える
2

名前空間は、スタイルが適用された名前空間要素をバイパスして、常に <body> タグに直接追加されるため、Modal プラグインの背景 div を壊します。

$body背景を表示する前にプラグインの参照を変更することで、これを修正できます。

myDialog.modal({
    show: false
});

myDialog.data("bs.modal").$body = $(myNamespacingElement);

myDialog.modal("show");

$bodyプロパティは、背景が追加される場所を決定します。

于 2016-03-14T02:46:30.273 に答える
2

Lessが何であるかを知らない人のために、Andrewが話していたすべてのステップをよりよく説明する. これがどのように行われるかを段階的に説明するリンクですBootstrapまたは他のCSSライブラリを分離する方法

于 2016-09-12T16:26:12.007 に答える