2012-08-14 6 views
0

Je suis en train d'installer un élément de position absolue B au-dessus de l'élément A. Jequestion de position absolue

var left = $('#elementA').offset().left; 

var top = $('#elementA').offset().top; 


--------------------------- 
| -----------   |  
| |o   |   |   
| |   |   | 
| |   |   | 
| |   |   |  
| -----------   | 
|-------------------------- 

o signifie mon ELEMENTA.

Je veux mettre l'élément B au même endroit que l'élément A

$('elementB').css({ position:'absolute', 
      top:top, 
      left:left}) 


--------------------------- 
| -----------   | 
| |o   |   |  
| | b  |   | 
| |   |   | 
| |   |   | 
| -----------   | 
|-------------------------- 
b means my element b 

mais il se trouve comme ci-dessus.

Si je mets

$('elementB').css({ position:'absolute', 
      top:0, 
      left:0}) 

ce serait des œuvres. mais j'ai beaucoup de différents éléments B et A et je ne peux pas utiliser 0 pour tous.

Quelqu'un peut-il m'aider? Merci beaucoup!

+1

Pourriez-vous inclure le contenu HTML que vous utilisez? Les éléments A et B sont-ils enveloppés dans un autre élément? Si c'est le cas, le positionnement absolu est en relation avec l'élément qui l'entoure. –

+0

Pouvons-nous voir du code? fonctionne parfaitement bien pour moi: http://jsfiddle.net/uqYSu/ – orhanhenrik

Répondre

1

Vous pouvez utiliser le plugin jQuery UI Position positionner un élément par rapport à un autre élément. Voir: http://docs.jquery.com/UI/Position

Dans votre cas, il serait:

$('#elementB').position({ 
    my: 'left top', 
    at: 'left top', 
    of: '#elementA' 
}); 

Je pense aussi qu'il est une bonne pratique d'ajouter 'px' à la valeur de la propriété css, par exemple:

$('...').css({ 
    left: 100 + 'px' 
}); 

Vous devrait toujours prendre en compte la disposition des éléments les uns par rapport aux autres comme indiqué ci-dessus. Si l'élément parent est "positionné", les éléments enfants seront positionnés non pas par rapport à la fenêtre, mais par rapport à leur parent. Si vous voulez plus de flexibilité, vous pouvez retirer l'élément B de l'élément A (faites-les frères et soeurs).

0

La fonction offset() vous donnera le décalage de l'élément dans la fenêtre. Ce dont vous avez besoin est le décalage relatif de l'élément A dans son conteneur.

position Try() au lieu de l'offset()

Sur la base de l'autre exemple: http://jsfiddle.net/dcFXj/

0

Lorsqu'un élément est un enfant d'un autre élément, le positionnement absolu est pas vraiment absolue à la fenêtre, c'est absolu par rapport à son parent. Si vous voulez que le coin supérieur gauche d'un div soit parfaitement en place avec le coin supérieur gauche de son parent, alors vous voulez qu'il soit top et left exactement à zéro pixel de son parent. Il est seulement absolu, car il ignore tous les autres éléments qui peuvent le déplacer hors de propos.

Here's a demonstration of that in action

Lorsque B est un enfant de A, pour toutes les situations où B doit être aligné avec A, juste toujours mis il est gauche et en haut à 0.