Revenir en haut Aller en bas
Epicode
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

Aller en bas
Batty
Batty
Ancien.ne du staff
  • Date d'inscription : 05/06/2014
  • Messages : 3514
Maquette d'Exercice pour Page d'Accueil

Créée par : Batty

Informations


Niveau estimé : Intermédiaire/Difficile
Sujet mis à jour en août 2022

Présentation


Bonjour, voici un schéma intermédiaire/difficile. Je vous invite à réaliser cette page d'accueil sans tableau. Il y a peu d'effets prévus sur cette création, seul un effet de survol sur les avatars du staff. Vous pouvez tout de même en ajouter sur les liens, les partenaires ou même les tops site (les pattes). Laissez votre imagination agrémenter ce schéma ! Je vous joins les images utiles à la confection de cette page d'accueil. Vous n'êtes pas obligés de toutes les utiliser.

La maquette



[Intermédiaire] Page d'accueil #4 - Batty 129DxXY

Les images nécessaires :

Compétences suggérées


(Rien ne vous oblige à utiliser toutes les suggestions si vous préférez vous concentrer sur un concept précis que vous ne maîtrisez pas encore)

▶ Bases du HTML : blocs paragraphes <p> ou génériques <div>, listes HTML <ul> et <li>, liens <a> et images <img>...
▶ Bases du CSS : couleurs de fond et de texte, marges, espacements internes, taille de texte...
▶ Flexbox et/ou grid pour positionner des blocs (et groupes de blocs) côte à côte
▶ La propriété CSS overflow pour gérer les dépassements
▶ La pseudo-classe :nth-child() pour l'alternance de couleurs
▶ Les pseudo-éléments ::after et ::before pour positionner (notamment) la pointe du bloc.
▶ Le positionnement en CSS
▶ Savoir réaliser une infobulle

A titre d’entraînement, vous pouvez également tenter d'obtenir un rendu avec les anciennes méthodes :
▶ les tableaux HTML
▶ La fusion des cellules d'un tableau

Si vous avez des questions, n'hésitez pas à les poser à la suite ainsi qu'à poster votre rendu et votre code entre balises [hide] et [/hide].

Merci d'informer le staff d'Epicode en cas de lien mort !


_______________
Mar 22 Déc 2015 - 16:35
Hush.
Hush.
Newbie
  • Date d'inscription : 20/06/2016
  • Messages : 44
Pumpidum



Je ne dirais qu'une chose : A mort le placement [Intermédiaire] Page d'accueil #4 - Batty 2596956373
_______________
Mar 21 Juin 2016 - 2:44
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
Hawn, on t'as même pas donné notre avis !
Désolée, est-ce que ça t'intéresse toujours @Hush. ?
_______________
Ven 20 Jan 2017 - 7:37
Luinil.
Luinil.
Membre timide
  • Date d'inscription : 23/03/2017
  • Messages : 206
J'avais essayé ce code hier, elle s'affichait bien dans ma prévisualisation puis tout était cassé quand j'ai validé le message [Intermédiaire] Page d'accueil #4 - Batty 3482194067 Il faut que je la mette sur un forum test ?
_______________
Sam 25 Mar 2017 - 2:15
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
Tu n'es pas obligé de le mettre sous un forum test, mais si ça t'arrange pourquoi pas. De toutes façons on essayera surtout de relire ton code pour t'aider à l'améliorer et te donner des conseils. Le visuel importe moins pour les exercices, c'est surtout pour te donner des pistes afin de t'exercer :)
_______________
Sam 25 Mar 2017 - 18:33
Luinil.
Luinil.
Membre timide
  • Date d'inscription : 23/03/2017
  • Messages : 206
Pfiou, j'ai fait sur jsbin du coup (super ce site, je ne connaissais pas!)





