0

dojo 1.8を使用していますが、bordercontainer/contentpaneレイアウトにパディングは必要ありません。問題は、クラススタイルを適用するだけでなく、claro cssファイルを追加すると、コンテンツペインに使用しているdivのスタイルがインラインで適用されるように見えることです。これはプログラムで行われているようですが、cssファイルを追加した場合のみです。

たとえば、ヘッダーとして使用するコンテンツペインは次のようになります。

<div data-dojo-props="region: 'top'" 
   data-dojo-type="dijit/layout/ContentPane" 
   id="header" 
   class="dijitContentPane dijitBorderContainer-child 
     dijitBorderContainer-dijitContentPane 
     dijitBorderContainerPane dijitAlignTop" 
   title="" role="group" widgetid="header" 
   style="left: 5px; top: 5px; position: absolute; width: 1387px;">

これにより、style = "left:5px; top:5px ...."が追加されます。これにより、cssを使用して任意のタイプのパディングまたはマージン設定をオーバーライドすることはできなくなります。このような絶対位置を使用して、コンテンツペインにパディングまたは「仮想」パディングを含めないようにします。どうすればクラロを使用できますが、この動作を防ぐことができますか?

4

3 に答える 3

2

5pxは、ガターがtrueに設定されているために発生しますBorderContainer

gutters: falseのプロパティに追加しますBorderContainer

于 2012-11-01T17:23:32.290 に答える
1

dijit.layoutウィジェットは、resizeレンダリング時に実行し、操作する必要のあるスペースを計算し、レイアウトのバリエーション(この場合は「ネストされたコンテナー」と呼ばれるBorderLayoutの子)に従ってセットアップします。したがって、プログラムで行われるインラインスタイリング。

問題は、自分で適用するCSSの「重み」がclaro.cssのスタイルよりも低いことである可能性があります。

このリンクを確認してください:特異性。これは、どのセレクターが最も優先度が高いかをカバーする用語です。css-ruleが具体的であるほど、優先度は高くなります。

したがって、次のようなクラスごとのルールに「勝つ」必要があります。

.claro .dijitContentPane {}

これを実現するには、#idセレクターまたはnodetype-selectorなどを追加します。一般的な「body」やローカライズされたルールの「#innerContentsWrapper」などのプレフィックスを付けることもできます

.dijitContentPane { /* lowest weight */}
.claro .dijitContentPane { /* third highest weight */ }
.claro div.dijitContentPane { /* second highest weight */ }
body .claro div.dijitContentPane { /* the highest weight */ }
于 2012-11-01T17:36:18.760 に答える
0

動作するもう1つのことは、divに次の属性を設定することです。baseClass="dijitContentPaneNoPadding"

于 2016-06-24T14:56:39.510 に答える