2017-01-12 4 views
0

私はダイナミック(php)の6つの列を持つメニューを持っています。つまり、htmlだけを変更することはできません。幅を最大幅に置き換えます

は私が持っている:

.col-sw-6 { 
    width: 16.6666%; 
} 

と私はmax-widthwidthを交換する必要があります。私はすでに試しました:

.main-menu .col-sw-6 { 
    width: 16.6666%; 
    max-width: 100% !important; 
} 

しかし、それは動作していません。 CSSのみを含む可能な限り、これを行う方法に関するアイデアはありますか?

+0

あなたのhtmlは? – dippas

+0

widthをmax-widthに置き換える必要があるのはなぜですか? – TylerH

+0

これは巨大な「メガメニュー」を持つMagentoサイトです。問題は、列があまりにも混雑して見えるということでした。私はちょうどメニューのどこかに幅が固定されたdivを見つけたので、幅を100%にしてトリックを行いました。 – Labanino

答えて

1

私の意見では、全体的な問題は、CSSでこれを変更するべきではないということです。

あなたは単に間違っている、最初のインジケーターは、幅を6列幅の要素に異なるものに設定しようとしていることです。

実際には、PHP出力に基づいてクラス名を変更する必要があります。 PHPが3つのアイテムを返す場合、col-md-4が必要です。出力が4アイテム、col-md-3など。

これはあなたがする必要はありません: 1.いくつかの愚かなCSSのルールと戦う 2.グリッドシステムをオーバーライドします(これは一般的に間違っています)。

したがって、CSSの幅のみを処理する代わりに、ナビゲーション項目の数に基づいて正しいクラス名でHTML表現を変更するコードを更新し、各クラスに適切なCSS幅の設定を適用します。

いつも6列ある場合、幅を変更する必要がありますか? もしそうでなければ(あなたがそのダイナミックについて言及したと仮定して)、私が書いたことは意味をなさない。

1

.col-sw-6クラスには、幅設定定義が含まれています。それを上書きする場合は、そのクラスをdivタグから削除します。

関連する問題