Prévisualisation (aucune idée si ça marche ou pas [Intermédiaire] Page d'accueil #4 - Batty 3482194067 )
_______________
Lun 27 Mar 2017 - 13:26
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
Coucou :)
Alors déjà, je trouve ton code quand même bien foutu mine de rien, même si y'a quelques problèmes techniques à mon avis (notamment les infobulles et le positionnement des éléments en général)

Tout d'abord, le positionnement. Je te conseille de lire ce tutoriel dans un premier temps et plus particulièrement la partie sur la valeur absolute : http://fr.learnlayout.com/position.html

Comme tu peux le constater, la valeur relative replace les éléments en valeur absolute dans le flux de son bloc s'ils sont à l'intérieur. J'espère que je suis claire, c'est un peu compliqué à expliquer parfois xD
Dans ton cas, comme tu positionnes tes éléments en position absolute, tu vas avoir besoin d'un bloc qui englobe toute ta PA afin que les éléments ne se placent pas en fonction de la page, mais en fonction du bloc d'origine. Donc, il faudrait ajouter un position:relative; à #bg et seulement ça pour que ce soit le cas :)

Maintenant, on va s'attaquer à ton second problème : les infobulles. Je vais te donner un exemple d'infobulle simple, expliquer son fonctionnement et ensuite tu corrigeras ton code, d'accord ? :)



J'ai donc utilisé les position en commencement par une valeur relative afin de modifier le flux dans lequel les prochains blocs seront affectés.
Ensuite j'ai ajouté l'image dans la div #infobulle puis une div dans laquelle je mets les informations que je souhaite. Dans mon CSS, je place la div avec un position:absolute;, ce qui fait que le bloc cache mon image avec le CSS appliqué.

Comme on souhaite que l'image soit affichée et qu'au survol on puisse voir ensuite les informations, on va appliquer un opacity:0; à notre div pour ensuite appliqué un opacity:1; pour que le bloc apparaisse au survol de l'image.

Tu remarqueras cependant que la manière avec laquelle j'applique mon hover est différente de la tienne : #infobulle:hover div. Ce que je fais, c'est que j'applique le hover sur le bloc #infobulle et pas sur la div, car c'est au survol de tout le bloc que les informations vont s'afficher et pas seulement le bloc d'informations. Ainsi, tu peux appliquer l'effet que tu veux sans problème (défilement sur le côté, agrandissement du bloc,...)

Un petit peu de CSS et voilà notre infobulle ! :D
J'espère que mes explications sont assez claires et qu'elles t'auront aidées pour modifier ton code afin qu'il y ait le moins de bugs possibles (c'est aussi parce que tu n'avais peut-être pas mis de position:relative; au premier bloc que la PA devait s'afficher étrangement comme tu l'as signalé je pense).

Bonne soirée :)
_______________
Lun 27 Mar 2017 - 19:50
Luinil.
Luinil.
Membre timide
  • Date d'inscription : 23/03/2017
  • Messages : 206
Coucou !

Merci beaucoup pour ton explication, je vais essayer de reprendre !
Alors déjà, je trouve ton code quand même bien foutu mine de rien, même si y'a quelques problèmes techniques à mon avis (notamment les infobulles et le positionnement des éléments en général)

Tout d'abord, le positionnement. Je te conseille de lire ce tutoriel dans un premier temps et plus particulièrement la partie sur la valeur absolute : http://fr.learnlayout.com/position.html

Comme tu peux le constater, la valeur relative replace les éléments en valeur absolute dans le flux de son bloc s'ils sont à l'intérieur. J'espère que je suis claire, c'est un peu compliqué à expliquer parfois xD
Dans ton cas, comme tu positionnes tes éléments en position absolute, tu vas avoir besoin d'un bloc qui englobe toute ta PA afin que les éléments ne se placent pas en fonction de la page, mais en fonction du bloc d'origine. Donc, il faudrait ajouter un position:relative; à #bg et seulement ça pour que ce soit le cas :)

