2011-09-29 5 views
2

Je rencontre un problème avec CSS (pas sûr).Css asp: menu flottant

En fait, je suis nouveau à CSS, et j'essaie de le comprendre.

Ok, nous allons jeter un coup d'oeil:

  • J'ai créé un WebApplication (web ASP.Net) avec Visual Studio 2010
  • et moi avons décidé d'utiliser le modèle original donné par VS 2010
  • J'ai essayé de faire flotter le menu par défaut. Mais je ne pouvais pas faire ça.
  • Le menu original ressemble à:

    |Home|About_______________________________| 
    
  • Et je veux faire cela ressemble à:

    |_______________________________Home|About| 
    
  • J'ai essayé style = "float: right;".
  • J'ai aussi essayé dir = "rtl", mais je suis quelque chose comme:

    |_______________________________About|Home| 
    

Comment puis-je résoudre ce problème?

Je ne suis pas sûr que ce soit un problème de CSS ou un problème de contrôle. Je ne suis pas familier avec l'application Web, j'ai travaillé sur Winform Application.

C'est le Site.master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication1.SiteMaster" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head runat="server"> 
    <title></title> 
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form runat="server"> 
    <div class="page"> 
     <div class="header"> 
      <div class="title"> 
       <h1> 
        My ASP.NET Application 
       </h1> 
      </div> 
      <div class="loginDisplay"> 
       <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false"> 
        <AnonymousTemplate> 
         [ <a href="~/Account/Login.aspx" id="HeadLoginStatus" runat="server">Log In</a> 
         ] 
        </AnonymousTemplate> 
        <LoggedInTemplate> 
         Welcome <span class="bold"> 
          <asp:LoginName ID="HeadLoginName" runat="server" /> 
         </span>! [ 
         <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" 
          LogoutPageUrl="~/" /> 
         ] 
        </LoggedInTemplate> 
       </asp:LoginView> 
      </div> 
      <div class="clear hideSkiplink"> 
       <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" 
        IncludeStyleBlock="false" Orientation="Horizontal" dir="rtl"> 
        <Items> 
         <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home" /> 
         <asp:MenuItem NavigateUrl="~/About.aspx" Text="About" /> 
        </Items> 
       </asp:Menu> 
      </div> 
     </div> 
     <div class="main"> 
      <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 
     </div> 
     <div class="clear"> 
     </div> 
    </div> 
    <div class="footer"> 
    </div> 
    </form> 
</body> 
</html> 

et c'est le CSS:

/* DEFAULTS 
----------------------------------------------------------*/ 

body 
{ 
    background: #b6b7bc; 
    font-size: .80em; 
    font-family: "Helvetica Neue", "Lucida Grande", "Segoe UI", Arial, Helvetica, Verdana, sans-serif; 
    margin: 0px; 
    padding: 0px; 
    color: #696969; 
} 

a:link, a:visited 
{ 
    color: #034af3; 
} 

a:hover 
{ 
    color: #1d60ff; 
    text-decoration: none; 
} 

a:active 
{ 
    color: #034af3; 
} 

p 
{ 
    margin-bottom: 10px; 
    line-height: 1.6em; 
} 


/* HEADINGS 
----------------------------------------------------------*/ 

h1, h2, h3, h4, h5, h6 
{ 
    font-size: 1.5em; 
    color: #666666; 
    font-variant: small-caps; 
    text-transform: none; 
    font-weight: 200; 
    margin-bottom: 0px; 
} 

h1 
{ 
    font-size: 1.6em; 
    padding-bottom: 0px; 
    margin-bottom: 0px; 
} 

h2 
{ 
    font-size: 1.5em; 
    font-weight: 600; 
} 

h3 
{ 
    font-size: 1.2em; 
} 

h4 
{ 
    font-size: 1.1em; 
} 

h5, h6 
{ 
    font-size: 1em; 
} 

/* this rule styles <h1> and <h2> tags that are the 
first child of the left and right table columns */ 
.rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2 
{ 
    margin-top: 0px; 
} 


/* PRIMARY LAYOUT ELEMENTS 
----------------------------------------------------------*/ 

.page 
{ 
    width: 960px; 
    background-color: #fff; 
    margin: 20px auto 0px auto; 
    border: 1px solid #496077; 
} 

.header 
{ 
    position: relative; 
    margin: 0px; 
    padding: 0px; 
    background: #4b6c9e; 
    width: 100%; 
} 

.header h1 
{ 
    font-weight: 700; 
    margin: 0px; 
    padding: 0px 0px 0px 20px; 
    color: #f9f9f9; 
    border: none; 
    line-height: 2em; 
    font-size: 2em; 
} 

