2010-08-09 6 views
3

Donc, j'ai cette image avec un style CSS:CSS: position absolue échoue dans le redimensionnement

.city1 { 
 
    position: absolute; 
 
    /* float: left; */ 
 
    top: 34px; 
 
    left: 170px; 
 
}
<a href="malmo/"> 
 
    <img class="city1" src="images/city.png" alt="Malmö"> 
 
</a>

problème est quand j'utilise le position: absolute; et je remets à la côte mon navigateur, il modifie la position .

Vous pouvez dire maintenant c'est parce qu'il est une position absolue et il suit le navigateur lorsque vous redimensionnez et tel, mais comment puis-je résoudre ce donc il ne bouge pas?

Merci!

+0

Pourquoi utilisez-vous 'float: left' _et_' position: absolute; '? –

+0

oops oublié d'enlever, je viens d'essayer si cela devrait fonctionner .. – Karem

Répondre

23

Point de position absolue doit être à l'intérieur d'un élément de bloc avec position:relative. Par exemple, vous pouvez essayer de mettre votre <a ..><img /></a> dans un <div> comme tel:

#cont { 
 
    position: relative; 
 
    width: 600px; 
 
    height: 600px; 
 
} 
 
#cont a { 
 
    position: absolute; 
 
    top: 34px; 
 
    left: 170px; 
 
}
<div id="cont"> 
 
    <a href="malmo/"> 
 
    <img class="city1" src="images/city.png" alt="Malmö"> 
 
    </a> 
 
</div>

Maintenant, il doit rester en position fixe même si vous redimensionnez votre navigateur.

1

Utilisez position: fixed. Mais sachez que fixed a des problèmes croisés de navigateur.

+0

il change encore la position quand je remets à la côte, même avec fixe. – Karem

+1

J'en doute; Si vous avez réellement appliqué fixed, cela remplacera tout le reste, et les coordonnées spécifiées (gauche/droite, haut/bas) seront attachées à cette position par rapport à la fenêtre. Cela fonctionnera toujours si la règle CSS est appliquée. –

+0

+1, étant par rapport à la fenêtre est différent d'être par rapport au corps, par exemple, vous pourriez ne pas voulez que l'élément à afficher encore lorsque vous faites défiler vers le bas. – mikemaccana