Je m'étais posé la question, mais il me semblait que j'avais lu qu'absolute était par rapport au contenant (même s'il n'est pas positionné) mais c'était il y a longtemps, erreur facile à corriger !

Merci pour les infobulles, je vais essayer de modifier cela ! [Intermédiaire] Page d'accueil #4 - Batty 3775839356

edit: waaaaaah merci merci c'est beaucoup plus simple (et efficace!) que tous les bidouillages que je faisais !

_______________
Mar 28 Mar 2017 - 0:53
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
Du coup avec les modifications ça devient vraiment pas mal niveau code. Bien joué, t'as bien compris mes explications sur les infobulles :D
J'ai rien à rajouter niveau technique, mais par rapport à l'optimisation du code c'est pas encore tout à fait ça. Tu aurais pu utiliser seulement une classe dans ton CSS pour les infobulles du staff, comme ceci


Comme tu peux le voir, j'ai ajouté la propriété display:inline-block; afin d'aligner les infobulles les unes à côté des autres. Comme la div est une balises de type bloc, elle ramène les blocs qui la suivent à la ligne. Avec cette propriété, on modifie la valeur de base de la balise div afin qu'elle s'aligne avec d'autres blocs.
Donc en gros, au lieu de faire à chaque fois une ligne pour une infobulle tu pourrais tout simplement toutes les mettre dans un bloc principal pour ensuite les aligner en une classe dans ton CSS :D
_______________
Ven 31 Mar 2017 - 13:00
Luinil.
Luinil.
Membre timide
  • Date d'inscription : 23/03/2017
  • Messages : 206
D'accord je me suis toujours demandé comment utiliser cette propriété (j'ai appris toute seule du coup j'ai pas mal de lacunes huhu)

Merci beaucoup [Intermédiaire] Page d'accueil #4 - Batty 1066248963
_______________
Sam 1 Avr 2017 - 10:57
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
'tain j'suis trop nulle du coup j'ai mis mon iframe entre des balises codes :')
J'étais trop crevée xD
Du coup voilà l'exemple @Luinil. :3
_______________
Sam 1 Avr 2017 - 14:49
Luinil.
Luinil.
Membre timide
  • Date d'inscription : 23/03/2017
  • Messages : 206
ça rend bien [Intermédiaire] Page d'accueil #4 - Batty 3482194067 Merci !
_______________
Dim 2 Avr 2017 - 8:28
Cheshire Cat
Cheshire Cat
Accro au forum
  • Date d'inscription : 15/12/2012
  • Messages : 4814
Super ! C'est tant mieux alors ! :D
_______________
Lun 3 Avr 2017 - 13:14
Tetsu
Tetsu
Newbie
  • Date d'inscription : 12/08/2018
  • Messages : 42
Bonjour [Intermédiaire] Page d'accueil #4 - Batty 3775839356 J'ai fais mon petit essai, j'y ai glissé plein d'effets que je voulais travailler, j'espère que ça ira [Intermédiaire] Page d'accueil #4 - Batty 3655035957

_______________
Mar 14 Aoû 2018 - 14:23
Sun
Sun
Ancien.ne du staff
  • Date d'inscription : 22/12/2016
  • Messages : 266
Hello ! Perso je suis assez contente, pour le code je sais pas ce que vous en pensez ? Ah et sinon j'ai codé le triangle plutôt que de prendre l'image, sinon c'est pas drôle [Intermédiaire] Page d'accueil #4 - Batty 885843852

_______________
Dim 26 Aoû 2018 - 11:39
Batty
Batty
Ancien.ne du staff
  • Date d'inscription : 05/06/2014
  • Messages : 3514
Hello vous deux ! Je vais "corriger" vos exercices !

@Tetsu

