28172 sujets

CSS et mise en forme, CSS3

Bonjour a tous,
je viens de commencer le dev pour intégrer une formation en septembre, je dois réaliser une page d’accueil pour les inscriptions a cette formation. Avant de poser ma question, je vous demande pas de me mâcher le boulot. Je voudrais que l'on m'aide simplement a m'orienter sur les bonnes lignes de codes que je puissent configurer par moi même la page du site.

Ma question est donc:
Je dois mettre en page horizontalement 3 grandes idées suivis d'un petit texte explicatif, mais impossible de faire ce que je voudrai, par quelle commande puis je réaliser ce type de mise en page?
J'ai présenter mes 3 idées de la sorte:

  <section id="perfo">
      <h2>Performances</h2>
      <!-- TODO: En utilisant du css place ces trois performances ("lough", "dream, "marvel at") sur la même ligne en enlevant le point généré par la balise "li". Attention, utilise bien le css pour aligner les éléments, tu ne dois pas enlever les balises "li"-->
      <ul>
        <!-- performance 1 -->
        <li>
    <div class="Laugh">       
            <h3>Laugh</h3>
            <p>As an adult, come and discover our irresistible clowns, between practical jokes and pranks let yourself be carried away by their joy and fall back into childhood.</p>
         </li>
        </div>
        <!-- performance 2 -->
         <li>
           <div class="Dream">
            <h3>Dream</h3>
            <p>Let yourself be carried away in a world where the real and the imaginary are one, in the company of our talented magicians, discover a wonderful world limited only by your imagination.</p>
         </li>
           </div>
         <!-- performance 3 -->
         <li>
           <div class="Marvel">
            <h3>Marvel at</h3>
            <p>Tame the untameable in the company of our tamers, between roar and razor-sharp claws, watch these fierce felines turn into sweet kittens.</p>
         </li>
  </div>
      </ul>
    </section>

    <hr/>



J'ai eu l'idée de créer un block principal pour y intégrer mes 3 autres blocks de cette manière avec le css:



.perfo{
  display: block;
  width: 100%;    
}
.Laugh {
  display: block;
    width: 30%;
  float: left;
}
.Dream{
  display: block;
  width: 30%;
  text-align: center; 
}
.Marvel{
  display: block;
  width: 30%;
  float: right;  
}


J'ai essayer pas mal de choses mais qui me demandais de supprimer des lignes du htlm de base ce que je ne dois pas faire normalement. Pouvez m'aiguillez sur la direction a prendre pour ce genre de chose s'il vous plait je bûche un peu malgré les cours sur le web. Smiley biggol
Modérateur
Tu peut déjà vérifier ta structure HTML à l'aide de https://validator.w3.org/#validate_by_input par exemple, cela évite des bugs d'affichage sur des règles css a priori bien faites.

pour mettre des flottants cotes à cotes , le mieux c'est qu'il soit frere dans le html , là ce n'est pas le cas.

Il y a quelques tutoriel pour t'inspirer : https://www.alsacreations.com/tuto/liste/2-css.html

quelques uns :

https://www.alsacreations.com/astuce/lire/77-Aligner-des-elements-horizontalement-sans-tableau.html

https://www.alsacreations.com/tuto/lire/538-Construire-un-site-sans-tableaux.html

https://www.alsacreations.com/tuto/lire/1493-CSS3-Flexbox-Layout-module.html

En corrigeant ton code et tes sélecteurs pour les flottants, cela devrait commencer a etre moins compliqué Smiley cligne
Bonjour Gcyrillus merci je vais check tout les tutos et retenter ma chance. Si besoin je vous tiendrai informer de mon avancer.
Merci pour votre réponse rapide.
Rebonjour
Je reviens vers vous car une fois de plus je retombe face a un mur.


Voici la partie htlm que je voudrais travailler:
    <section>
      <div class="perfo" id="perfo"role="article">
      <h2> Performances</h2>
      <!-- TODO: En utilisant du css place ces trois performances ("lough", "dream, "marvel at") sur la même ligne en enlevant le point généré par la balise "li". Attention, utilise bien le css pour aligner les éléments, tu ne dois pas enlever les balises "li"-->
      <ul>
        
        <li>
          <div class="Laugh" id="Laugh" role="article">
     
            <h3>Laugh</h3>
            <p>
              As an adult, come and discover our irresistible clowns, between practical jokes and pranks let yourself be carried away by their joy and fall back into childhood.</p>
            </div>
         </li>
      
        <!-- performance 2 -->
         <li>
           <div class="Dream" id="Dream" role="article">
            <h3>Dream</h3>
            <p>Let yourself be carried away in a world where the real and the imaginary are one, in the company of our talented magicians, discover a wonderful world limited only by your imagination.</p>
           </div>
         </li>
         <!-- performance 3 -->
         <li>
           <div class="Marvel" id="Marvel" role="article">
            <h3>Marvel at</h3>
            <p>Tame the untameable in the company of our tamers, between roar and razor-sharp claws, watch these fierce felines turn into sweet kittens.</p>
           </div>
         </li>
      </ul>
    </section>

Elle passe parfaitement sur w3c. Je cherche toujours a crée 3 gros block horizontales, pour cela j'ai esseyer de la sorte:

.Laugh {
  position: absolute;
	left: 53px;
	top: 200px;
	width: 300px;
	height: 300px;
	overflow: auto;
  text-align: center;
  
	}
.Dream {
  position: absolute;
	left: 473px;
	top: 139px;
	width: 297px;
	height: 300px;
	overflow: auto;
  margin: 0;
	padding: 0;
  text-align: center;
}
.Marvel {
  position: absolute;
	left: 771px;
	top: 139px;
	width: 348px;
	height: 300px;
	overflow: auto;
  margin: 0;
	padding: 0;
  text-align: center;
}


(Ne prêtez pas attention au dimensions)
J'ai donc bien réussi a faire mes 3 block aligner horizontalement mais je suis encore a des années lumière du résultat voulus.
300ko pour un fichier, je ne peux pas vous montrer de screen du resultat.
Mais le problème est que mes 3 block n'occupent pas du tout la largeur total de ma page et sont totalement décalés.
Je souhaiterai solliciter votre aide s'il vous plait , j'ai envie d'arracher mes cheuveux...
Modifié par detale51 (25 Jul 2019 - 11:31)
Administrateur
Hello detale51,

Je crains d'avoir une mauvaise nouvelle...

Tu as parcouru toutes les pistes et les articles proposés par gcyrillus et tu as opté pour un choix de positionnement qui n'est cité dans aucune de ces pistes... puisque c'est le pire choix possible pour réaliser ce genre d'affichage : le positionnement absolu Smiley bawling

Pour ce genre de gabarits, float et position absolute sont à éviter car ils sont soit obsolètes soit inadapté, soit les deux à la fois.

Le dernier lien proposé par gcyrillus détaille le fonctionnement du positionnement Flexbox. Je te conseille vivement d'opter pour ce modèle car il résoudra très facilement tes soucis.

Bonne chance,

Raphaël
Bonjour Raphael et merci de ta réponse.
J'ai pus effectivement avancer beaucoup plus facilement. Toutes ces nouvelles notions restent encore complexe pour moi, j'ai du mal a tout bien assimiler.

Je rencontre un autre petit problème d'ordre stylistique; je souhaiterai encadrer mes textes d'un jolie cadre mais pas en le dessinant avec le css ou en htlm. Je dispose d'un cadre.png que je souhaiterai incorporer. J'ai d'abord essayer de le mettre aux dimensions de la box d'un paragraphe mais le rendus n'est pas celui désirer.
J'ai également essayer de faire comme le fond d’écran de la page en utilisant cette commande css que j'ai trouvé sur le web:
 -webkit-background-size: cover; 


Mais la non plus le résultat n'est pas celui voulus.

Connaissez vous une méthode propre de bien encadrer mon texte avec mon image, ou dois je lui trouver les dimensions adéquate en jouant avec celles ci?
Modifié par detale51 (26 Jul 2019 - 13:42)
Administrateur
Hello,

Je te conseille à l'avenir de créer un sujet différent pour chaque question, sinon il sera impossible de retrouver tes sujets plus tard. Je pense tout particulièrement à un autre membre qui aurait le même problème de bordure en image que toi et qui ne risquera jamais de tomber sur ton sujet.

detale51 a écrit :

Connaissez vous une méthode propre de bien encadrer mon texte avec mon image, ou dois je lui trouver les dimensions adéquate en jouant avec celles ci?


Il est difficile de se prononcer sans avoir vu de quel genre d'image tu parles (image complexe, simple dégradé, simple couleur uniforme ?) ni que que tu appelles "résultat satisfaisant", mais toujours est-il que la bonne méthode pour afficher une bordure à l'aide d'une image est... border-image :
https://developer.mozilla.org/fr/docs/Web/CSS/border-image
Administrateur
detale51 a écrit :
J'ai pus effectivement avancer beaucoup plus facilement. Toutes ces nouvelles notions restent encore complexe pour moi, j'ai du mal a tout bien assimiler.

Je me permets de revenir sur cette réflexion.

Tu as raison. CSS est un langage qui s'apprend, il y a des règles de base à connaître notamment sur l'impact que peut avoir un sélecteur par rapport à un autre, le choix d'un positionnement par rapport à un autre, rien n'est dû au hasard et ce n'est pas parce qu'un truc ne marche pas qu'on essaye un autre truc au hasard.

Il existe d'excellentes ressources d'apprentissage, notamment les documentation de MDN. Il existe aussi des formations ou des ouvrages sur le sujet. Mais il faut prendre le temps de les assimiler, ne pas sauter les étapes. Bref, comme n'importe quel autre langage.
Modifié par Raphael (26 Jul 2019 - 14:20)
Merci de tes réponses et a l'avenir je passerai par un nouveau post si j'ai une nouvelle question.