Dojo claro css将绝对定位应用于ContentPane元素

时间:2012-11-01 17:04:40

标签: css dojo

我正在使用dojo 1.8,并且不希望在bordercontainer / contentpane布局中添加任何填充。问题是,似乎当我添加claro css文件时,而不仅仅是应用类样式,div我用于我的内容窗格获取内联应用的样式。这似乎是以编程方式完成的,但只有在我添加css文件时才会这样做。

例如,我用作标题的contentpane如下所示:

<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覆盖任何类型的填充或边距设置。我想通过使用像这样的绝对位置来使我的内容窗格没有任何填充或“虚拟”填充。我怎么还能使用claro但是防止这种行为?

3 个答案:

答案 0 :(得分:2)

5px是因为你在BorderContainer上将排水沟设置为真。

gutters: false添加到BorderContainer的属性。

答案 1 :(得分:1)

dijit.layout小部件在渲染时会执行resize,计算它必须使用的空间,并根据它的布局变量设置自己(在你的情况下为BorderLayout子节点,这是指作为'嵌套容器')。因此,内联样式以编程方式完成。

您的问题很可能是,您自己应用的CSS比claro.css的样式更低'重量'。

检查this link: specificity。这是一个术语,涵盖了哪个选择器最高。 css规则越具体,优先级越高。

所以你需要“赢得”这样的上课规则:

.claro .dijitContentPane {}

要实现它,请添加#id选择器 - 或nodetype-selector或类似选项。你也可以为一个本地化的规则添加一个前缀,例如'body'为general或'#innerContentsWrapper'

.dijitContentPane { /* lowest weight */}
.claro .dijitContentPane { /* third highest weight */ }
.claro div.dijitContentPane { /* second highest weight */ }
body .claro div.dijitContentPane { /* the highest weight */ }

答案 2 :(得分:0)

另一件可行的方法是在div上设置以下属性:Sub WorksheetEraseOld() Dim ShtNames() As String Dim SaveSheet As String ReDim ShtNames(1 To ActiveWorkbook.Sheets.count) For i = 1 To Sheets.count ShtNames(i) = Sheets(i).Name Next i ReDim Preserve ShtNames(1 To ActiveWorkbook.Sheets.count) For J = 1 To Sheets.count If J = Sheets.count Then Exit For Range("A1").Value = Val(Left(ShtNames(J), 4)) Range("B1").Value = Val(Left(ShtNames(J + 1), 4)) MsgBox ("Content of SaveSheet is " & SaveSheet) SaveSheet = ShtNames(J) If Val(Left(SaveSheet, 4)) < Val(Left(ShtNames(J + 1), 4)) Then SaveSheet = ShtNames(J + 1) Next J End Sub