Le Ajax control toolkit tab panel insère automatiquement un espace aux quatre coins du corps. Par exemple, allez à http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Tabs/Tabs.aspx et regardez le TabPanel sur la page. Le est un espace avant les étiquettes "Signature:" et "Bio:". Comment puis-je définir l'espace-largeur à 0px; dans le corps de tabPanel?Comment supprimer l'espace inséré automatiquement dans l'onglet de la boîte à outils de contrôle Ajax contrôle du panneau
0
A
Répondre
1
J'avais un problème très similaire avec les espaces entre les en-têtes de tabulation. Les en-têtes d'onglet sont des tags <span>
, donc la plupart des navigateurs restituent les espaces comme un nœud de texte dans le DOM. Pour supprimer les nœuds blancs ignorables, appeler une fonction JavaScript lorsque la page se charge, comme ceci:
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));
}
Le script trouve le <div>
qui contient les réglettes et les boucles à travers ces éléments d'en-tête <span>
. Il supprime tous les nœuds qui contiennent uniquement des espaces ignorables (qu'il détermine avec la deuxième fonction).
Remarque: Le DOM IE8 n'inclut malheureusement pas les nœuds de texte (c'est un bug connu).
Est-il permis d'utiliser CSS pour le corriger? – K2so
@ K2so, oui, CSS ou tout autre moyen. – Phil