Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1562 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Dimensionnement et placement CSS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dimensionnement et placement CSS

n°2433627
Manisque
Posté le 28-11-2022 à 20:59:11  profilanswer
 

Bonjour,
 
J'essaye de placer des div en ayant pour but d'avoir 4 blocs de taille différente qui se touchent sans se recouvrir.
Les tailles sont relatives pour s'adapter à la taille de la fenêtre.
 

  • Haut-gauche : InfoWtitle, orange, 85% de large, 15% de haut (redimensionné à 10% pour tester)
  • Haut-droit : InfoWright, jaune, 15% de large, 15% de haut (redimensionné à 10% pour tester)
  • Bas-gauche : ControlsW, vert, 20% de large, 85% de haut
  • Bas-droit : MainW, bleu, 80% de large, 85% de haut


https://monorailc.at/hfr/22/11/css.png
 
Le bloc vert en bas à gauche ne fait pas ce que je veux, et c'est possible que les autres blocs ne soit pas exactement à leur place [:calimero].
 
J'ai hésité entre "position: fixed" et "position: absolute", en théorie ça ne devrait rien changer puisque tout doit tenir sur une page, mais "position: absolute" me place des trucs en dehors et permet de scroller.
 
Le positionnement par rapport au coin haut-gauche ou par rapport aux extrémités ne change pas le comportement.
 
Ai-je fait une erreur de débutant évidente ?
 
Y-a-t'il un moyen d'afficher une grille exacte avec un quadrillage tous les 10% ou tous les 10px pour comprendre plus facilement (LaTeX le fait :o) ?
 
J'ai simplifié le code le temps pour tester et essayer comprendre :  

Code :
  1. <style>
  2. * {
  3.  font-size: 20px;
  4. }
  5. #InfoWtitle {
  6.  font-weight: bold;
  7.  position: fixed;
  8.  display: block;
  9.  text-align: center;
  10.  left: 0;
  11.  top: 0;
  12.  width: 85%;
  13.  height: 10%;
  14.  background-color: orange;
  15. }
  16. #InfoTitle {
  17.  margin-top: 2%;
  18.  font-size: 30px;
  19. }
  20. #InfoClock {
  21.  margin-top: 2%;
  22. }
  23. #InfoWright {
  24.  position: fixed;
  25.  display: block;
  26.  right: 0;
  27.  top: 0;
  28.  width: 15%;
  29.  height: 10%;
  30.  background-color: yellow;
  31. }
  32. #ControlsW {
  33.  position: fixed;
  34. /*  top: 10%; */
  35.  bottom: 0;
  36.  left: 0;
  37.  width: 20%;
  38.  height: 85%;
  39.  background-color: green;
  40. }
  41. #ControlsW li {
  42.  padding: 15%;
  43. }
  44. .id {
  45.  display: none;
  46. }
  47. ul {
  48.  list-style: none;
  49. }
  50. #MainW {
  51.  position: fixed;
  52. /*  top: 10%; */
  53.  bottom: 0;
  54.  left: 20%;
  55.  width: 80%;
  56.  height: 85%;
  57.  background-color: blue;
  58. }
  59. </style>


 

Code :
  1. <body>
  2. <ul id="ControlsW">
  3. <li><img id="Menu" src="../img/go-home.png"></li>
  4. <li><img id="Prev" src="../img/media-skip-backward.png"></li>
  5. <li><img id="Play" src="../img/media-playback-pause.png"></li>
  6. <li><img id="Next" src="../img/media-skip-forward.png"></li>
  7. </ul>
  8. <!--<div id="InfoW"> -->
  9. <div id="InfoWtitle">
  10.  <div id="InfoTitle">Title</div>
  11. </div>
  12. <div id="InfoWright">
  13.  <div id="InfoClock">HH:MM</div>
  14.  <div id="InfoTemp">nan°C</div>
  15. </div>
  16. <div id="MainW">
  17. <div id="MainWFMradio">
  18.  <div class="id">fmradio</div>
  19.  <p>Freq: 99.5 MHz</p>
  20.  <button id="todo">-</button>
  21.  <input type="range" min="87.50" max="108" value="99.50" class="slider" id="freq">
  22.  <button id="todo">+</button>
  23.  <ul>
  24.  <li>089.50 Bayern 2</li>
  25.  <li><button id="todo">Scan</button></li>
  26.  </ul>
  27. </div>
  28. </div>
  29. </body>


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
mood
Publicité
Posté le 28-11-2022 à 20:59:11  profilanswer
 