Ton code est bien =) Mais je suis là pour pointé tout les petit "défaut" afin de t'aider à progresser dans la programmation. La première chose que je voie c'est l'utilisation de la balise style à l'intérieur de ta PA. Normalement soit on met le CSS à l'extérieur du HTML soit on le met à l'intérieur. Pas un peux des deux ;)

Dans le cas d'un PA il est préférable de séparé le CSS du HTMl comme tu là fait. J'ai l'impression que c'était presque à chaque fois pour positionner ton élément dans ta PA. Il existe des façon plus simple de positionner tout ça. Par exemple, pour tes lien, je les aurais tous mis dans une Div que j'aurais positionner en absolute. Ensuite, j'aurais appliquer un display:block; sur mon lien (comme tu là fait sur la span) Le Display aurais eu pour effet de crée un saut de ligne entre chaque lien. Du coup ils se serais positionner un à la suite de l'autre sans plus d'effort et de ligne ;) J'aurais également mis tout mon style sur mon lien et ainsi évité d'utiliser un span pour "rien".

En programmation on essaie de faire plus avec moins. Oui, oui nous sommes paresseux xD Voici comment j'aurais coder la section lien :

Code:
<div id="lien">
<a href="#">Lien 1</a>
<a href="#">Lien 2</a>
<a href="#">Lien 3</a>
</div>

Code:
#lien{
position:absolute;
top: px;
left: px;
}

#lien a{
  display: block;
  background-color: #F1A95C;
  border: 2px solid #645955;
  width: 100px;
  height: 25px;
  text-align: center;
  color: #645955;
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

Tu ne connais surement pas les sélecteurs, mais comme tu peux le voir dans mon exemple grâce à eux on peux réduire considérablement les ligne de codes. Ici mon sélecteur était le "a" dans l'expression #lien a{}. Cette ligne de code veux dire "tout les lien (a) dans le bloc qui porte le ID lien vont avoir ce style là" Je ne sais pas si je suis claire mais je te laisse aller lire le tuto ici : Les sélecteurs.

Tu peux utiliser les sélecteur partout ! Par exemple dans ton code tu aurais pue l'utiliser sur ton staff. Au lieu d'avoir la class .cadrestaff et .textestaff tu aurais pue écrire .cadrestaff div et pour les partenaires aussi.

Ensuite ce que je remarque aussi c'est que tu utilise beaucoup de balise "pour rien". La span dans tes liens est un exemple, mais également dans ton contexte où tu à utiliser une div #textecontexte alors que tout ce style aurais pue être mis dans #cadrecontexte. Même chose pour le cadre info.

D’ailleurs pour ce cadre tu à utiliser une span que tu à modifier en bloc pour intégré un texte à l'intérieur. Il aurais été plus judicieux de choisir un balise de bloc comme une DIV ou P. Il est en effet possible transformer une balise "inline" en balise "block" mais il faut être réaliste et respecté le rôle de chacune. Dans une balise "inline" normalement il n'y a pas beaucoup de texte, sont rôle est de mettre en évidence une section de texte, contrairement au balise de type "block" =)

Voilà j'ai fait le tour, j'espère ne pas t'avoir fait peur x)

Je n'est pas parler de tout les élément de ta PA puisque les "erreurs" ce répétait. Ce que j'ai dit pour les lien pourrais s’appliquer pour les tops site.

@Sun

Hello toi ! Bravo pour l'utilisation des sélecteurs =)

La première chose que je vois dans ton code c'est l'utilisation de plusieurs positionnement différent sur un même élément. Il n'est pas vraiment mal d'en choisir une où l'autre... mais il faut choisir ;) Soit on positionne avec les display, soit avec le positionnement relative/absolute.

L'avantage du positionnement absolute c'est qu'il est possible de mettre notre élément exactement là où on le souhaite. Par contre il faut l'utiliser convenablement. Ce n'est pas toujours facile de comprendre comment ça fonctionne.

