2010-03-25 6 views
1

Comme cela nous arrive à tous, parfois, j'ai hérité d'un code de merde que je dois réparer.ASP.Net page maître barre de défilement question

Nous devons centrer nos pages sur les machines à écran large, nous avons donc une page maître mise en page div comme ceci:

.MasterLayout 
{ 
width:1100px; 
height: 100%; 
position:absolute; 
left:50%; 
margin-left:-550px; 
vertical-align:top; 
} 

j'ai enlevé la plupart des attributs détaillés pour une meilleure lisibilité, mais voici comment la table pour la page maître est aménagé:

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"> 
<tr> 
    <td style="width: 100%" align="center" colspan="2"> 
    </td> 
</tr> 
<tr> 
    <td colspan="2" style="height: 20px; background-color: #333;"> 
    <asp:SiteMapPath/> 
    </td> 
</tr> 
<tr> 
    <td style="width: 86px; height: 650px; background-color: #B5C7DE; margin: 6px;" valign="top"> 
    <asp:Menu /> 
    <asp:SiteMapDataSource /> 
    </td> 
    <td style="background-color:#ffffff; margin:5px; width:1000px;" valign="top"> 
    <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"/> 
    </td> 
</tr> 
</table> 

Lors du redimensionnement de la fenêtre du navigateur, la barre de défilement horizontale atteint que dans la mesure que le bord gauche du contrôle <asp:contentplaceholder/> et le <asp:menu/> qui est dans le 86px large <td> est caché. Comment puis-je résoudre ce problème? MERCI À L'AVANCE

Répondre

2

Essayez de centrer le .MasterLayout en utilisant margin: 0px auto au lieu du negative margin method. Pendant la mise à jour du code, vous pouvez également utiliser divs au lieu de tables pour la mise en page.

+0

Pour cette solution, il doit également supprimer la position: absolue; et à gauche: 50%; déclarations aussi bien – jaywon

0

Mettez contentPlaceholder dans un div et contrôlez le débordement avec la propriété css overflow de ce div. Je vous suggère d'utiliser la largeur du bloc principal comme #masterlayout, #sidebar en%.