n°2433634
mechkurt
Posté le 29-11-2022 à 00:02:48  profilanswer
 

Tu devrais utiliser un reset css (pour unifier / margin / padding et boxmodel), ça devrait aider.
https://meyerweb.com/eric/tools/css/reset/reset.css
 
Peut on savoir la destination de ton truc ?
Pacque si c'est destiné à un projet perso sur un écran dont tu connais la taille, ce sera sans doute plus simple de tout faire en pixel en position absolute top left avec une width / height en pixel.
 
Par contre si tu souhaites rester responsive (s'adapter à des tailles d'écran différente), tu aura plus de flexibilité avec Flexbox.


---------------
D3
n°2433635
Manisque
Posté le 29-11-2022 à 05:25:18  profilanswer
 

Merci, j'ai forcé les paramètres margin et padding à 0 dans le CSS, je pensais que c'était le cas par défaut :o.
 
Mon truc est un media-center. Je veux justement un responsive design parce que je trouve l'idée de tout forcer en dur pas très élégante :o.
 
Je note pour Flexbox :jap:. Ça ressemble pas mal aux QH/VBoxLayout de Qt, j'ai l'impression que Grid correspond mieux à mon cas :jap:.


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
n°2433686
rufo
Pas me confondre avec Lycos!
Posté le 29-11-2022 à 15:26:14  profilanswer
 

Je dirais surtout qu'il devrait utiliser les flexbox du CSS : https://developer.mozilla.org/fr/do [...] of_Flexbox
Ca va lui simplifier la vie plutôt que partir sur du position: fixed / absolute qui date des années 2000 :o
 
Edit : a pas vu le lien Flexbox posté par mechkurt :sleep:


Message édité par rufo le 29-11-2022 à 15:27:40

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2433691
mechkurt
Posté le 29-11-2022 à 15:36:16  profilanswer
 

Ça dépend surtout du niveau technique de la personne et de la destination final de son rpojet...
 
Pour quelqu'un qui ne veut pas se prendre la tête et un résultat rapide sans trop d'effort, la simplicité du dimensionnement au pixel près avec avoir lut un paragraphe de doc et remplis 4 propriétés css (5 en contant le position:absolute; ^^) est juste imbattable. :o


---------------
D3
n°2433768
gatsu35
Blablaté par Harko
Posté le 30-11-2022 à 11:44:43  profilanswer
 

Manisque a écrit :

Merci, j'ai forcé les paramètres margin et padding à 0 dans le CSS, je pensais que c'était le cas par défaut :o.
 
Mon truc est un media-center. Je veux justement un responsive design parce que je trouve l'idée de tout forcer en dur pas très élégante :o.
 
Je note pour Flexbox :jap:. Ça ressemble pas mal aux QH/VBoxLayout de Qt, j'ai l'impression que Grid correspond mieux à mon cas :jap:.


le truc va s'afficher sur quoi comme navigateurs ?  


---------------
Blablaté par Harko
n°2433769
Manisque
Posté le 30-11-2022 à 13:02:28  profilanswer
 

Je développe le bouzin sur un PC avec Firefox dont je trouve le debugger pratique.

 

La cible n'est pas clairement définie pour l'instant, j'hésite entre Firefox ou Konqueror/Webkit avec Linux et Firefox Mobile avec Android. Ça dépendra surtout des performances du bouzin.
Je peux faire des hacks moches en fonction de la taille de l'écran, mais j'aimerais éviter pour le moment :o.

 