.main 
{ 
    padding: 0px 12px; 
    margin: 12px 8px 8px 8px; 
    min-height: 420px; 
} 

.leftCol 
{ 
    padding: 6px 0px; 
    margin: 12px 8px 8px 8px; 
    width: 200px; 
    min-height: 200px; 
} 

.footer 
{ 
    color: #4e5766; 
    padding: 8px 0px 0px 0px; 
    margin: 0px auto; 
    text-align: center; 
    line-height: normal; 
} 


/* TAB MENU 
----------------------------------------------------------*/ 

div.hideSkiplink 
{ 
    background-color:#3a4f63; 
    width:100%; 
} 

div.menu 
{ 
    padding: 4px 0px 4px 8px; 
} 

div.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 0px; 
    width: auto; 
} 

div.menu ul li a, div.menu ul li a:visited 
{ 
    background-color: #465c71; 
    border: 1px #4e667d solid; 
    color: #dde4ec; 
    display: block; 
    line-height: 1.35em; 
    padding: 4px 20px; 
    text-decoration: none; 
    white-space: nowrap; 
} 

div.menu ul li a:hover 
{ 
    background-color: #bfcbd6; 
    color: #465c71; 
    text-decoration: none; 
} 

div.menu ul li a:active 
{ 
    background-color: #465c71; 
    color: #cfdbe6; 
    text-decoration: none; 
} 

/* FORM ELEMENTS 
----------------------------------------------------------*/ 

fieldset 
{ 
    margin: 1em 0px; 
    padding: 1em; 
    border: 1px solid #ccc; 
} 

fieldset p 
{ 
    margin: 2px 12px 10px 10px; 
} 

fieldset.login label, fieldset.register label, fieldset.changePassword label 
{ 
    display: block; 
} 

fieldset label.inline 
{ 
    display: inline; 
} 

legend 
{ 
    font-size: 1.1em; 
    font-weight: 600; 
    padding: 2px 4px 8px 4px; 
} 

input.textEntry 
{ 
    width: 320px; 
    border: 1px solid #ccc; 
} 

input.passwordEntry 
{ 
    width: 320px; 
    border: 1px solid #ccc; 
} 

div.accountInfo 
{ 
    width: 42%; 
} 

/* MISC 
----------------------------------------------------------*/ 

.clear 
{ 
    clear: both; 
} 

.title 
{ 
    display: block; 
    float: left; 
    text-align: left; 
    width: auto; 
} 

.loginDisplay 
{ 
    font-size: 1.1em; 
    display: block; 
    text-align: right; 
    padding: 10px; 
    color: White; 
} 

.loginDisplay a:link 
{ 
    color: white; 
} 

.loginDisplay a:visited 
{ 
    color: white; 
} 

.loginDisplay a:hover 
{ 
    color: white; 
} 

.failureNotification 
{ 
    font-size: 1.2em; 
    color: Red; 
} 

.bold 
{ 
    font-weight: bold; 
} 

.submitButton 
{ 
    text-align: right; 
    padding-right: 10px; 
} 

Tous les codes sont au-dessus des codes par défaut donnés par VS 2010. Aidez-moi! Merci beaucoup!

Répondre

3

Oh, je l'ai trouvé quelque chose, il suffit d'éditer la classe div.menu: « important »

div.menu 
{ 
    padding: 4px 8px 4px 0px; 
    float: right !important 
} 

Le mot-clé (je ne suis pas sûr de cette chose étrange), rendre le navigateur rendre mon asp: menu float style basé sur ma classe css pas du javascript généré.

Je l'ai trouvé ici: http://walaapoints.blogspot.com/2011/04/aspnet-menu-rtl.html

+0

Etes-vous sûr de la création de la classe? L'utilisation de "! Important" écrase tout autre css, mais ce n'est pas une très bonne pratique. –

+0

Je pense que votre meilleur moyen est de trouver comment le javascript crée le inline-css et les arrêter, pour éviter les conflits –

+2

Script généré par .net framework. Je ne sais pas comment l'arrêter :) – haiduong87

1

Si ceci est votre menu

div.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 0px; 
    width: auto; 
} 

alors vous devez ajouter un width à lui pour le faire flotter.

donc quelque chose comme

div.menu ul 
{ 
    list-style: none; 
    margin: 0px; 
    padding: 0px; 
    width: 300px; //CHANGE THIS 
    float:right; 
} 

Les width doit être quelque chose à moins de 100%/auto pour faire flotter correctement.

+0

Oh merci pour votre aide, je viens de tester, et pas de travail. Une idée? – haiduong87