Problème en css
Fermé
glegros66
Messages postés
21
Date d'inscription
mercredi 8 avril 2020
Statut
Membre
Dernière intervention
18 novembre 2020
-
Modifié le 10 mai 2020 à 18:23
glegros66 Messages postés 21 Date d'inscription mercredi 8 avril 2020 Statut Membre Dernière intervention 18 novembre 2020 - 11 mai 2020 à 11:38
glegros66 Messages postés 21 Date d'inscription mercredi 8 avril 2020 Statut Membre Dernière intervention 18 novembre 2020 - 11 mai 2020 à 11:38
A voir également:
- Problème en css
- Css premier plan ✓ - Forum CSS
- Css exposant ✓ - Forum CSS
- Css download - Télécharger - HTML
- Css retour à la ligne ✓ - Forum CSS
- Saut de lignes sans <br/> ✓ - Forum Webmastering
2 réponses
Salut,
@media ce sont les media queries qui consistent à faire plusieurs mises en pages selon les critères que vous pouvez définir donc à faire plusieurs mise en pages selon différentes tailles ou plutôt paliers de dimensions.
Le problème principal de votre mise en page c'est que vous utilisez des tailles en pixels.
Une solution simple est de tester vos mises en pages avec différents résolutions(ou même réduire la taille de la fenêtre du navigateur, il y a aussi des options dans les outils de développement qui permettent directement ça sans avoir à changer la résolution: exemple aperçu pour mobile), vous verrez qu'avec des dimensions en pixels ça ne peut correspondre qu'à votre taille d'écran.
Hors un site étant fait pour tout le monde vous n'avez pas la bonne façon d'aborder la mise en page.
Pour tout les positionnement et dimensions vous oubliez le pixel et toute unité absolue(la taille ne change pas en fonction de l'écran) pour des valeurs relatives.
Les valeurs relatives sont par exemple le % et em (pour les textes par exemple).
En effet si vous décalez une position de "n" pixels vers la droite ça correspond pour une seule taille/résolution d'écran donc ça ne correspond pas pour tout le reste. Cela s'appelle un bug d'affichage.
En donnant une position en % vous décalez quelque soit la taille que peut avoir l'écran en largeur (et la fenêtre ouverte de l'utilisateur , celui ci n'a pas à être forcé de regarder un site avec le navigateur dimensionné à tout l'écran).
Exemple:
Donc revoyez votre façon d'écrire le CSS pour déterminer les dimensions en proportions et non avec des valeurs incohérentes pour le reste du monde (qui n'a pas le même écran, une barre de menus dans le navigateur d'une autre taille etc...).
Cet article peut vous aider:
https://www.alsacreations.com/article/lire/53-guide-de-survie-du-positionnement-css.html
Comme ils indiquant d'ailleurs évitez la propriété "position" si vous ne maîtrisez pas complétement CSS et la mise en page.
Dans l'exemple de votre code cela peut-être fait simplement en utilisant les marges pour le positionnement.
En bref vous êtes débutant je vous conseille de faire quelques cours/tutos sur CSS pour acquérir les bonnes méthodes car je ne sait pas où vous avez appris le CSS mais les unités et valeurs proportionnelles c'est quand même la base.
Compléments avec le lien sur le positionnement que je vous ait donné qui est plutôt généraliste.
Il y a bien d'autres méthodes comme float ou en utilisant position mais mieux vaut attaquer ça en connaissant d'abord les manières les plus simples et rapides qui permettent de positionner un élément et qui seront les plus courantes.
Comme jouer sur les marges par exemple mais vous pouvez aussi modifier les valeurs display pour changer le comportement par défaut d'un élément.
Les flex-box c'est encore autre chose et rien ne justifie leur utilisation ici.
Par exemple pour placer un élément au centre prenant 80% de la largeur vous pouvez simplement l'entourer de 2 éléments sur la même ligne(en display:inline donc) de 10% chacun.
10%+80%+10% c'est bien centré quelque que soit les tailles de l'écran.
Bien sûr avec les marges puisqu'en rajoutant 2 marges une à gauche et une à droite on arrive au même résultat en définissant que l'élément prends 100% de largeur(width:100%)mais tout dépends du contexte. Ici on peut utiliser la valeur border par exemple pour l'élément central avec la 1ère méthode pour dessiner un cadre apparent tandis qu'on est obligé de ruser(et se compliquer la vie) pour le même résultat avec uniquement margin ou padding.
Les flex-box servent à tout autre chose puisqu'ils servent à distribuer l'espace entre les éléments (un peu comme la justifaction avec du du texte) en fonction des contenus.
Donc utilisez les flex-box qui sont plus complexes et long à écrire uniquement quand les méthodes plus simples ne peuvent le faire (et plus rapide à écrire/modifie et lire ) et pour ce pourquoi elles sont faites.
@media ce sont les media queries qui consistent à faire plusieurs mises en pages selon les critères que vous pouvez définir donc à faire plusieurs mise en pages selon différentes tailles ou plutôt paliers de dimensions.
Le problème principal de votre mise en page c'est que vous utilisez des tailles en pixels.
Une solution simple est de tester vos mises en pages avec différents résolutions(ou même réduire la taille de la fenêtre du navigateur, il y a aussi des options dans les outils de développement qui permettent directement ça sans avoir à changer la résolution: exemple aperçu pour mobile), vous verrez qu'avec des dimensions en pixels ça ne peut correspondre qu'à votre taille d'écran.
Hors un site étant fait pour tout le monde vous n'avez pas la bonne façon d'aborder la mise en page.
Pour tout les positionnement et dimensions vous oubliez le pixel et toute unité absolue(la taille ne change pas en fonction de l'écran) pour des valeurs relatives.
Les valeurs relatives sont par exemple le % et em (pour les textes par exemple).
En effet si vous décalez une position de "n" pixels vers la droite ça correspond pour une seule taille/résolution d'écran donc ça ne correspond pas pour tout le reste. Cela s'appelle un bug d'affichage.
En donnant une position en % vous décalez quelque soit la taille que peut avoir l'écran en largeur (et la fenêtre ouverte de l'utilisateur , celui ci n'a pas à être forcé de regarder un site avec le navigateur dimensionné à tout l'écran).
Exemple:
.pas-bon-decalage{ margin-left:200px;}/* ça correspond donc à rien de réel ces 200 pixels ou plutôt votre écran si vous avez le navigateur ouvert en grand*/ .bon-decalage{ margin-left:8%; }/* 8% c'est toujours 8% de la taille maximum(100%) disponible*/ /******** un autre exemple avec em *******/ p.une-seule-ligne{ height:1.5em; background-color:rgba(255,200,100,0.56); }/* Aura l'avantage de s'adapter en hauteur quelque soit la taille du texte. Si une personne qui a une moins bonne vue veut agrandir la taille du texte le bloc 'p' le contenant s'adaptera à la taille du texte. em ( le quadratin d’imprimerie) indique le rapport 1em = 100% de la hauteur du texte; donc 1.5em = 150% de la taille. Impossible de faire ça avec une hauteur en pixel qui par définition ne peut pas varier. */
Donc revoyez votre façon d'écrire le CSS pour déterminer les dimensions en proportions et non avec des valeurs incohérentes pour le reste du monde (qui n'a pas le même écran, une barre de menus dans le navigateur d'une autre taille etc...).
Cet article peut vous aider:
https://www.alsacreations.com/article/lire/53-guide-de-survie-du-positionnement-css.html
Comme ils indiquant d'ailleurs évitez la propriété "position" si vous ne maîtrisez pas complétement CSS et la mise en page.
Dans l'exemple de votre code cela peut-être fait simplement en utilisant les marges pour le positionnement.
.logodroit{ position: relative; top: 20px; left: 200px; }/* bof vous mettez en position relative et sortez donc du flux normal, si vous devez changer l'élément précédent(auquel il est relatif) vous devrez faire à nouveau tous les positionnement: complexité et difficulté du code totalement inutile*/ #logodroit{ padding:1em 0 0 8%;/* les valeurs sont bien sûr à changer c'est arbitraire*/ }/* résultat écrit en une ligne qui va décaler à partir de la marge interne haute de 1em et gauche de 8%. Bien sûr ce n'est qu'à titre d'exemple et vous devrez par exemple jouer sur d'autres valeurs selon le HTML voire ajouter des éléments invibles containers si vous avez besoin d'une marge ou autre astuce */
En bref vous êtes débutant je vous conseille de faire quelques cours/tutos sur CSS pour acquérir les bonnes méthodes car je ne sait pas où vous avez appris le CSS mais les unités et valeurs proportionnelles c'est quand même la base.
Compléments avec le lien sur le positionnement que je vous ait donné qui est plutôt généraliste.
Il y a bien d'autres méthodes comme float ou en utilisant position mais mieux vaut attaquer ça en connaissant d'abord les manières les plus simples et rapides qui permettent de positionner un élément et qui seront les plus courantes.
Comme jouer sur les marges par exemple mais vous pouvez aussi modifier les valeurs display pour changer le comportement par défaut d'un élément.
Les flex-box c'est encore autre chose et rien ne justifie leur utilisation ici.
Par exemple pour placer un élément au centre prenant 80% de la largeur vous pouvez simplement l'entourer de 2 éléments sur la même ligne(en display:inline donc) de 10% chacun.
10%+80%+10% c'est bien centré quelque que soit les tailles de l'écran.
Bien sûr avec les marges puisqu'en rajoutant 2 marges une à gauche et une à droite on arrive au même résultat en définissant que l'élément prends 100% de largeur(width:100%)mais tout dépends du contexte. Ici on peut utiliser la valeur border par exemple pour l'élément central avec la 1ère méthode pour dessiner un cadre apparent tandis qu'on est obligé de ruser(et se compliquer la vie) pour le même résultat avec uniquement margin ou padding.
Les flex-box servent à tout autre chose puisqu'ils servent à distribuer l'espace entre les éléments (un peu comme la justifaction avec du du texte) en fonction des contenus.
Donc utilisez les flex-box qui sont plus complexes et long à écrire uniquement quand les méthodes plus simples ne peuvent le faire (et plus rapide à écrire/modifie et lire ) et pour ce pourquoi elles sont faites.
glegros66
Messages postés
21
Date d'inscription
mercredi 8 avril 2020
Statut
Membre
Dernière intervention
18 novembre 2020
11 mai 2020 à 11:38
11 mai 2020 à 11:38
D'accord, merci infiniment
11 mai 2020 à 09:06
Merci encore.
Si vous voyez d'autres problèmes ou améliorations n'hésitez pas ????
Modifié le 11 mai 2020 à 10:57
En tout cas ne vous limitez pas à un seul cours si vous voulez progresser plus vite.
Côté erreur je n'en voit pas mais cette question de méthode en n'allant pas au plus simple et efficace.
enfin si celle là (je n'avais pas regardé en détail):
list-style c'est pour les éléments de liste. Si vous voulez supprimer ou modifier la puce il faut le mettre sur li et non sur a.
Enfin ça marche peut-être mais c'est plus par héritage. L'ordre des li devrait être inversé logiquement...
Plutôt:
qui respecte mieux l'écriture et imbrication des listes et permet d'éviter des erreurs d'interprétation(chaque navigateur peut avoir des différences plus ou moins grande et une souplesse relative face aux erreurs).
https://www.w3schools.com/tags/tag_ul.asp
Ensuite ce n'est pas une erreur mais vous indiquez font-weight:normal; ce qui est la valeur par défaut donc inutile il me semble(sauf si héritage des éléments imbriqués au dessus).
Ensuite mieux vaut éviter les accents dans les noms de classe CSS comme "entête" c'est d'ailleurs surprenant que ça passe. Et pour les accents dans le texte c'est encore mieux malgré le charset utf-8 si vous les écrivez avec leur notation HTML qui passera même si utf-8 n'est pas disponible
De manière générale respectez les recommandations d'accessibilité du WAI.
https://www.w3.org/WAI/
en français ici:
https://www.technologie-handicap-accessibilite.net/dossiers/accessibilite-web/accessibilite-web-les-normes/
Sans oublier d'utiliser un validateur qui permet de voir les erreurs éventuelles:
http://validator.w3.org/
Un tuto très complet fait par le W3C(consortium qui établit les règles du web) sous forme de MOOC individuel(la session en direct étant passée).
https://www.edx.org/professional-certificate/w3cx-front-end-web-developer
Par contre si vous vous y attaquez il risque de plus être en ligne très longtemps donc passez ce que vous connaissez déjà pour aller voir les détails, les trucs les plus intéressants donc car il permettent de faire la différence entre un site correct et un bon site(pour les normes et permettre le référencement).
Pas besoin non plus de payer suffit simplement de vous inscrire. Payer permet juste d'avoir le certificat attribué par le W3C ce qui en jette mais bon ça reste d'un niveau basique/débutant donc pas non plus utile que ça.
L'une des règles essentielles est de faire avant tout votre site pour les formats d'écrans mobiles/tablettes. Google déclasse tout ce qui n'est pas mobile first(en premier fait pour les mobiles) par rapport à ce qui est fait pour les mobiles(enfin c'est pas votre premier soucis pour l'instant je pense même si refaire votre mise en page en % va grandement aider de ce côté là) d'où l'intérêt et l'importance des media queries pour optimiser le référencement.
Laissez ce point de côté pour les autres que j'ai indiqué qui seront tout aussi important et peut-être y revenir plus tard aux media queries car ça consiste à repenser le site pour des écrans qui tiennent dans la main (et peuvent être en mode portrait plus que paysage, voire carré plus que rectangulaire) donc assez différent de votre maquette.