Je plussoie le coup d'un système KISS, surtout ici où c'est relativement simple et hiérarchisé.
La partie en bleu a potentiellement du bordel dedans, mais pour l'instant ça rentre bien [:casediscute].


Message édité par Manisque le 30-11-2022 à 13:03:37

---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
n°2433781
gatsu35
Blablaté par Harko
Posté le 30-11-2022 à 14:02:11  profilanswer
 

bon du coup ton truc en positions absolute c'est plus ou moins la bonne chose à faire.
A la rigueur en flexbox c'était troché sans trop de bricolage.
 
Pour information quand tu utilises des margin-top ou margin-bottom (padding aussi), si tu mes des % dans les valeurs, ils dépendent de la largeur de leur parent, donc ce n'est pas une bonne idée.
Utilise, top, right, left et bottom pour placer tes éléments.@


---------------
Blablaté par Harko
n°2434272
MaybeEijOr​Not
but someone at least
Posté le 03-12-2022 à 18:06:15  profilanswer
 

C'est vite torché avec grid aussi.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2434273
gatsu35
Blablaté par Harko
Posté le 03-12-2022 à 18:34:54  profilanswer
 

MaybeEijOrNot a écrit :

C'est vite torché avec grid aussi.


ouais mais regarde son navigateur de destination


---------------
Blablaté par Harko
mood
Publicité
Posté le 03-12-2022 à 18:34:54  profilanswer
 

n°2434274
MaybeEijOr​Not
but someone at least
Posté le 03-12-2022 à 19:08:47  profilanswer
 

Konqueror ne supporte pas les grid css ou c'est la version du navigateur du media-center dont tu supposes qu'elle ne supportera pas les grid css ?
Parce que Konqueror est censé supporter le css3 et donc les grid (définies depuis css2, non?) sans utiliser le webkit.
 
J'ai quelques bières dans le pif donc je te fais confiance. xD


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2434277
Manisque
Posté le 03-12-2022 à 20:12:06  profilanswer
 

En théorie Konqueror supporte tout le bouzin :o.
 
Je crois bien que je vais utiliser Flexbox pour améliorer les trucs dans le bloc bleu et peut-être même le bloc vert :jap:.
 
D'ailleurs, j'ai découvert l'astuce height: 50vh; pour avoir un truc dépendant de la taille du "viewport".


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
n°2434283
gatsu35
Blablaté par Harko
Posté le 03-12-2022 à 22:43:58  profilanswer
 

MaybeEijOrNot a écrit :

Konqueror ne supporte pas les grid css ou c'est la version du navigateur du media-center dont tu supposes qu'elle ne supportera pas les grid css ?
Parce que Konqueror est censé supporter le css3 et donc les grid (définies depuis css2, non?) sans utiliser le webkit.
 
J'ai quelques bières dans le pif donc je te fais confiance. xD


CSS grid c'est ultra récent et ce n'est pas CSS2, mais CSS3 et implémenté depuis 1 ou 2 ans maxi.
 
Donc flexbox ou alors comme il a fait mais en foutant un overflow:auto sur son div qui contient le contenu de sa page.


---------------
Blablaté par Harko
n°2446770
ellis13
Posté le 21-05-2023 à 15:27:55  profilanswer
 

Le flottement à droite peut être réglé.


Message édité par ellis13 le 21-05-2023 à 15:28:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Dimensionnement et placement CSS

 

Sujets relatifs
Faille de sécurité CSSDivers - problème de formulaire HTML / CSS / JS
organisation CSS[PHP] Problème stylesheet CSS indisponible sur une page (MODEL MVC)
[CSS]Problème Mise en pageCSS qui modifie plusieurs sites contre mon gré..
YouTube - problème CSS[Résolu] Performance Elementor et One Page, trop de CSS et Javascript
Blend Mode CSSCSS: récupérer la position courante d'une animation pour l'inverser ?
Plus de sujets relatifs à : Dimensionnement et placement CSS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR