2010-03-29 29 views
0

Ajax control toolkit tab panel自動在主體的所有四個角上插入一個空格。例如,轉到http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Tabs/Tabs.aspx並查看頁面上的TabPanel。這是「簽名:」和「生物:」標籤之前的空格。我怎樣才能設置空間寬度爲0px;在tabPanel正文?如何刪除在Ajax控件工具包選項卡面板控件中自動插入的空間

+0

是否允許使用CSS來糾正它? – K2so 2010-03-29 18:47:45

+0

@ K2so,是的,CSS或任何其他手段。 – Phil 2010-03-29 21:14:48

回答

1

我在選項卡標題之間有一個非常類似的問題。選項卡標題爲<span>標記,因此大多數瀏覽器將空白作爲DOM中的文本節點呈現。要刪除忽略的空白節點,調用JavaScript函數在頁面加載時,像這樣:

function fixTabContainer() { 
    var tabContainerHeader = $get('<%#TabContainer1.ClientID%>' + '_header'); 
    var children = tabContainerHeader.childNodes; 
    for (var i = 0; i < children.length; i++) { 
     if (is_all_ws(children[i])) { 
      tabContainerHeader.removeChild(children[i]); 
      i--; 
     } 
    } 
} 

/** 
* Determine whether a node's text content is entirely whitespace. 
* (From https://developer.mozilla.org/en/whitespace_in_the_dom) 
* @param nod A node implementing the |CharacterData| interface (i.e., 
*    a |Text|, |Comment|, or |CDATASection| node 
* @return  True if all of the text content of |nod| is whitespace, 
*    otherwise false. 
*/ 
function is_all_ws(nod) { 
    // Use ECMA-262 Edition 3 String and RegExp features 
    return !(/[^\t\n\r ]/.test(nod.data)); 
} 

腳本發現保存選項卡頭,並通過這些頭<span>元素循環的<div>。它刪除所有僅包含可忽略空白(它由第二個函數確定)的節點。

注意:IE8 DOM不幸的是不包含文本節點(這是一個已知的錯誤)。

相關問題