2010-10-25 29 views
10

Ho un div che contiene collegamenti (un href). Tutti gli altri margini funzionano con un href ma il margine superiore non funziona con un href. Voglio mettere i collegamenti in mezzo, ma a causa del mancato funzionamento del margine superiore non è possibile. Ho ascoltato impostando la posizione o il display in modo che funzioni. Si prega di suggerire una soluzione cross broswer per questo.Il margine superiore all'interno di un div non funziona?

div.MainContainer div.Links 
{ 
    height: 57px; 
    width: 100%; 
    border-top: solid 0px #404040; 
    border-left: solid 2px #404040; 
    border-right: solid 2px #404040; 
    border-bottom: solid 2px #404040; 
    background-image: url("../Images/links_background.png"); 
} 
div.MainContainer div.Links a 
{ 
    font:12px verdana; 
    color:White; 
    margin:10px; 
    border:dashed 1px white; 
    margin:15px 20px 20px 20px ; 
    width:100px; 
} 
+1

se si sta cercando di spostare i collegamenti verso il basso all'interno del div, hai provato imbottitura? – Orbit

risposta

16

È necessario spostare l'elemento per rendere il margine funzionante o utilizzare il riempimento.

div.MainContainer div.Links a 
{ 
    float: left; 
    font:12px verdana; 
    color:White; 
    margin:10px; 
    border:dashed 1px white; 
    margin:15px 20px 20px 20px ; 
    width:100px; 
} 
+0

È strano, ma funziona comunque. Funziona normalmente in IE 7. – Tarik

+5

perché dobbiamo rendere mobile l'elemento se vogliamo che 'margin-top' funzioni .. ?? – shashwat

+0

@shashwat Perché è CSS, non cercare un motivo. –

2

Prova padding-top sul div.Links piuttosto che margin-top sul div.Links a.

4

L'altezza degli elementi in linea non può essere modificata, è sufficiente utilizzare display:inline-block; sui collegamenti.

+0

** + 1 ** ma il margine non influisce sull'altezza degli elementi e l'altezza sugli elementi in linea può essere modificata. tuttavia 'display: inline-block' è la strada da percorrere. – iConnor

3

Provare di seguito. Ho aggiunto overflow: hidden alla definizione superiore e display: block e float: left alla definizione inferiore. La prima aggiunta cancella il float che viene aggiunto e gli ultimi due consentono al margine sui collegamenti di funzionare correttamente.

div.MainContainer div.Links 
{ 
    height: 57px; 
    width: 100%; 
    border-top: solid 0px #404040; 
    border-left: solid 2px #404040; 
    border-right: solid 2px #404040; 
    border-bottom: solid 2px #404040; 
    background-image: url("../Images/links_background.png"); 
    overflow: hidden; 
} 
div.MainContainer div.Links a 
{ 
    font:12px verdana; 
    color:White; 
    margin:10px; 
    border:dashed 1px white; 
    margin:15px 20px 20px 20px ; 
    width:100px; 
    display: block; 
    float: left; 
} 
0

uso padding-top: 1px (almeno) per la div.Links e non è necessario utilizzare galleggiante sul div.Links a

Problemi correlati