2012-04-03 17 views
6

Tengo un problema con un menú vertical ASP.net, donde en ciertos modos IE8 y otros navegadores IE, cambia mi elemento de menú para tener un espacio adicional en la parte inferior de cada menú artículo, como se muestra a continuación.IE8 Modo de compatibilidad Asp.net Menu Padding problema

(malo a la izquierda, bueno a la derecha). esto es solo IE.

bad _____________________ good

hice un margen: 1px; para abajo y arriba, obtuve lo siguiente y aún agrega el espacio, como se muestra a continuación.

enter image description here

aquí es mi CSS:

.SideStaticMenuStyle a, 
.SideStaticMenuStyle a:visited, 
.SideStaticMenuStyle a:active 
{ 
    color: #000000;  
    text-decoration: none; 
    font-weight: normal; 
    font-family: verdana; 
    font-size: 12px; 
    white-space:normal; 
} 
.SideStaticMenuStyle a:hover 
{ 
    color: #ffffff;  
    text-decoration: none; 
    font-size: 12px;   
    font-weight: normal; 
    font-family: verdana; 
} 

.SideStaticMenuStyle td 
{ 
    background-color: #c2d0e9; 
    width: 160px; 
    line-height:14px; 
} 

.SideStaticSelectedStyle td, 
.SideStaticSelectedStyle a, 
.SideStaticSelectedStyle a:visited, 
.SideStaticSelectedStyle a:active, 
.SideStaticSelectedStyle a:hover 
{ 
color: #ffffff;  
text-decoration: none; 
font-weight: bold; 
font-family: verdana; 
font-size: 11px; 
white-space:normal; 
background-color: #6C85B0; 
} 

.SideStaticHoverStyle td 
{ 
    font-weight: normal; 
    font-family: verdana; 
    background-color: #6c85b0; 
    color: #ffffff; 
} 
.SideStaticHoverStyle td:hover a 
{ 
      color: #ffffff; 
     } 

.SideStaticMenuItemStyle 
{ 
    font-weight: normal; 
    font-family: verdana; 
    border-bottom: solid 1px #012754; 
    border-left: solid 1px #012754; 
    border-right: solid 1px #012754; 
    border-collapse:collapse; 
} 
.SideStaticMenuItemStyle td 
{  
    padding: 2px 2px 2px 3px; 
    text-align: left; 
    font-weight: normal; 
    font-family: verdana; 
    } 
.SideStaticHoverStyle 
{ 
    font-weight: normal; 
    font-family: verdana; 
} 

Aquí es mi HTML:

<asp:Menu ID="Menu2" runat="server" Orientation="Vertical" ItemWrap="true"> 
      <DataBindings> 
       <asp:MenuItemBinding DataMember="MenuItem" TextField="Title" NavigateUrlField="URL" /> 
      </DataBindings> 
      <StaticMenuStyle CssClass="SideStaticMenuStyle" /> 
      <StaticSelectedStyle CssClass="SideStaticSelectedStyle" ItemSpacing="0px" /> 
      <StaticMenuItemStyle CssClass="SideStaticMenuItemStyle" ItemSpacing="0px" /> 
      <DynamicHoverStyle CssClass="SideDynamicHoverStyle" /> 
      <DynamicMenuStyle CssClass="SideDynamicMenuStyle" /> 
      <DynamicSelectedStyle CssClass="SideDynamicSelectedStyle" /> 
      <DynamicMenuItemStyle CssClass="SideDynamicMenuItemStyle" /> 
      <StaticHoverStyle CssClass="SideStaticHoverStyle" /> 
     </asp:Menu> 

Página Generar código:

