J'ai de nombreux éléments positionnés absolument dans ma page. Quelle est la méthode de meilleure pratique pour réajuster sa position sur le redimensionnement de la fenêtre (tous)?Meilleure pratique pour repositionner des éléments positionnés de manière absolue sur le redimensionnement de la fenêtre
Répondre
Je suggérerais que la meilleure pratique consiste à faire ceci avec CSS et évite de le faire avec JavaScript si vous le pouvez. Donc, évitez le positionnement absolu quand vous le pouvez, et lorsque vous utilisez absolument des pourcentages plutôt que des pixels, utilisez right
plutôt que left
lorsque vous positionnez les éléments que vous voulez ancrer correctement, utilisez bottom
plutôt que top
lorsque vous positionnez des éléments que vous voulez ancrer au fond, etc. ., etc. Par exemple: Laissez le navigateur gérer pour vous.
Exemple:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Resize Demo Page</title>
<style type='text/css'>
body {
font-family: sans-serif;
}
#anchorRight {
position: absolute;
right: 0px;
top: 20%;
border: 1px solid black;
}
#anchorBottom {
position: absolute;
bottom: 0px;
left: 20%;
border: 1px solid black;
}
#anchorBoth {
position: absolute;
right: 0px;
bottom: 0px;
border: 1px solid black;
}
</style>
</head>
<body>
<p>Look, Ma, no JavaScript required.</p>
<div id='anchorRight'>Anchor right, 20% from top</div>
<div id='anchorBottom'>Anchor bottom, 20% from left</div>
<div id='anchorBoth'>Anchor bottom and right</div>
</body>
</html>
Une solution pure CSS peut ne pas être toujours possible. Lorsque vous le faites avec JavaScript, vous devez regarder non seulement les événements de redimensionnement de la fenêtre, mais aussi le redimensionnement du texte, ce qui est plus pénible (Google Closure library inclut des utilitaires pour ce faire). Veillez également à incorporer hysteresis pour éviter de repositionner vos éléments trop fréquemment pendant l'opération de redimensionnement. (Un moyen facile de le faire est de répondre à un redimensionnement en définissant une fonction appelée par setTimeout
un quart de seconde plus tard et en mémorisant la poignée de la minuterie: si vous obtenez un autre événement de redimensionnement avant l'appel de la fonction, annulez le minuteur précédent Vous pouvez définir un nombre maximum de fois que vous différerez le redimensionnement avant d'aller de l'avant [pour afficher les mises à jour intermédiaires], mais puisque le déplacement de ces éléments avec JavaScript peut être un peu lent, vous ne voulez pas le faire sur chaque événement intermédiaire vous obtenez lors de l'opération)
+1: Je voudrais seulement avertir que le développeur devrait vérifier si un pourcentage de distance des bords de la fenêtre est ce qu'il veut vraiment. – Robusto
@Robusto: Oh, absolument. J'ai seulement utilisé des pourcentages dans l'exemple pour démontrer que l'on * peut *. Cela pourrait souiller le point ... –
En utilisant jQuery vous pouvez effectuer les opérations suivantes:.
jQuery(window).resize(function() {
jQuery('#ContainerDiv').html(jQuery('#ContainerDiv').html());
});
Bien qu'il soit sans doute pas la meilleure pratique.
- 1. comment repositionner JButton sur le redimensionnement de la fenêtre
- 2. PDF incorporé toujours affiché sur les éléments positionnés de manière absolue
- 3. meilleure pratique pour traiter des éléments "structurels" communs de pages?
- 4. Redimensionnement des vues de grille sur la fenêtre Redimensionner
- 5. Javascript pour modifier tous les éléments absolument positionnés
- 6. Forcer le ratio de la fenêtre contextuelle sur le redimensionnement
- 7. Repositionner une fenêtre VLC programme
- 8. jQuery, meilleure pratique pour transmettre des variables dans le DOM?
- 9. Meilleure pratique pour exposer des services Web
- 10. Redimensionnement de la fenêtre d'encombrement
- 11. CSS: position absolue échoue dans le redimensionnement
- 12. Repositionner Formulaire sur la page
- 13. Meilleure pratique pour le flux de fonction en Javascript?
- 14. Donner de la hauteur aux DIVs positionnés de façon absolue dans IE6
- 15. La meilleure pratique pour configurer les données de la hiérarchie
- 16. Redimensionnement de la vue principale de la fenêtre de l'iPhone
- 17. Comment repositionner/redimensionner la ressource sur l'écran?
- 18. Approche de la meilleure pratique pour les tests automatisés
- 19. Largeur minimale dans le redimensionnement de la fenêtre
- 20. Meilleure pratique pour profiler des pages Web
- 21. Application de suivi des prix: Meilleure pratique
- 22. Meilleure pratique pour le modèle DAO?
- 23. Meilleure pratique pour le paramétrage de l'application GWT?
- 24. Meilleure pratique d'utilisation de org.apache.commons.logging.LogFactory.getLog
- 25. Meilleure pratique pour la sortie PHP
- 26. Flex: redimensionnement de la fenêtre de restauration d'une fenêtre agrandie
- 27. Meilleure pratique pour configurer wsgi sur le répertoire racine?
- 28. Meilleure pratique pour l'initialisation de vos NSStrings sur l'iPhone
- 29. Meilleure pratique pour le suivi hiérarchique des ressources MySQL
- 30. Meilleure pratique de JQuery pour accélérer l'animation
Je pense que les gens vont avoir besoin de plus d'informations, car il y a un certain nombre de façons différentes dans lesquelles les éléments peuvent être positionnés de façon absolue. – Pointy
différentes façons? je pensais que la position: absolue avec un haut et à gauche les positionnerait absolument – Ajay
@Ajay bien oui; ce n'est pas ce que je voulais dire :-) Je voulais dire que ça dépend vraiment de ce à quoi ressemblent vos pages. Parfois, la façon dont les choses sont positionnées - même avec "position: absolute" - est qu'elles seront redimensionnées avec la fenêtre. Parfois, cela n'a pas de sens pour eux de changer quand la fenêtre est redimensionnée. Tout dépend de la conception. – Pointy