En gros, l'élément qu'on positionne avec le top/bottom/left/right c'est celui qui porte l’attribut "absolute". Celui qui auras l’attribut relative c'est le parent/conteneur. EN gros il délimite le carré dans lequel les autre élément vont être positionner.

Par exemple dans ta PA ton "parent/conteneur" aurais pue être .pa_gauche (voir même .pa_gdbloc et ainsi suprimer la div droite et gauche)

Ton CSS aurais resemblez à ceci :

Code:
.pa_gauche{
position:relative;
    width: 320px;
    height: 450px;
}

.pa_gauche img{
porition:absolute;
top: px;
left: px;
}

.pa_gauche_liens{
porition:absolute;
top: px;
left: px;
}

Ensuite, je trouve que tu utilise des balise pour rien. Tu était bien partie avec les sélecteur qui élimine des balise, mais pourquoi en avoir utiliser au temps dans ton contexte ?

.pa_contexte est pour positionner ton bloc contexte. Ok, mais avec un bon positionnement relative/absolute on aurais peu simplement positionner .pa_cadre-contexte. Ensuite, pourquoi avoir utiliser une balise paragraphe ? Tout les attribut aurais pue être ajouter aus CSS de la Div .pa_cadre-contexte.

J'ai le même commentaire pour ton staff et le bloc texte au côté des news.

En parlent des News tu aurais pue transformer des span en bloc pour éviter de mettre des BR dans ton html =) mais là c'Est du chipotage xD

Finalement, où on met les images du staff ?

Voilà ! J'espère ne pas vous avoir fait peur avec mon analyse =) Si vous avez des questions n'hésitez pas
_______________
Lun 27 Aoû 2018 - 16:11
Sun
Sun
Ancien.ne du staff
  • Date d'inscription : 22/12/2016
  • Messages : 266
Merci beaucoup pour ta réponse @Batty !
Pour le fait de choisir entre display et relative/absolute, je ne savais même pas, donc merci x) Je pensais qu'il fallait d'office mettre le display et puis régler, bref, merci beaucoup pour cette info.
Pour le contexte et le p inutile, effectivement, j'ai tendance à vouloir toujours utiliser une balise par type d'éléments, et mettre des p pour rien :rip: J'essayerai d'y penser plus à l'avenir.
Quant aux news, ils sont en span et en display: block; :rip: Mais j'avais mis des br à la base parce que j'étais partie sur du p ou du h je sais plus, avant de me rappeler qu'un span serait plus pertinent pour ça, et j'ai oublié de les retirer. Ah làlà, la relecture encore xD
Les images du staff, c'est en haut à gauche dans les cadres là, et elles sont dans le css [Intermédiaire] Page d'accueil #4 - Batty 3313101865 Du coup ç'aurait été mieux de les placer dans la partie HTML ? Comment tu les aurais mises alors, sans utiliser de style ?
Merci encore pour ta réponse x)
_______________
Lun 27 Aoû 2018 - 16:45
Batty
Batty
Ancien.ne du staff
  • Date d'inscription : 05/06/2014
  • Messages : 3514
Hello Sun !

Ah oui j'avais pas remarquer les image dans le CSS ... mais du coup ton membre du staff #1 et #3 trois devrons avoir la même image ?

Moi j'aurais tout simplement mi mon image en HTML :

Code:
<div class="conteneur">
  <img src="URL" alt="satff 1" />
  <div class="contenue">Pseudo/rang/mp/profil</div>
</div>
_______________
Lun 27 Aoû 2018 - 20:14
Sun
Sun
Ancien.ne du staff
  • Date d'inscription : 22/12/2016
  • Messages : 266
Ah oui effectivement s'ils ont la même image c'est bizarre xD
Ok, merci beaucoup, j'y penserai. Encore merci pour ta correction [Intermédiaire] Page d'accueil #4 - Batty 2476780191
_______________
Lun 27 Aoû 2018 - 21:24
Contenu sponsorisé
    _______________
    Revenir en haut