<table id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2" class="SideStaticMenuStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_5 ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_2" cellpadding="0" cellspacing="0" border="0"> 
    <tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n1"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="servicelink.aspx" target="_self" style="border-style:none;font-size:1em;">ServiceLink</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n2"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="fnpc.aspx" target="_self" style="border-style:none;font-size:1em;">Fidelity National Property and Casualty</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n3"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="ceridiancorp.aspx" target="_self" style="border-style:none;font-size:1em;">Ceridian Corporation</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n4"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="remy.aspx" target="_self" style="border-style:none;font-size:1em;">Remy International, Inc.</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n5"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="abrh.aspx" target="_self" style="border-style:none;font-size:1em;">American Blue Ribbon Holdings, LLC</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2n6"> 
     <td><table class="SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_4" cellpadding="0" cellspacing="0" border="0" width="100%"> 
      <tr> 
       <td style="width:100%;"><a class="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_1 SideStaticMenuItemStyle ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_3" href="cascade.aspx" target="_self" style="border-style:none;font-size:1em;">Cascade Timberlands</a></td> 
      </tr> 
     </table></td> 
    </tr><tr style="height:0px;"> 
     <td></td> 
    </tr> 
</table><a id="ctl00_ContentPlaceHolder1_ctl00_ctl06_ctl00_Menu2_SkipLink"></a> 
    </td> 
+0

Se puede publicar algo de HTML muestra para el menú, por favor? Además, intente reducir o incluso eliminar la altura de la línea. – dash

+0

intenté eliminar la altura de la línea que no ayudó. Agregué mi código html. –

+0

Puede publicar el código HTML generado (como en el navegador) - no siendo un desarrollador de ASP, el XML que ha publicado no tiene sentido para mí :) – Pete

Respuesta

2

El problema está en el marcado de su control <asp:Menu />. ItemSpacing="0" en el <StaticMenuItemStyle /> es lo que crea esas etiquetas extra <tr />. Eliminarlo y que se ha ido:

<asp:Menu ID="Menu2" runat="server" Orientation="Vertical" ItemWrap="true"> 
    <DataBindings> 
     <asp:MenuItemBinding DataMember="MenuItem" TextField="Title" NavigateUrlField="URL" /> 
    </DataBindings> 
    <StaticMenuStyle CssClass="SideStaticMenuStyle" /> 
    <StaticSelectedStyle CssClass="SideStaticSelectedStyle" /> 
    <StaticMenuItemStyle CssClass="SideStaticMenuItemStyle" /> 
    <DynamicHoverStyle CssClass="SideDynamicHoverStyle" /> 
    <DynamicMenuStyle CssClass="SideDynamicMenuStyle" /> 
    <DynamicSelectedStyle CssClass="SideDynamicSelectedStyle" /> 
    <DynamicMenuItemStyle CssClass="SideDynamicMenuItemStyle" /> 
    <StaticHoverStyle CssClass="SideStaticHoverStyle" /> 
</asp:Menu> 

Aquí hay una captura de pantalla de mi máquina local donde muestro lo arreglen:

enter image description here

+0

BAM! esto lo solucionó Wow algo tan simple pasado por alto. Gracias, Scott, te recompensaré con la recompensa una vez que me lo permita (dicen que te quedan 7 horas).Gracias –

+0

Ningún problema en absoluto. Lo curioso es que también lo pasé por alto. Intentaba jugar con CSS y generé el HTML que publicaste en vano. Luego dije que tiene que ser una configuración en el menú generando esas etiquetas ''. No tendría sentido que estuvieran allí de otra manera. Así que acabo de construir el '' con lo que publicaste y, por supuesto, lo primero que hice fue eliminar ese' ItemSpacing = "0" 'y como dijiste, ¡BAM! se habían ido. –

+0

dulce. ¡gracias de nuevo! –

2

hay algunas TR extra y TD etiquetas entre esas etiquetas que realmente contienen el texto. Si los elimina, debe estar bien

+0

hmm, parece que se genera desde el menú asp.net y no en el código en sí, tendré que ver si de alguna manera puedo eliminar manualmente de alguna manera –

+0

no pude encontrar una manera de eliminar solo esas etiquetas ya que no tienes una identificación. –

+0

tr [estilo] { pantalla: ninguna! Importante; } dado que todas sus etiquetas que no tienen ID tienen un atributo de estilo, puede usar esa etiqueta para asegurarse de que no se muestren. Sin embargo, ese selector no es compatible con IE7. Lo más probable es que se ocupe de sus problemas IE8 y superiores. – Ray

Cuestiones relacionadas