Développement Web frontend moderne : HTML, CSS, JavaScript, Sass et Typescript | Christopher Dodd | Skillshare
Recherche

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Développement Web frontend moderne : HTML, CSS, JavaScript, Sass et Typescript

teacher avatar Christopher Dodd, Web Developer / Educator

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:21

    • 2.

      Frontend vs Backend Web Development

      14:55

    • 3.

      HTML

      29:26

    • 4.

      Quick Disclaimer

      5:10

    • 5.

      CSS

      37:02

    • 6.

      Sass

      18:29

    • 7.

      Javascript

      14:43

    • 8.

      Typescript

      15:45

    • 9.

      Javascript Frameworks

      28:40

    • 10.

      Tailwind CSS

      34:21

    • 11.

      Using APIs

      24:42

    • 12.

      Class Project Setup

      15:14

    • 13.

      Conclusion

      1:04

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

1,576

Students

6

Projects

À propos de ce cours

À l'intérieur, nous allons prendre une vue moderne du développement Web frontal, explorerons certains des outils les plus populaires aujourd'hui.

Nous apprendrons à écrire des pages Web avec HTML, à les créer avec CSS et Sass et à introduire l'interactivité et la récupération de données via Javascript et Typescript.

Donc, si vous souhaitez obtenir un aperçu du fonctionnement réel du développement frontend continuez à regarder et je vous verrai à l'intérieur.

Meet Your Teacher

Teacher Profile Image

Christopher Dodd

Web Developer / Educator

Top Teacher

Christopher Dodd is a self-taught web developer, YouTuber and blogger with a mission to help individuals learn the skills to freelance and make a living independently.

Chris learned web development in 2015 in order to work remotely and travel the world and has done so for the past 8 years.

Through his YouTube channel, blog and Instagram, Chris inspires and educates newbie 'digital nomads' to chase their passions and pursue a location independent career.

See full profile

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bonjour et bienvenue dans mon nouveau cours développement Web frontal moderne. Je suis Christopher Dodd. Je suis l'un des meilleurs professeurs sur skillshare.com. En 2018, publié son tout premier cours Skillshare, Understanding Web Development, qui est devenu l'un des cours les plus regardés catégorie développement Web de Skillshare. Bien que les principes fondamentaux que j'ai partagés en classe soient toujours d' actualité, les langages, les outils et les technologies du Web continuent d'évoluer. HTML, le CSS et JavaScript restent les principaux langages frontaux, mais des compilateurs tels que Sass et TypeScript sont aujourd'hui apparus et ont gagné en popularité, transformant la façon dont le CSS et le JavaScript sont écrits. Les frameworks JavaScript sont également devenus très populaires avec des frameworks et des bibliothèques tels que React, Vue et Angular. D'ailleurs, si certains de ces noms ne vous sont pas familiers, ne vous inquiétez pas, nous en parlerons dans le cours. Dans cet article, nous allons adopter une vision plus moderne du développement Web frontal, en nous penchant sur certains des outils les plus populaires utilisés aujourd'hui. Nous apprendrons à écrire des pages Web en HTML, les styliser avec CSS et Sass, et à introduire l'interactivité et la récupération de données via JavaScript et TypeScript. Si vous souhaitez avoir un aperçu du fonctionnement réel du développement Web frontal moderne, continuez à regarder et je vous verrai de plus près. 2. Développement Web de Frontend vs Backend: Le concept le plus important à comprendre dans le développement Web est probablement la différence entre le front-end et le back-end. Nous en avons parlé dans Understanding Web Development, mais c'est un concept tellement important que je voulais le rafraîchir ici. En termes simples, le front-end est tout code assemblé dans votre navigateur Web, c'est-à-dire le programme que vous utilisez pour naviguer sur le Web. Le code principal est essentiellement tout le reste. Si nous revenons un peu en arrière au moment où le Web a commencé, sites Web n'étaient que des pages d'informations. Ce style de site Web, juste une page statique composée principalement de texte avec peut-être quelques images, était la norme. Pas de style sophistiqué et interactivité minimale. En gros, les seules interactions que nous avons eues étaient des hyperliens, c'est-à-dire des parties des textes surlignées en bleu avec un trait plein qui, une fois cliqué, nous redirigeaient vers une autre URL. Comment cela pourrait-il se produire ? De la même manière, cela se fait aujourd'hui avec ce que l'on appelle le langage de balisage hypertexte, mieux connu sous le nom d'acronyme HTML, qui est fourni au navigateur pour structurer le contenu basé sur du texte et des images. C'est ici que nous pouvons commencer à voir la distinction entre le front-end et le back-end. Lorsque nous atteignons l'adresse de ce site Web, nous indiquons à un serveur quel contenu nous proposer, et ce contenu revient du serveur sous forme de code HTML. Ce code HTML est ensuite lu par le navigateur et affiché sur nos écrans comme nous le voyons ici. À l'aide de n'importe quel navigateur moderne, nous pouvons ouvrir un autre panneau pour afficher le code brut, généralement une grande partie du contenu textuel contenu dans ces éléments appelés balises HTML. De nos jours, le front-end est souvent beaucoup plus complexe. Les sites Web sont beaucoup plus fluides et offrent beaucoup d'interactivité. Dans certains cas, vous exécutez un programme informatique complet dans votre navigateur, et c'est ce que l' on appelle des applications Web. sont des exemples courants Facebook et Google Sheets en sont des exemples courants. Si nous désactivons JavaScript dans notre navigateur, vous pouvez constater que ces applications cessent de fonctionner. Ce qui donne du style et de l'interactivité à votre site Web sont respectivement le CSS et le JavaScript. Le CSS est l'abréviation de feuilles de style en cascade et est superposé au code HTML pour transformer complètement l'apparence du code HTML standard. JavaScript fournit ensuite toute l'interactivité en plus de quelques éléments de base du HTML. En gros, toute interactivité en dehors des hyperliens et des champs de formulaire tels que les cases à cocher, les boutons radio et les listes déroulantes nécessite JavaScript pour fonctionner. Tout comme le HTML, CSS et le JavaScript sont exécutés dans le navigateur et font donc partie du frontend. Pour rappel, le front-end est essentiellement tout ce qui se passe dans votre navigateur. Comparons maintenant cela avec le backend, qui peut être infiniment plus complexe. Le backend d'un site Web est ce qui est exécuté sur le serveur et couvre toute programmation effectuée en arrière-plan afin de fournir le code HTML, CSS et JavaScript appropriés au navigateur. Le backend est généralement chargé d'interagir avec les bases de données, déterminer si l'utilisateur est autorisé à accéder à certaines informations, puis de transmettre ces données au navigateur parmi le code frontal HTML, CSS et JavaScript nécessaire . Pour le démontrer, interagissons avec l'une des pages les plus visitées sur Internet, google.com. Comme vous pouvez le voir ici, google.com est chargé dans mon navigateur Web, Google Chrome. Je préfère Google Chrome et c'est ce que je vais utiliser pour ce cours. Je le recommande aux développeurs, c'est un très bon navigateur Web en raison des outils de développement dont il dispose. Mais, bien sûr, si vous n'aimez pas Google, vous n' aimerez pas Google Chrome, ce que je comprends parfaitement. Quel que soit le navigateur Web que vous souhaitez utiliser pour ce cours, c'est bien, cependant, j'utiliserai Google Chrome tout au long de ce cours. La raison pour laquelle je l'ai chargé en mode navigation privée, vous pouvez le voir ici, c'est pour ne pas être connecté automatiquement. Je veux juste vous montrer l'état déconnecté , puis lorsque nous commencerons à parler de backend, je vous montrerai la version connectée. Ici, vous pouvez voir qu'il reconnaît grâce au stockage de session ou aux cookies stockés dans notre navigateur, que je ne suis pas connecté actuellement Je peux donc cliquer ici pour « me connecter ». Je vais simplement cliquer sur « Non merci » ici. Commençons à interagir avec notre code frontal ici. Maintenant, si vous vous souvenez de ce que je viens de dire, le serveur fournit du HTML, du CSS , du JavaScript au navigateur, et le navigateur assemble le tout. Ce code HTML, JavaScript et CSS sont tous du code frontal. Comme il est intégré dans le navigateur, nous pouvons réellement voir tout le code brut. Ce que je vais faire, c'est appuyer sur Option Command I sur un Mac afin de faire apparaître les outils de développement. C'est ce qu'on appelle les DevTools, et si je clique dessus, je peux voir tous les différents panneaux ces outils de développement. Voici la console JavaScript, que nous examinerons plus tard. Ici, je veux cliquer sur « Éléments » et je vais fermer cette partie ici. En haut, vous pouvez voir tout le code HTML et en bas , vous pouvez voir tout le CSS qui donne un style à cette page. Maintenant que tout cela se passe dans notre navigateur, nous pouvons le modifier à la volée. Ce que je peux faire, c'est cliquer ici, puis passer souris sur différents éléments la page pour les voir dans le code. Maintenant, si je clique sur l'un d'entre eux, cliquons sur ce bouton, vous pouvez voir que ce code est en fait ce qui détermine ce bouton ici même. Comme vous pouvez le voir sur la balise HTML, il y a beaucoup de choses qui se passent ici. Évidemment, ce n'est pas un exemple basique, il s'agit de google.com. Mais ce que je veux que vous remarquiez ici, c'est que dans ce champ de valeur, nous avons Google Search, qui se rapporte au texte qui apparaît tout au long du bouton. Ce que je peux faire ici, c'est que je peux le modifier. Ainsi, au lieu de Google Search, je peux simplement le changer en Recherche, et vous pouvez voir les modifications du bouton. Ici, dans le CSS, je peux effectivement supprimer certains attributs. Si vous voyez ici, ce style s'applique à ces deux boutons Si je passe la souris dessus, vous pouvez voir qu'il s'applique à ces deux boutons. Je peux me débarrasser du rayon de bordure. Je pourrais faire quelque chose comme changer la couleur du texte en chocolat comme ça et comme vous pouvez le constater, l'état de survol est un peu différent. Mais s'il n' est pas survolé, au moins, la couleur du texte sera chocolat. cette image, il y a deux manières de procéder je peux cliquer dessus puis cliquer sur l'élément, ou je peux cliquer dessus avec le bouton droit de la souris et cliquer sur « Inspecter », ce qui est ma méthode préférée Vous me verrez probablement le faire plus souvent en classe. Vous verrez que cette balise img ici, qui est une balise d'image en HTML, est ce qui rend cette image ici. Comme vous pouvez le voir ici, il y a un src et si je devais cliquer avec le bouton droit ici et « Ouvrir dans un nouvel onglet », vous pouvez voir que nous avons le fichier image réel de Google ici. Il s'agit évidemment de google.com. Ils ont plein d' autres trucs dingues ici. Ils ont tous ces codes étranges ici qui se trouvent dans l' attribut class ici. Mais ce que j' essaie de vous faire ici, c'est que tout le code frontal, tout le code HTML, le CSS et le JavaScript. Il est plus difficile d'interagir avec le JavaScript. Mais si je rentre dans la tête, je peux effectuer une recherche ici et ensuite je peux utiliser put.js, qui représente un fichier JavaScript et puis peut-être qu'il y a beaucoup de code ici. Peut-être que je peux trouver un fichier JavaScript externe, n'apparaît pas vraiment. Mais ici, vous pouvez voir qu'à l'intérieur de ces balises de script, que nous utilisons pour insérer du code JavaScript, il y a du code JavaScript, nous pouvons copier ou simplement regarder pour voir ce qui se passe sur la page. Mais l' exemple de JavaScript est beaucoup plus difficile avec le HTML et le CSS. Il est beaucoup plus facile de déterminer ce qui se passe , car vous avez ce panneau, qui affiche tous les styles qui s'appliquent à cette balise d'image et vous pouvez accéder à la balise d'image elle-même. Si je clique ici pour le calculer, vous pouvez commencer à voir certains des styles calculés et si nous cliquons ici, nous pouvons voir où cela se trouve, de sorte que la police d'Ariel est en fait définie sur l'ensemble du corps du document, qui est essentiellement le document entier. Si je clique dessus, vous pouvez voir toutes les polices changer par défaut, je crois que c'est Times New Roman ou quelque chose comme ça. Ou nous pouvons changer la couleur du corps par défaut en quelque chose d'autre. Mais cela ne remplacera pas les endroits où nous nous sommes concentrés sur des éléments spécifiques. Cela ne remplacera pas ces couleurs ou ces couleurs. Mais il s'agit de la spécificité du CSS à un concept plus avancé. que je veux dire, c'est que lorsque nous sommes allés sur google.com, nous avons reçu le code frontal de notre navigateur et notre navigateur rassemble ici même. Toute l'interactivité qui se produit maintenant après le chargement de la page se fait sur le front-end. C'est le code HTML qui donne la structure de la page et qui place les éléments sur la page. C'est le CSS qui détermine l'apparence, la mise en page et c'est le JavaScript qui nous fournira toutes les fonctionnalités. Voyons si nous le pouvons. Si je clique dessus, un panneau s'ouvre ici. Il est possible que ce soit uniquement du CSS, mais il est fort probable que cela provienne de JavaScript. Si je clique ici, sur « Rechercher par image  », vous pouvez voir qu'un panneau s'ouvre ici, puis je peux cliquer ici, « Charger un fichier », depuis mon système de fichiers. L'interactivité se produit sur le front-end sans que se produit sur le front-end nous rechargions la page. Maintenant, une chose que vous remarquerez, c'est que lorsque j'actualise la page, ces modifications ont disparu. Ce qui est intéressant, mais c'est évidemment logique. Je peux revenir ici et le modifier pour simplement effectuer une nouvelle recherche. Mais bien sûr, Google ne nous autorisera pas à modifier son site Web pour tout le monde. Chaque fois que vous recevez du code d'un serveur vers votre navigateur, vous pouvez le modifier. Mais bien sûr, cela ne sera pas enregistré le serveur Google actuel et modifié pour tout le monde. Cela ne se produit que dans votre version que vous avez extraite du serveur au moment où vous avez visité l'adresse. Si je rafraîchis à nouveau ici, il sera à nouveau extrait du serveur et maintenant vous pouvez voir qu'il passe soudainement en mode sombre et qu'il est également déterminé que je suis en train de l'enregistrer en Australie. C'est un peu plus de magie de la part de Google. Mais maintenant, je vais ouvrir Google dans une nouvelle fenêtre, une fenêtre non incognito. Ici, vous pouvez voir que nous avons une expérience similaire, mais la différence est que vous pouvez voir que je suis actuellement connecté. Vous pouvez voir mon nom, mon e-mail, qui sont masqués pour des raisons de confidentialité. C'est mon e-mail standard. Vous pouvez me contacter sur mon adresse e-mail professionnelle, bien sûr, mais pas sur mon adresse personnelle, veuillez respecter cela. Mais ici, vous pouvez voir mon nom et ma photo et d' où viennent-ils ? De toute évidence, cela provient d'une base de données et ces données me concernent spécifiquement. Parce que je suis connecté, en d'autres termes, je suis autorisé à accéder à ces données, j'ai maintenant ma photo de profil, nom et mon e-mail sur cette page. Cela vient du backend et de toutes ces opérations et éléments que je peux consulter et modifier dans le navigateur. Des éléments tels que l'autorisation, la saisie de données, détermination des données à diffuser, tout cela relève du backend. Parce que si cela était fait dès le départ, ce serait un véritable cauchemar en matière de confidentialité. Vous ne voulez pas que je puisse accéder à votre compte Google ou au compte Google de quelqu'un d'autre. Le compte Google de chacun doit être distinct. Comme vous pouvez le constater, cela provient du backend et c'est dans le backend que se produit le véritable changement permanent pour une application comme celle-ci. Le fait est que nous avons notre code frontal. Nous pouvons entrer ici. Nous pouvons le modifier autant que nous le souhaitons. Je pourrais même remplacer ma photo de profil ici par une autre image. Comme vous pouvez le voir ici, je peux en fait accéder directement à l'image qui s'ouvre dans un nouvel onglet. Je peux en fait accéder directement à l'image. Je pourrais simplement remplacer cette URL ici dans le code HTML par une autre image, et cela mettrait à jour l'image. Je peux changer de nom. Voyons voir. Si je vais ici. Cela va me montrer tous mes comptes. Si je le fais glisser dessus pour que vous puissiez voir qu'il est bien imbriqué. Je pourrais même changer mon nom en Michael Jackson, par exemple. Alors si je clique ici, je suis maintenant Michael Jackson. Je peux modifier tout ce code frontal, mais bien sûr, cela ne modifiera pas le backend. Le backend est ce qui nous fournit le HTML, le CSS et le JavaScript. Chaque fois que nous adressons une requête au serveur, actualisons ici, et que je clique dessus , je redeviens Christopher Dodd, car il récupère les données de l'utilisateur connecté depuis le backend de Google , puis les intègre au code HTML, au CSS, au JavaScript, pour créer l'expérience frontale, qui est ensuite intégrée dans votre navigateur. J'espère qu'à travers cet exemple, vous pourrez voir cela fonctionner dans le monde réel, la distinction entre front-end et backend. J'aime utiliser cet exemple parce que je pense qu'il montre vraiment la distinction entre les deux. Comme nous pouvons le voir ici, il n'y a aucun code de base ici. Je ne peux pas accéder directement à la base de données. Bien entendu, ce serait un énorme cauchemar en matière de sécurité. Le backend contient tout cela, tous les détails de mon compte, des opérations plus complexes. La seule chose qui ressort du front-end est la structure de la page, le style de la page et toute interactivité qui doit se produire sans recharger la page. Vous pouvez voir ici que je peux ouvrir ce panneau et que certains des styles ici sont modifiés JavaScript le fait pour nous, car nous ne rechargeons pas réellement la page. Nous bénéficions d'une certaine interactivité frontale. Je peux l'ouvrir et accéder à mes applications. Je vais en rester là, les gars. Dans la vidéo suivante, nous allons en fait écrire code HTML, puis nous allons utiliser du CSS, du JavaScript, puis certains des outils de prétraitement qui trouvent au-dessus de ces langages. Je te verrai dans la prochaine vidéo. 3. HTML: Comme nous l'avons appris dans la dernière vidéo, HTML est le langage de balisage standard pour le Web. Langage de balisage selon l'encyclopédie Britannica, qui signifie système de codage de texte standard, composé d'un ensemble de symboles insérés dans un document texte pour contrôler sa structure, mise en forme ou la relation entre ses parties. Les symboles de balisage peuvent être interprétés par un périphérique, un ordinateur, une imprimante, un navigateur, etc., afin de contrôler l'apparence d'un document lorsqu'il est imprimé ou affiché sur un moniteur. Un document annoté contient donc deux types de texte. Texte à afficher et langage de balisage utilisé pour l'afficher. Je pense que c'est une assez bonne description. En HTML, comme dans les autres langages de balisage, nous avons des balises, puis le contenu de la balise entre elles. Cette balise, qui se trouve ici avec le signe moins que et le signe plus que, représente une balise HTML standard. Dans la plupart des cas, cependant, des textes suivront. Ensuite, cette balise HTML standard avec une barre oblique après le signe moins que indique qu'il s'agit de la fin du contenu de cet élément HTML particulier. Nous pouvons également imbriquer des éléments dans d'autres éléments et vous le verrez tout le temps dans le code HTML. Il s'agit d'un système dans lequel les éléments sont conçus pour être placés dans d'autres éléments afin créer une structure arborescente nommée à juste titre l'arbre du document. Nous pouvons visualiser n'importe quelle structure HTML sous forme d'arbre en utilisant un outil tel que ce Live DOM Viewer. Mais au lieu d' approfondir une théorie, écrivons du code HTML et voyons comment il fonctionne en action. L'éditeur de code que je vais utiliser pour cours d' aujourd'hui s'appelle Visual Studio Code. Il est très populaire car il possède pratiquement toutes les fonctionnalités d' un éditeur de code payant entièrement gratuit de Microsoft. Beaucoup de personnes l'utilisent, y compris moi-même. Je ne vois aucune raison d'utiliser un autre éditeur de code. Mais bien sûr, si, pour une raison quelconque, vous souhaitez créer cette classe dans un autre éditeur de code, vous pouvez le faire. Certaines instructions seront légèrement différentes, mais la plupart du temps, vous pouvez utiliser n'importe quel éditeur de code que vous souhaitez suivre. Si Visual Studio Code n' encore installé, recherchez-le simplement sur Google. Comme vous pouvez le constater, Visual Studio Code est développé par Microsoft, date de sortie initiale 2015. Il existe depuis un certain temps, mais c'est au cours des 3 à 5 dernières années qu'il est devenu très populaire. Ici, vous pouvez voir qu'il a été détecté que j'utilise un Mac Je peux donc simplement cliquer ici pour télécharger la version appropriée à mon système d'exploitation. Ce que je vais faire, c'est revenir à Visual Studio Code. En fait, je vais passer à la fenêtre de mon Finder ici et je vais créer un nouveau projet pour le cours d'aujourd'hui. Je vais simplement l'appeler Modern Web Development. Ensuite, à partir de là, je peux, comme indiqué ici, ouvrir un fichier ou un dossier à l'aide de ce raccourci. Je vais donc simplement utiliser le raccourci, puis naviguer dans ce dossier de code et ouvrir ce dossier. Nous avons maintenant notre projet vide. Je mettrai à jour le code de Visual Studio plus tard. Et ici, je peux soit cliquer dessus soit cliquer avec le bouton droit sur « Nouveau fichier » et je vais créer un fichier index.html. Il y a une raison pour laquelle je l'ai appelé index.html. L'index signifie généralement qu'il s'agit la page d'accueil ou du fichier racine d'une adresse, puis le extension.html sert à indiquer de quel fichier il s'agit. Cela est important parce que lorsque nous exécutons un serveur, il recherche le fichier d'index lorsque nous sommes sur la route racine ou l'URL racine. Permettez-moi de le démontrer très rapidement. Permettez-moi de saisir du code HTML juste pour commencer , puis nous y reviendrons. Nous allons juste faire Hello World entre quelques balises h1. Je vais appuyer sur « Enregistrer » là-dessus. La méthode recommandée pour le charger dans votre navigateur pour commencer est si nous allons simplement sur Google Chrome et que j'ouvre le Finder, nous pouvons littéralement simplement faire glisser ce fichier HTML dans Google Chrome et il le chargera. Et voilà, nous avons notre rubrique « Bonjour tout le monde ». Dans ce cas, peu importe le nom que nous donnons à notre fichier. Je pourrais le renommer en page.html. Si je clique dessus, une erreur se produira car le chemin a changé, mais si je le change ici en page.html, tout ira bien. Mais si nous devions faire quelque chose comme gérer un serveur, nous avons ce bouton sur lequel cliquer pour exécuter un serveur en direct. Il s'agit d'une extension. Si nous passons aux extensions, vous pouvez voir les extensions que j'ai installées. Il s'appelle Live Server de Ritwick Dey. Si vous souhaitez l'installer, nous l' utiliserons probablement plus tard dans le cours. Si nous l'avons fait et que nous avons cliqué sur « Go Live », nous obtenons toujours page.html. Mais si nous allons à la racine, cette adresse, vous verrez qu'elle ne se charge pas. Si nous voulons que la page se charge à la racine de notre adresse, nous devons nous assurer qu'elle s'appelle index. Si je clique sur « Enregistrer » dessus, rafraîchissez ici, vous pouvez voir qu' il n' y a aucune spécification quant au nom de la page car, avec index.html, elle se chargera à la racine de l'adresse. Comme nous gérons un serveur ici, nous avons une adresse IP et un port. Je ne veux pas trop m' attarder sur ce sujet ici. Je ne veux pas t'enliser dans la théorie. Passons en fait à du HTML. Je vais simplement me débarrasser de ce serveur. Revenons à ce que nous avions auparavant, l'exécuter à partir du système de fichiers. Comme vous pouvez le voir ici, il est indiqué que vous consultez un fichier local ou partagé et nous avons ici notre document HTML. Ce que je vais faire, c'est fermer tout ça. Essayons de mettre les deux sur le même écran, comme ça. Alors débarrassons-nous de cela, enregistrons, actualisons ici et vous verrez que nous n'avons plus rien maintenant. Commençons par du HTML. Je vais fermer l'explorateur ici, augmenter la taille ici, que ce soit plus facile à voir. Nous pouvons en fait obtenir du contenu HTML standard en tapant simplement du code HTML dans Visual Studio Code, puis je peux obtenir ce code standard, appelé code standard. Si je dézoome, tu peux voir. Ne faisons pas cela pour commencer, car nous sommes en train d'apprendre le HTML en ce moment. Ce dont nous aurons besoin, c'est de deux choses. Nous allons avoir besoin d'une étiquette sur la tête et d'une étiquette corporelle. ces deux étiquettes, nous aurons besoin d' une étiquette de fermeture, car nous allons y imbriquer des objets. Ouvrons un bandeau. Vous pouvez voir que Visual Studio Code nous aide grâce saisie semi-automatique pratique et nous donne la référence depuis MDM. Nous y voilà. Si j'appuie dessus, cela crée automatiquement la balise de fermeture pour moi, qui, comme nous l'avons vu plus tôt, est exactement la même, mais cette barre oblique précède le mot. Je vais entrer dedans et appuyer sur « Entrée » et cela s'ouvrira bien formaté avec une mise en retrait ici. C'est juste du formatage, afin que le code soit plus facile à lire. Ensuite, je vais créer le corps et j'obtiens la même chose. Si je clique sur « Enter », cela nous fournira une belle indentation ici. Si nous voulons que quelque chose apparaisse sur la page, nous devons le mettre dans nos étiquettes corporelles. Si je remettais ce que nous avions avant. Faisons-le sans le h1. Je vais juste dire bonjour à tout le monde, juste du contenu textuel de base, rafraîchissez ici, vous verrez qu'il apparaît. L'en-tête est responsable de tout ce qui est plus méta par rapport au document. Nous parlons du titre du document, références à des fichiers CSS que nous pourrions importer, d'informations de référencement, etc. Des éléments qui n' apparaissent pas sur la page, mais qui sont tout de même importants pour le fichier HTML. L' exemple le plus courant ici est le titre. Je peux créer cette balise de titre et , entre la balise de titre d'ouverture et de fermeture, insérons un titre. Vous pouvez l'appeler comme vous voulez, ma première page Web. Si je clique sur « Enregistrer » dessus, je veux que vous remarquiez que dans l'onglet, il y a juste le nom du fichier. Eh bien, maintenant, si nous actualisons, vous verrez que cela va apparaître comme ma première page Web. C'est donc pour l'utilisateur, mais aussi pour les moteurs de recherche Google. Tout ce qui insère ou intègre la page sur un autre site Web. si vous partagiez Par exemple, si vous partagiez cette page sur Facebook, vous communiquez maintenant au document et au Web le nom de la page. Pour l'instant, c'est tout ce que je vais faire pour le headtag. Passons au corps. Comme vous l'avez déjà vu, j'ai créé un H1. Un H1 est un titre de section, alors exécutons-le, puis je cliquerai sur « Actualiser » ici, et comme vous pouvez le voir, nous obtenons un style prêt à l'emploi. Ce qu'est un H1, c'est un titre de haut niveau, donc il va jusqu'à H6, je crois. Oui, ici vous pouvez voir jusqu'à H6. Si nous ne l' avons pas défini dans notre CSS, nous obtiendrons un style par défaut le H1 étant le plus gros, , le H1 étant le plus gros, et si nous devions avoir un H6 et un set, appelons-le simplement un titre de sixième niveau. Rafraîchissez-vous ici. Vous pouvez voir que c'est probablement encore plus petit que si nous saisissions du texte normal. Oui, c'est encore plus petit que les textes ordinaires, ce qui est un peu bizarre, mais vous comprenez le point. Il y a tout le chemin depuis H2, titre de deuxième niveau, comme vous pouvez le voir, et prêt à l'emploi, il est doté d'un style de base. Mais il est important de noter ici que vous souhaitez utiliser les bons titres, même en dehors du style, car ce n'est qu' un signe de bonne mise en forme pour Google. Google va en fait scanner une page Web et déterminer si elle est correctement structurée Vous devez donc toujours utiliser correctement ces balises de titre. Si vous rédigez un document, vous avez votre titre supérieur et si vous vouliez créer un titre en dessous, ce serait le titre 2, et si vous vouliez créer un titre en dessous, ce serait le titre 3. Utilisez toujours le bon titre, même si vous travaillez avec des styles différents. H1-H6 est une étiquette très courante. Je vais me débarrasser de ce H6 ici même. Au lieu du texte normal, je vais vous montrer une autre balise populaire appelée balise de paragraphe. Dans Visual Studio Code, je peux simplement taper Lorem, appuyer sur « Tab » et Lorem ipsum sera inséré. Si je clique sur « Enregistrer » dessus, rafraîchissez la page ici, vous verrez que nous obtenons ce paragraphe. Maintenant, ce qu'il est important de comprendre en HTML, c'est qu'à moins de le modifier, nous obtenons un style prêt à l'emploi avec le HTML. Permettez-moi de l'ouvrir et je pourrai ensuite vous le montrer dans les DevTools. Si je clique sur « Option Command I » sur un Mac. Nous pouvons maintenant voir le code de sortie ici. C'est exactement la même chose que ce que nous avons ici, mais maintenant nous pouvons le voir apparaître dans le navigateur et nous pouvons réellement interagir avec lui. Nous pouvons réellement entrer et modifier des mots comme nous l'avons fait dans l'exemple de Google et nous pouvons fermer et développer des balises comme celle-ci. Mais nous pouvons également voir les styles calculés. Si nous passons la souris sur cette balise P ici, vous pouvez voir l'orange apparaître au-dessus et en dessous du paragraphe. Je ne peux pas passer mon curseur dessus en même temps que je l'affiche. Mais vous pouvez voir sur la gauche que vous avez P, cela vous indique ses dimensions, puis il vous montre un espace orange au-dessus et en dessous qui est en fait rembourrage. Nous pouvons le vérifier en accédant Computed ici et en regardant ce que l'on appelle le modèle en boîte. Vous pouvez voir que nous y sommes. En fait, ce n'est pas du rembourrage, c'est corrigé, c'est de la marge. Les marges sont un peu différentes. Nous n'aborderons pas le modèle de boîte dans cette classe en particulier, mais je l'aborderai dans ma classe HTML et CSS ici sur Skillshare, afin que vous puissiez consulter celle-ci. Mais comme vous pouvez le voir ici, nous avons une certaine marge par défaut. Si nous passons à la deuxième rubrique, nous pouvons voir que nous avons également une certaine marge par défaut. Mais nous avons également d'autres paramètres par défaut, comme le fait que la taille de police soit 50 % plus grande et que le style d'affichage soit en mode bloc. Nous aborderons les styles plus tard. Mais je veux juste indiquer ici que lorsque nous écrivons du HTML sans CSS, nous obtenons du CSS gratuitement. Nous recevons du CSS par défaut. Ici, dans notre H1, vous pouvez voir que nous avons une taille de police de 2 em, soit une unité. De toute évidence, c'est une moitié de plus sur le H2. Mais tout cela est entièrement modifiable avec le CSS, ce ne sont que des valeurs par défaut dans le HTML. Ici, vous pouvez accéder aux styles et voir la feuille de style de l' agent utilisateur, qui ressemble à la feuille de style standard. Cela peut changer en fonction du navigateur que vous consultez. Mais vous pouvez également accéder à Computed ici, et ce bouton vous indiquera d'où cela vient. Je pense que le poids de la police est également audacieux et que c'est une différence. Mais juste pour aller un peu plus loin, nous pouvons le modifier pour réduire le poids de la police. Ce sera toujours un H1, mais il n'a tout simplement pas ce style par défaut H1. Il est donc important de le savoir. Passons en revue certaines des autres balises courantes que vous allez voir en HTML. Comme je l'ai mentionné dans les vidéos précédentes, l' une des plus courantes est la balise A, qui est le lien hypertexte. C'est juste un A. Nous avons notre dernière étiquette ici. Nous voulons mettre cela l'autre côté du texte, nous voulons un hyperlien. Si je clique sur « Enregistrer », actualisez ici, nous devrions généralement obtenir un style par défaut. Mais je pense que c'est parce que nous n'avons pas encore de href que nous devons réellement l'intégrer, que nous devons réellement l'intégrer, et ce sera notre premier attribut. Nous pouvons ajouter des attributs à la balise d'ouverture, et non à la balise de fermeture, la balise d'ouverture et, comme vous pouvez le voir ici, href contient l'URL ou le fragment vers lequel pointe le lien hypertexte. C'est ce que nous recherchons. Si je l'ouvre, peu importe ce que j'y mets. Mettons simplement un hash qui est l'espace réservé habituel, puis je clique sur « Enregistrer », actualisez ici, vous verrez maintenant que j'obtiens le style par défaut pour un lien hypertexte. Nous changeons notre curseur. Les textes apparaissent en bleu et soulignés. C'est très old school. Ce style est généralement remplacé par de nombreux sites Web, mais c'est le style classique d'un lien hypertexte. Je viens d'ouvrir à nouveau les DevTools ici et je vais juste les mettre ici. Je pense que nous pouvons examiner les trois en même temps. Comme vous pouvez le voir ici, comme je l'ai mentionné, la couleur est le lien Webkit, qui est une variable, et notre curseur sera un pointeur et nous allons le souligner. Vous pouvez le voir ici, ou si nous passons à Computed, généralement de la couleur réelle calculée il s'agit généralement de la couleur réelle calculée et du style du pointeur du curseur. Encore une fois, nous pouvons entrer ici, ce que nous ferons plus tard, et changer cela pour autre chose. Cursor, on peut faire un réticule par exemple. Lorsque vous avez un lien, vous pouvez passer à ce curseur en forme de croix ici. Nous pouvons régler cela comme nous le voulons avec le CSS. Le fait est que nous avons un style par défaut prêt à l'emploi. Maintenant, avant de créer ce fichier appelé page.html, revenons en arrière et mettons celui-ci dans page.html et soyons vraiment paresseux. Réintroduisons simplement Hello World sans aucune balise HTML. Mais je veux juste vous montrer ici que nous pouvons créer un lien vers cette page ici et ensuite, si je rafraîchis ici, je clique dessus, vous verrez que c'est un peu serré. Mais vous pouvez voir ici que cela nous dirigera vers page.html. Si je l'étends complètement, revenons ici et peut-être que nous mettrons un lien et le renverrons à index.html. Rentre chez toi. Maintenant, si je rafraîchis ici et que je clique sur « Go Home », cela nous ramènera à index.html. Nous pouvons maintenant établir un lien entre deux fichiers. Je vais supprimer page.html, c'était juste pour indiquer un lien hypertexte. Nous allons simplement le supprimer. Déplace ça dans la corbeille. Ce sont toutes des choses très basiques, les gars, si vous êtes trop avancé pour cela, n'hésitez pas à passer à l'étape suivante. Mais nous allons maintenant aborder d'autres balises HTML. Comme je l' ai mentionné avant cette vidéo, nous pouvons également ajouter une image et nous avons vu que dans l'exemple de Google, il s'agissait simplement d'une balise IMG et celle-ci d'une balise à fermeture automatique. Nous n'avons pas besoin d'une balise de fermeture pour cela, car tout ce que nous avons à faire au minimum est de lui donner l'adresse de l'image que nous voulons montrer, et nous le faisons via l'attribut SRC, puis entre ces guillemets doubles, nous insérons le lien vers une image. Il s'agit simplement d'une image de substitution, puis je vais simplement fermer en utilisant le signe inférieur. Il s'agit du signe supérieur Il vous suffit donc de le mettre à la fin et vous obtenez une balise HTML bien formée. Allons-y, rafraîchissez ici et vous pouvez voir qu'il faut un peu de temps pour que l'image soit chargée à partir de cette source externe. Elle est maintenant mise en cache, donc elle ne se chargera pas à nouveau. Mais maintenant, vous pouvez voir que nous avons notre image d'espace réservé ici. Si nous inspectons cela, vous verrez que nous avons, non, aucune marge. Fermons celui-ci ici. Permettez-moi de structurer ce document un peu différemment. Nous avons, ajoutons simplement un paragraphe de Lorem Ipsum. Nous allons le mettre là. Permettez-moi de développer cela. Nous allons placer l'image ici sous le titre du deuxième niveau. Je vais juste appeler ce texte avec image. Cliquez sur « Enregistrer » dessus, actualisez ici. Vous pouvez voir maintenant que nous avons cette section ici. Je vais ajouter une balise supplémentaire à hr, qui est une règle horizontale que je pense qu'elle représente, et elle créera simplement une ligne entre les éléments de contenu. Enregistrez, actualisez ici, vous verrez que cela crée cette ligne. Ensuite, je vais un autre paragraphe de texte ici, ajouter un autre paragraphe de texte ici, puis j'ajouterai quelque chose juste pour illustrer un guillemet. Il s'agit principalement d'une balise sémantique, mais mise entre guillemets. Ce que je veux dire par sémantique c' est qu'il n'y a pas beaucoup de style, donc c'est principalement une question de dénomination. Je peux citer ici une citation : « Un homme sans voiture ne va pas très loin ». L'une de mes citations préférées. Comme vous pouvez le voir ici, il a exactement la même apparence, mais juste avec un peu d'indentation. Si je devais ouvrir à nouveau mes outils de développement, faire défiler la page vers le bas, cliquer avec le bouton droit de la souris ici, vous verrez que nous avons juste vous verrez que nous avons juste un attribut appelé margin-block-start, qui lui donne cette marge à gauche de 40 pixels. Ensuite, vous avez ces 16 pixels en haut. En fait, vous avez également 40 pixels sur la droite, donc c'est ce qui lui donne cette fonctionnalité indentée ici ou cet aspect indenté, puis nous allons simplement mettre un autre paragraphe à la fin, actualiser ici et vous pouvez voir. Créons une nouvelle section ici. Créez un autre h2 ici. Appelons ce paragraphe et cette liste. Maintenant, je vais vous montrer une structure HTML courante ici. Nous pouvons ouvrir une liste ordonnée ou une liste non ordonnée. La liste non ordonnée est généralement plus courante Je vais donc aller en haut, qui signifie liste non ordonnée, l'ouvrir, puis nous créons une balise LI imbriquée pour tous les éléments de la liste. Premier élément, nous le verrons sur notre écran dans un deuxième, deuxième et un troisième élément. Si je clique sur « Enregistrer » ici, nous avons en fait oublié de le mettre dans un paragraphe ici. Encore une fois, encore un peu de Lorem ipsum. Cliquez sur « Enregistrer » dessus, actualisez la page ici, et comme vous pouvez le voir, nous avons notre liste ici. Si je devais inspecter à nouveau, ce que je ne ferai pas cette fois parce que je pense que vous avez compris, il y aura un certain style qui lui donnera ce point et cette indentation. Automatiquement, il y a également un certain style sur l'UL. Si nous voulions créer une liste ordonnée qui ne servirait qu'à la numéroter, nous pouvons remplacer le u par un o. Actualisez ici, nous pouvons remplacer le u par un o. Actualisez ici, et vous pouvez voir si nous ajoutions un quatrième élément, il s'affichera automatiquement sous la forme de quatre. Sauvegardez cela, je vais le déplacer ici maintenant, le rafraîchir ici, et le quatrième élément aura automatiquement un quatre devant. Enfin, je vais vous montrer quelques champs de formulaire, qui constituent la plus grande fonctionnalité prête à l' emploi que vous puissiez obtenir avec le HTML. Créons, je vais simplement appeler ce paragraphe par une forme, puis j'ajouterai un peu de Lorem ipsum ici. Mais après le paragraphe de Lorem ipsum, je vais ajouter un formulaire. Désormais, les formulaires fonctionnent : nous pouvons envoyer les informations que nous avons définies ici à une adresse spécifique, et nous le faisons via l'attribut action. Ici, si j'insère des entrées entre les deux et que je soumets ce formulaire, les données seront envoyées à une URL particulière. C'est ainsi que vous utilisez habituellement les formulaires. Mais pour l'instant, je vais juste vous montrer les entrées réelles elles-mêmes. Le premier que je vais vous montrer est un texte. Ce sont des étiquettes à fermeture automatique. Nous n'avons pas besoin de mettre un terme à tout cela. Je vais juste mettre le type de texte d'entrée et c'est suffisant pour le faire fonctionner, en gros. Si je rafraîchis la page, vous pouvez voir que nous avons cette boîte qui offre maintenant une certaine interactivité. Je peux y mettre ce que je veux , bonjour tout le monde. J'ai cette boîte de texte modifiable. Je peux également mettre une valeur ici, donc quand il se charge, il y a déjà du texte dedans. Et voilà. Mais bien sûr, c'est une entrée, donc je peux la modifier. Je pourrais aussi, en me débarrassant de cette valeur ici, la remplacer par un champ numérique, qui aura essentiellement le même aspect si je rafraîchis ici. Mais maintenant, vous pouvez voir ces flèches vers le haut et vers le bas. Je suis en train de taper des caractères ici, cela ne fonctionne pas. Je dois saisir un chiffre. Il n'acceptera qu'un chiffre, puis je pourrai monter et descendre. C'est un champ numérique. La première chose que nous pouvons faire est d'actualiser les cases ici, et vous pouvez voir que je peux cliquer dessus pour l'activer et le désactiver. De toute évidence, cela n'a pas vraiment de sens. Habituellement, nous utilisons une étiquette. Je peux créer une étiquette, mettre la case à cocher dans l'étiquette, puis écrire du texte ici. Disons que c'est comme un formulaire dans lequel vous acceptez quelque chose. Je vais juste dire que je suis d'accord. Ensuite, si je clique sur l'étiquette , la case sera également cochée. Passons à la création de boutons radio. Maintenant, les boutons radio sont un peu plus complexes car nous devons tous les nommer savoir qu' ils sont liés. Je vais l'appeler Radio 1 et, que devons-nous dire ici Option 1, je vais simplement l'appeler Option 1. Nous allons en avoir besoin de plusieurs. Je vais copier-coller. En fait, zoomons un peu en arrière, afin de tout voir ici. Option 2. Nous voulons que cela reste sous le nom de Radio 1, donc elles sont liées. Je vais cliquer sur « Enregistrer », actualiser ici. Maintenant, avec les radios, la différence entre cette case et les cases à cocher est que si j' sélectionne une puis que j'en sélectionne une autre, cela supprime la sélection de la première. Il le fait parce qu' ils font partie du même groupe. Si je devais les créer ou les dupliquer, et que nous les appelions Radio 2 dans le champ de nom, elles seraient liées entre elles. Si je fais partie de ce premier groupe et que je sélectionne ici, cela supprimera la sélection de l'autre radio du groupe. Si je passe ici, il s' agit d'un groupe distinct, donc il ne sera pas supprimé du premier, à moins, bien sûr, j'aie oublié de le modifier, et maintenant nous avons le même groupe. Mais alors nous devrions écrire cette option 4. très basiques, mais qui vous donnent juste un aperçu de certains composants courants du HTML. Nous avons également une zone de texte, qui est assez basique. Il s'agit en fait d'une balise comportant une balise de fermeture, et le contenu réservé que nous pouvons placer dans la zone de texte est celui que nous avons placé entre les deux balises. Mettons un peu de Lorem ipsum dans une zone de texte. Comme vous pouvez le voir ici, nous pouvons en fait agrandir cette boîte, ce qui est intéressant. Nous devrons généralement faire un peu plus de formatage à ce sujet, mais vous pouvez voir ici que nous avons essentiellement du Lorem ipsum dans un champ de texte multiligne. Il est également redimensionnable. Nous pouvons commencer par un certain contenu, commencer par le Lorem ipsum, puis le modifier. C'est la zone de texte. Enfin, celui que je vais vous montrer est select, c'est ainsi que nous créons une liste déroulante. Nous avons notre choix et, à l'intérieur, nous voulions des options de nidification. Encore une fois, je vais passer à l'option 1, coller un doublon, à option 2 et à l'option 3 ici. Celui actuellement sélectionné sera le premier par défaut. Si je rafraîchis ici, vous pouvez voir que nous avons une liste déroulante avec la première option sélectionnée automatiquement. Ça sort de l'écran. Permettez-moi d'en supprimer une partie. Allons-y. Enregistrez, rafraîchissez ici. Si je clique ici, vous pouvez voir que nous pouvons sélectionner différentes options dans cette liste déroulante. Si nous voulons sélectionner une option différente de la première, nous pouvons mettre un attribut optionnel ici, juste sélectionné, c'est tout. Actualisez et vous pouvez voir option 2 est désormais sélectionnée par défaut, mais nous pouvons la modifier ici. C'est ce que j'entends par interactivité sans JavaScript, c'est standard en HTML, et il s'agit d'une version très Web 1.0 du développement Web. Permettez-moi d'expliquer cette déclaration un peu plus en détail. Web 1.0 est essentiellement la première version du Web, qui ressemblait beaucoup à celle-ci. C'était juste une mise en page verticale avec juste des titres, des paragraphes, des formulaires et des listes, tout ce que nous avons fait dans cette vidéo. C'était très basique. Il n'y avait pas beaucoup de style. Au fil du temps, il y a maintenant le terme Web 2.0, qui parle du Web actuel en dehors de toutes les activités liées à la blockchain , qui porte désormais le label Web 3.0. Le Web 2.0, dans lequel nous nous trouvons actuellement, est davantage constitué de mises en page bidimensionnelles avec beaucoup plus d'interactivité fournie par JavaScript. Dans le Web 1.0, seuls sites Web affichaient des informations. Tout ce dont vous aviez besoin était ce contenu sémantique, comme un titre de premier niveau , un paragraphe, puis un formulaire pour accepter certaines données. Des articles très basiques qui présentaient également un style prêt à l' emploi, comme nous l'avons déjà vu lorsque nous les avons inspectés, tous les styles standard. Il s'agit en grande partie d'un développement Web à un stade précoce. Comme vous le savez, vous ne voyez pas vraiment de nombreux sites Web qui ressemblent à cela actuellement, mais c'est l'aspect standard du HTML sans aucun style. Dans la vidéo suivante, nous allons modifier le style de notre page Web et parler du CSS. Le CSS est évidemment un sujet très vaste, mais nous allons juste en faire un bref aperçu afin que vous puissiez comprendre comment nous pouvons réellement styliser ce que nous avons créé dans cette vidéo et tirer parti de ce que nous avons appris sur le HTML. Je te verrai dans la prochaine vidéo. 4. Avertissement rapide: Bonjour à tous. Je voulais juste ajouter une vidéo supplémentaire à titre petit avertissement, car nous venons de parler du HTML, qui est assez basique, et nous avons abordé une grande partie de ce que vous pouvez faire avec le HTML. n'y en a pas beaucoup, il y a juste une imbrication de balises dans d'autres balises, ce n'est pas trop compliqué. Mais au fur et à mesure que nous commencerons à nous intéresser au CSS, au JavaScript et aux autres concepts, cela va devenir beaucoup plus complexe très rapidement. Et bon nombre de ces sujets pourraient faire l'objet d'un cours à part entière. En fait, certains d'entre eux le sont, et je ferai référence à ces autres cours au fur et à mesure du reste du cours. Mais je voulais juste ajouter cette clause , car je donne des cours de Skillshare depuis assez longtemps pour connaître certaines des critiques que je pourrais recevoir dans les critiques. Je voulais juste m' assurer qu'il s'agit d'un cours pour tous les niveaux. Au début, nous abordons les bases, nous abordons le HTML, nous parlons de quelques CSS de base, mais vous remarquerez peut-être que la complexité augmente lorsque nous commençons à nous familiariser avec Sass, Tailwind, JavaScript, en particulier TypeScript, puis que nous passons aux frameworks JavaScript, notamment à l'extraction d' informations à partir d'API. Dans l' ordre dans lequel ils apparaissent, voici quelques détails supplémentaires qui abordent manière générale les sujets que nous allons aborder pour le reste de la classe. CSS, nous allons parler de mises en page parce que j'ai l' impression que les mises en page sont la chose la plus complexe en CSS. Si vous souhaitez que la couleur d'un texte particulier soit rouge, vous pouvez définir la couleur rouge. Ce n'est pas trop compliqué à comprendre, espérons-le, mais les mises en page sont un tout nouveau concept. Nous allons parler de Flexbox, nous allons parler de la grille CSS. Mais sachez simplement qu'il existe de nombreux styles différents dans le CSS. Si vous souhaitez approfondir ce sujet, il existe un cours sur Skillshare que j'ai créé et intitulé Web Development Fundamentals, HTML et CSS. Après la leçon de CSS, nous parlerons de Sass, puis nous aborderons également quelque chose appelé Tailwind CSS plus tard dans le cours. Comme je l'ai écrit ici, vous devrez peut-être acquérir une certaine expérience avec le CSS afin de comprendre les avantages de ces outils supplémentaires. Comme je le dirai tout au long de ce cours, le HTML, le CSS et le JavaScript sont les seuls langages frontaux exécutés dans le navigateur, et ce sont les seuls langages essentiels à apprendre. Mais bien sûr, nous avons tous ces autres outils comme Sass, comme Tailwind CSS, TypeScript, Vue. Ce sont ceux dont nous allons parler dans ce cours. Ils s'assoient juste au-dessus pour aider les développeurs. Pour en comprendre les avantages, vous aurez peut-être besoin d'une certaine expérience la chose sous-jacente qu' ils essaient de produire. En termes de style, ce serait du CSS, en termes de fonctionnalités, ce serait du JavaScript. Passons à JavaScript, nous n'allons qu'effleurer la surface de cette classe, puis nous allons nous plonger dans TypeScript et Vue. Cela se déplace très rapidement une fois que nous arrivons à la partie JavaScript. Si vous voulez faire une pause une fois la leçon sur JavaScript et approfondir le JavaScript, j'ai un cours complet sur JavaScript, intitulé Web Development Fundamentals JavaScript. Tu peux regarder celui-ci. Encore une fois, afin de comprendre les avantages de TypeScript, que j'ai également expliqués ici, vous aurez besoin d'une certaine expérience avec des projets frontaux plus complexes. Il est en fait difficile de trouver un exemple très basique pour utiliser TypeScript, car les avantages de TypeScript ne se manifestent lorsque vous commencez à travailler sur des projets frontaux plus complexes. Enfin, nous allons examiner Vue.js. Vue.js n'est qu'un exemple de framework frontal réactif. Vous devez être à l'aise avec navigation DOM et les Event Listeners avant de vous plonger plus profondément dans un framework frontal tel que Vue, React, Angular, etc. Si vous voulez en savoir plus sur ces concepts, en particulier, plongez dans les fondamentaux du développement Web JavaScript, mon cours ici sur Skillshare. Juste un rappel, les seuls éléments essentiels du front-end sont le HTML, le CSS et le JavaScript. Tous les autres outils ne sont là que pour aider au développement de ces trois outils. De plus, tout autre outil, abordé ou non dans cette classe, peut gagner et perdre en popularité. Le paysage change constamment et vous pouvez utiliser ces outils à votre guise. Les seuls éléments essentiels tels qu'ils sont écrits ici sont le HTML, le CSS et le JavaScript. Je voulais donc simplement ajouter cette vidéo d'avertissement, juste pour répondre à toutes les préoccupations possibles que je peux avoir concernant rapidité avec laquelle nous avançons pour le reste du cours. Si vous êtes bloqué sur une certaine scène et que vous souhaitez en savoir plus à ce sujet, vous pouvez suivre un autre cours sur ma chaîne Skillshare ici et découvrir plusieurs de ces sujets en profondeur. Sinon, vous pouvez consulter d' autres didacticiels ou simplement ignorer complètement cette leçon. S'il ne s'agit pas de la leçon HTML, CSS et JavaScript n'hésitez pas à l'ignorer complètement. Le but de ce cours est de vous donner un aperçu de certains des outils les plus populaires utilisés aujourd'hui, afin que vous puissiez ensuite choisir votre propre entreprise, comme le cours d'origine, sur la compréhension du développement Web. Je voulais donc juste que ce soit clair avant de passer à autre chose. Sans plus tarder, passons au reste de la classe. 5. CSS: Dans cette vidéo, nous allons présenter le CSS. CSS peut être un cours en soi, c'est pourquoi j'ai un cours Skillshare dédié au HTML et au CSS. Pour cette vidéo, nous allons simplement aborder les bases et leur application au HTML, en nous basant sur cet exemple que nous avons partagé dans la dernière vidéo. Maintenant, je vous ai montré deux manières de charger notre code HTML. Nous pouvons le faire via le système de fichiers tel que Search ou via un serveur. je vais passer à la diffusion Dans cette vidéo, je vais passer à la diffusion via un serveur. L'un des principaux avantages de cette méthode est de ne pas avoir à actualiser à chaque fois. Ainsi, si je crée une modification ici, je dois appuyer sur Enregistrer sur ce document, puis actualiser ce document. Pour voir le changement, nous pouvons facilement éliminer cette étape en exécutant notre serveur Live, qui, comme je vous l'ai montré dans la dernière vidéo, si j'ouvre mes extensions ici, Live Server de Ritwick Dey. Si vous souhaitez l'installer, il vous suffit de taper Live Server ici , de le rechercher, il s'affichera, de cliquer dessus, cliquer dessus, puis de cliquer sur Installer. Des extensions super faciles à installer sur Visual Studio Code. Je vais fermer cet onglet, puis je cliquerai ici pour passer en ligne. Ça va l'ouvrir. Ici, vous pouvez voir qu'il y a index.html à la fin. Nous n'en avons même pas besoin, nous pouvons le supprimer et il saura ce qu'est la page Web car l'index représente l'adresse racine d'un site Web. Allons-y et démontrons-le maintenant. Si nous entrons ici, et que je dois appeler cette deuxième option au lieu de l'option 2, et je clique sur Enregistrer. Vous pouvez voir que nous n'avons pas besoin de le rafraîchir ici, car il est doté d'un rechargement à chaud, vraiment cool et pratique pour le développement. Maintenant, introduisons un fichier CSS. Nous pouvons en fait créer quelque chose appelé une balise de style ici et y mettre du CSS et cela s'appliquera à la page sur laquelle il se trouve. Mais faisons-le de la manière la plus propre, qui consiste à placer notre CSS dans un fichier différent. Je vais ouvrir Explorer ici, créer un nouveau fichier et l'appeler styles.css. Vous pouvez l'appeler comme vous le souhaitez tant qu'il s'agit fichier got.css à la fin, car cela indiquera à Visual Studio Code et au navigateur Web qu'il s'agit d'un fichier CSS. Nous voulons maintenant lier ce fichier CSS à notre document HTML et nous pouvons le faire dans la balise head. Je vais créer un lien avec un attribut rel avec la valeur de feuille de style, qui indiquera à la page que nous introduisons une feuille de style, puis href, qui est le chemin d'accès à la feuille de style. Comme ils se trouvent tous les deux dans le même répertoire l'un à côté de l'autre, il suffit de taper styles.css, le nom du fichier, puis de cliquer sur Enregistrer dessus. Afin de vérifier si cela fonctionne, allons-y et écrivons notre premier style. Ce que nous pouvons faire ici, c'est effectuer une réinitialisation. Vous voyez maintenant que nous avons des marges et rembourrage qui proviennent automatiquement du code HTML. Ce que nous pouvons faire, c'est ajouter cet astérisque ici, c'est ce que l'on appelle Wildcard Selectors. Ensuite, on peut mettre du rembourrage, y mettre trop de D. En rembourrage, nous pouvons mettre à zéro et marge, nous pouvons régler à zéro par défaut sur tous les éléments. Comme vous pouvez le voir ici, nous pouvons certainement constater que notre lien avec la feuille de style a fonctionné ici, car cela s'applique désormais. Si je suis allé ici et que j'ai inspecté ma balise h1, vous pouvez voir que notre style par défaut a été remplacé par notre astérisque sélectionné ici. Il semble que ce soient toutes des marges et non des marges, mais si je devais cocher cette case ici, je pourrais l'activer et la désactiver. L'autre chose que nous pouvons faire ici est d'ajouter nos propres styles directement dans le navigateur via les Chrome DevTools. Je peux entrer ici et me laisser tout régler sur la couleur bleue. Cet exemple n'est pas très pratique , mais comme vous pouvez le voir ici, nous pouvons en fait changer la couleur et tester des choses dans notre navigateur. Maintenant, si je rafraîchis la page ici, cela ne sera pas sauvegardé dans notre document, mais nous pouvons expérimenter différents CSS la volée dans notre navigateur. Nous devons juste nous assurer que si c'est le cas, disons simplement que nous avons fait en sorte que tout soit en bleu, alors nous devrons nous assurer pouvoir simplement récupérer ce copier-coller. Nous devrons simplement nous assurer de le mettre dans notre feuille de style et de l'enregistrer, puis il sera transmis au navigateur. Cela ne fonctionne que dans un sens, pas l'inverse. Si nous créons des modifications ici, cela ne sera pas enregistré ici. Je voulais juste le noter. En fait, je vais supprimer cela et parler principaux concepts du CSS et du HTML. Ici, vous pouvez voir tout s' empiler sur lui-même. Vous avez le h1 et il n'y a plus de contenu après, c' est une sorte de disposition verticale. Mais bien sûr, nous avons quelques exceptions ici. Nous avons, si je devais intégrer une partie de cela dans une balise de lien, une balise et mettre un hachage ici comme espace réservé, vous pouvez voir que cela se trouve sur ce que l'on appelle en ligne. Si je regarde ici pour le calculer, vous pouvez voir que le style d'affichage est intégré, mais pour le reste, le style d'affichage est par défaut en blocs, seuls quelques éléments du HTML par défaut sont intégrés, mais il existe en fait plusieurs types d'affichage différents. Nous pouvons faire du réseau, nous pouvons faire du Flexbox. Ce sont les types d'affichage CSS les plus modernes, et ils sont aujourd'hui beaucoup utilisés dans le développement Web moderne. Parlons-en. Comme je l'ai mentionné, le Web 2.0 est plutôt une mise en page bidimensionnelle. Ce que je vais faire, c'est le supprimer. Commençons par un élément de base commun pour créer des mises en page en HTML , à savoir la balise div. Nous pouvons lire ici que l'élément div n' a aucune signification particulière. Elle représente simplement ses enfants. Il s'agit d'une balise très large qui possède par défaut un style d'affichage de type bloc. Je vais mettre Lorem Ipsum dans ma première division et encore une fois, Lorem Ipsum dans ma deuxième division ici. Je vais appuyer sur Enregistrer. Comme vous pouvez le voir ici, c'est un peu difficile à dire, mais ce sont des blocs d'affichage. Si nous regardons ici, affichez le bloc, mais il n'y a tout simplement pas de marge par défaut. Mais si je prolonge cela, vous pouvez voir que l'un se superpose à l'autre. Faisons quelque chose comme entrer ici et définir un style. Je peux en fait cibler tout cela en mettant simplement div ici, en ouvrant des crochets pour y mettre nos styles. Donnons à toutes nos divs une bordure d' un pixel solide afin de pouvoir voir leur séparation. Ici, vous pouvez voir que nous avons deux divs et, par défaut, ce sont des blocs d'affichage, ce qui signifie qu'ils s'empilent l'un sur l'autre. Maintenant, si je devais entrer ici et définir un type d'affichage différent. Faisons l'affichage en ligne. Maintenant, vous pouvez voir que si je prolonge cela, ils ne sont pas contenus dans deux blocs, alors que j'essaie maintenant de s'asseoir en ligne l'un par rapport à l'autre. Ensuite, le troisième type courant en ligne n'est pas si courant. Nous pouvons en fait passer au blocage en ligne. Comme vous pouvez le voir ici, ils s'empilent les uns sur les autres. Ajoutez ici une largeur maximale de 300. Économisez, ils s'empileront les uns sur les autres moins qu'il n'y ait suffisamment d'espace pour qu'ils puissent être placés côte à côte. Si je reviens ici, en ligne, vous pouvez voir ce que nous avons. Le bloc en ligne est comme un bloc, mais les blocs finissent par se placer côte à côte s' il y a suffisamment d'espace. Si je réduis cette fenêtre, vous pouvez voir qu'elles recommencent à s' empiler les unes sur les autres. Supprimons cela et essayons de créer une disposition à deux colonnes. Je veux avoir un élément pour la barre latérale. Créez une barre latérale ici, puis une pour le contenu principal. Maintenant, si je clique simplement sur Enregistrer, encore une fois, afficher le bloc par défaut, l'un se trouve au-dessus de l'autre. En fait, allons-y. Afin de différencier ces deux divs parce que nous voulons les styliser séparément, nous pouvons utiliser un identifiant ou une classe. L'ID est réservé un seul élément, donc si je devais entrer ici, je pourrais créer une barre latérale d' attributs d'ID. Si je fais cela, je ne peux pas donner d'identifiant de barre latérale à aucun autre élément, sinon les choses commenceront à se casser. Ici, je peux faire un cours comme alternative et l'appeler Main. La grande différence entre class et ID est qu'avec class, je pourrais avoir un autre div appelé Main. Si je devais copier et coller ça, je pourrais avoir un autre div appelé Main et ce serait bien. Alors que je ne pouvais pas avoir deux divs avec le même identifiant. C'est la différence entre l'identifiant et la classe. Lorsque nous développons des expériences frontales, nous utilisons la plupart du temps des classes, même si nous ne nous attendons à les utiliser qu'une seule fois. La classe fonctionne bien dans la plupart des situations. Je vais appeler cette barre latérale mais en fait, avant de le faire, je vais simplement vous montrer comment nous ciblons un identifiant dans notre feuille de style ici. Nous utilisons le hachage pour une barre latérale d'identification. Ensuite, nous mettrions nos styles ici, et cela ne ciblerait que l'élément ayant l'ID de la barre latérale. Pour Main, ce que nous allons faire c'est qu'il y a une classe de main. Nous utilisons un point, donc .main, puis nous ciblons maintenant tous les éléments qui ont pour classe Main. Je vais juste suivre ces deux cours, alors vas-y. Barre latérale de classe. Allons ici et mettons un point ici, parce que maintenant, en classe, et mettons-les l'un à côté de l'autre. Permettez-moi de revenir en arrière, je veux voir ces bordures pour que nous puissions les voir facilement, une bordure d'un pixel plein, ils puissent voir et maintenant, ce que nous allons faire, c'est la barre latérale, je ne veux pas être plus grande que, faisons-en une largeur de 300 pixels. Ensuite, ce que je peux faire, c'est lui donner une plus grande largeur de 500 pixels, vous verrez qu'ils s'empilent toujours les uns sur les autres. Allons-y et, pour les deux, faisons en sorte que celui-ci s'affiche en bloc en ligne, mettant à jour son comportement par défaut de bloc d'affichage. Maintenant, comme vous pouvez le voir, ils s' empilent encore les uns sur les autres, probablement parce que je n'ai pas laissé assez d'espace. Je vais faire 400 pour la zone principale. Bien entendu, cela dépend de la largeur de votre navigateur. Si je l'étend ici, vous pouvez voir qu'ils s' empilent côte Faisons 200 et 400 et maintenant vous pouvez voir que la barre latérale se trouve sur la gauche et le contenu principal sur la droite. Maintenant, ce que je veux faire, c'est placer la barre latérale au ras coins et la raison pour laquelle ce n'est pas actuellement, c'est que si nous regardons Nous avons donc ce panneau ici, des coins et la raison pour laquelle ce n'est pas le cas actuellement, c'est que si nous regardons. Nous avons donc ce panneau ici, si je le pose et que je regarde la balise body ici, regarde calculé, il y a en fait une marge par défaut de huit pixels. Comme vous pouvez le voir ici , marge inférieure huit , marge gauche huit, marge droite huit, marge supérieure huit. Allons-y et je vais cibler l'ensemble du corps. Aucun point ni aucun hachage ne le précèdent , car il cible un élément, puis je vais simplement supprimer cette marge par défaut, donc je vais simplement dire marge zéro. Ensuite, vous pouvez voir la marge autour de tout le corps, le document entier est maintenant supprimé. Nous utilisons maintenant des largeurs de pixels, ce qui n'est pas très réactif car la hauteur ou les dimensions de la fenêtre d' affichage, comme dans la fenêtre sur laquelle nous examinons cette page, peuvent être modifiées. Ce que je veux, c'est que cette barre latérale soit aussi haute que l'espace disponible. Donc, ce que je peux faire, c'est insérer un attribut de hauteur ici et utiliser une unité appelée hauteur de la fenêtre, et ce nombre avant la hauteur de la fenêtre est le pourcentage de la hauteur de la fenêtre que je souhaite utiliser. Je veux utiliser l'espace total disponible, je vais appuyer sur « Enregistrer » et maintenant, comme vous pouvez le voir, la barre latérale est maintenant pleine hauteur et c'est donc sur toute la hauteur de la fenêtre que nous la regardons. Si je devais fermer cette fenêtre, cela augmenterait la taille de notre fenêtre et, comme vous pouvez le voir, elle descendrait complètement, c'est ce que nous attendons de notre barre latérale. Ensuite, nous pouvons aussi le faire ici, c'est un peu plus délicat avec les blocs en ligne, mais je peux en fait utiliser quelque chose appelé calc pour faire une expression mathématique. Je peux en fait faire l'autre unité de largeur de fenêtre. Je peux saisir la largeur de la fenêtre d'affichage et supprimer les 200 dont nous avons besoin pour la barre latérale. Cliquez sur « Enregistrer » dessus et comme vous pouvez le voir, cela ne fonctionne pas vraiment. Nous devrons l'affiner un peu, peut-être le réduire de 250, 210 et c'est là blocage en ligne devient un peu délicat. Ensuite, si nous y allons, vous pouvez voir qu'elle continuera s'étendre jusqu'à la fin, largeur de 100 % dans la fenêtre d' affichage moins 250. Comme vous pouvez le voir ici, il effectue ce calcul pour chaque taille d'écran. Comme je l'ai mentionné, le blocage en ligne est un peu délicat et il n'est pas vraiment utilisé dans le développement Web moderne Le bloc en ligne est une vieille école. Beaucoup de personnes utilisent maintenant Flexbox ou Grid, alors voyons comment nous procéderions dans Flexbox. Ici, nous n'avons pas besoin de placer un bloc d'affichage en ligne sur les éléments individuels. Je vais plutôt entrer dans l'index ici, et je vais créer un div, qui va entourer ces éléments pour créer la mise en page. Je vais appeler cette page conteneur, nous pouvons mettre un tiret ici pour séparer les mots, puis je vais le couper et le coller notre conteneur de pages. Ce conteneur de pages est ce qui va nous donner la mise en page, il nous suffit donc de le styliser. Nous allons entrer ici dans le conteneur de pages, vous allez le placer au-dessus de la barre latérale principale et de l'ordre, et je vais définir le style d'affichage, c'est le parent de ces deux à fléchir. Je vais appuyer sur « Enregistrer » là-dessus. Il suffit d'activer Display Flex pour afficher automatiquement le contenu côte à côte et flexible sur nos écrans. Si nous supprimions ces largeurs, ce que je vais faire maintenant en appuyant sur « Enregistrer », vous verrez toujours que nous les obtiendrons côte à côte, mais il ne sait pas quelle quantité d' espace disponible utiliser. Ce que nous pouvons faire à l'intérieur de la barre latérale, c'est fléchir 1 et à l'intérieur de la barre principale également, je veux utiliser la flexion 1. Nous pouvons avoir un itinéraire Flex 1, le Flex Grow le plus spécifique. C'est, comme il est dit ici, le facteur de croissance. Cela dépend des autres éléments contenus dans ce conteneur. Mais si je clique sur « Enregistrer », vous verrez maintenant que nous obtenons une mise en page réactive à deux colonnes. Si je devais déplacer cela, vous pouvez le voir maintenant, car croissance est réglée sur un sur les deux, elles auront toutes les deux la même largeur et elles augmenteront toutes les deux jusqu'à atteindre l'espace disponible, donc chacune d'elles en aura la moitié. Mais nous pouvons modifier le ratio ici, ce que je vais faire et je veux que la barre latérale ait trois fois moins de largeur, donc je vais diviser la barre principale par trois. Ensuite, comme vous pouvez le voir ici, lorsque j' augmenterai, la section principale s' agrandira trois fois plus que la barre latérale, comme vous pouvez le voir ici. Mais nous voulons donner à cette barre latérale une largeur minimale, car elle va contenir du contenu Je vais donc ajouter ce que l'on appelle une base flexible et je veux qu'elle corresponde à ce que nous avions auparavant, 300 pixels. Je lui donne un indicateur indiquant que je veux qu'il soit de 300 pixels Vous pouvez voir ici qu' il l'étend maintenant et ensuite je peux régler le facteur de rétrécissement Je vais lui dire zéro, ce qui signifie qu'il ne diminuera jamais en dessous de 300 pixels, 300 pixels, c'est un peu trop grand, donc 150, c'est la moitié. Ensuite, lorsque je peux résumer ces trois attributs en un seul attribut, je peux simplement passer à Flex, le premier à grandir, le second à réduire et le dernier à Flex Basic. Je peux les remplacer tous les trois par celui-ci. ce que je vais faire. Cliquez sur « Enregistrer » dessus. Vous voyez, nous obtenons le même résultat. Maintenant, si je clique ici, il devrait y en avoir 150, ce qui, comme vous pouvez le voir, est un peu plus que 150 et c'est parce que le facteur de flexion est toujours un. Je vais me rendre ici et changer les choses jusqu'à zéro, ce qui fera en sorte qu'il ne soit jamais supérieur ou inférieur à 150. En fait, il y en a 152 ici . Si je le calcule, vous pouvez voir que c'est parce que nous avons une bordure de chaque côté, donc si nous voulions qu'elle soit exactement 150, nous devrions supprimer la bordure, ce que je suppose que nous pouvons faire maintenant. Je vais me débarrasser de cette bordure autour des développeurs, appuyer sur « Enregistrer  », et ensuite, si nous regardons la barre latérale, il y en aura 150. Maintenant, pour différencier la barre latérale de la section principale, donnons-lui une couleur de fond et nous allons simplement rendre la couleur d'arrière-plan beige. Vous pouvez voir que nous avons notre barre latérale, elle ne sera jamais inférieure ou supérieure à 150, puis la zone de contenu principale s'étendra à l'espace disponible. Il se trouvera à côté de cela dans ce conteneur de pages. J'espère que cela a du sens avec Flexbox. C'est un moyen vraiment agréable, réactif et flexible pour nous de créer des mises en page bidimensionnelles. Mais il existe en fait une méthode plus récente de mise en page en CSS, à savoir le type d'affichage de la grille, qui n'était pas disponible dans tous les navigateurs il y a quelques années, mais si nous le vérifions aujourd'hui. Si nous effectuons une recherche, si je peux utiliser Google et cliquer sur ce premier lien, nous pouvons réellement voir le taux d' adoption d'une fonctionnalité. Nous allons passer au réseau. disposition en grille CSS, vous pouvez voir qu'elle est largement adoptée, qu'elle est prise en charge par Chrome depuis 2017, Firefox l'est depuis 2017, mais elle ressemble à ceci, donc oui, elle est bien prise en charge. Si vous regardez ici, il est essentiellement pris en charge par 96,25 % des utilisateurs du monde entier, il est donc prêt pour la plupart des cas d'utilisation. Avec toutes ces fonctionnalités modernes qui sortiront, vous voudrez peut-être les comparer à Flexbox. Vous avez obtenu le modèle flexible, 99,05 % de tous les navigateurs s'y sont adaptés. Ce sont quelques-unes des versions les plus récentes, mais la grille CSS est sortie depuis un certain temps, comme vous pouvez le constater, Chrome la supportait déjà depuis de nombreuses années, vous devriez donc être plutôt gentil avec la grille d'affichage. Afin de démontrer la grille d'affichage, je vais créer un autre div ici et appeler cet en-tête, afin que nous puissions placer un en-tête qui se trouve sur notre barre latérale et notre contenu principal. Maintenant, comme vous pouvez le voir, parce que je l'ai placé dans ce conteneur de pages qui est actuellement configuré pour Flex, et il va tous les avoir sur la même ligne. Si je voulais activer le rap, je peux saisir Flex Wrap Wrap, puis si l'un d'entre eux devait devenir trop grand, disons simplement que nous voulions notre en-tête cible ici. Disons que je voulais faire en sorte que l'en-tête ait la largeur, la moitié de l'écran, que vous pouvez voir puis disons que nous avions une base flexible composée de la moitié de l'écran et un rétrécissement flexible, donc il ne sera pas inférieur à la moitié de la largeur de l'écran, soit zéro, alors vous pouvez voir qu'il sera imposé sur une nouvelle ligne, mais dans la plupart des cas, lorsque nous faisons quelque chose comme ça, tout sera empilé sur une seule rangée. Quoi qu'il en soit, c'est Flex-box. Passons à Flex-Box Passons maintenant à grille et nous aurons maintenant un style de grille. Cela va donc s'empiler les uns sur les autres, car nous n'avons pas encore défini la disposition de notre grille Nous l'avons donc défini sur le parent. Je vais me débarrasser de ces attributs de la boîte flexible et de la hauteur ici pour me débarrasser de la largeur 50. Maintenant, nous avons nos trois divs ici. Formatons-les en créant notre modèle de colonne, afin de créer notre div, créer des colonnes de modèles de grille, et nous le faisons via des fractions. Je vais créer une colonne similaire à celle que nous avions auparavant, une colonne d'une fraction, puis la seconde de trois fractions Cliquez sur Enregistrer et comme vous pouvez le voir, nous avons maintenant le même système qu'auparavant, où la première colonne est trois fois plus petite que la deuxième colonne. Si je clique ici, vous pouvez réellement voir la grille, donc si je clique sur le conteneur de page, où se trouve la grille d'affichage, nous pouvons réellement regarder les lignes de notre grille. Mais le problème ici est que notre section d'en-tête que nous voulons étendre à la barre latérale et à la barre principale se trouve dans cette première colonne, puis elle passe à la division suivante, qui passe à la colonne suivante, puis la troisième division s'enroule et entre dans cette même première colonne. n'est pas ce que nous voulons, alors nous allons entrer ici et taper début de la colonne de la grille et nous voulons que cela commence à la première ligne de la grille. Si nous revenons ici, la première ligne lorsqu'elle apparaît, est la première ligne de la grille, droite se trouve la deuxième ligne de la grille puis de l'autre côté se trouve la troisième ligne de la grille. Je veux que ça commence à une ligne, puis que nous puissions aller à la fin de la colonne de la grille et que nous puissions le terminer sur la troisième ligne de la grille si je clique sur Enregistrer dessus. Vous pouvez maintenant voir que l'en-tête s' étend sur les deux colonnes, ce que nous voulons. Nous pouvons en fait mettre de l'ordre, nous pouvons les combiner en un seul attribut appelé colonne de grille, puis nous pouvons faire une barre oblique trois pour démontrer la même chose qui résume essentiellement les deux attributs que nous avions auparavant, le début de la colonne de la grille et la fin de la colonne Nous l'avons placé dans un seul attribut séparé ici par une barre oblique. Nous sommes maintenant confrontés au même problème avant ou pas, mais à la même situation : nous avons défini la deuxième colonne pour qu' mais à la même situation nous avons défini la deuxième colonne elle soit trois fois plus grande que la première, ce qui signifie que lorsque nous augmentons la largeur de la fenêtre, le contenu de la barre latérale augmente trois fois moins. Pour cette première colonne, je vais l'intégrer dans une valeur min-max, ce qui me permet de définir une plage de tailles Je vais donc faire le minimum automatiquement et le maximum 150 pixels sauf cela et maintenant vous pouvez voir que la première colonne ne dépassera jamais 150. Maintenant, ce que je peux également faire, c'est mettre un style ici pour l'écart de la grille, et cela créera un espace entre les éléments de la grille. Nous allons ajouter un espace entre les colonnes et les lignes, donc si nous allons ici, vous pouvez voir maintenant que nous avons cette zone violette qui nous montre l'écart entre les colonnes et les lignes. Une autre chose que nous avons ici est le conteneur de pages a la largeur minimale En gros, nous voulons que cette largeur et cette hauteur soient de 100 % pour couvrir l'espace disponible Comme vous pouvez le voir ici, maintenant, le conteneur de pages couvre tout l'espace. Mais maintenant, vous pouvez voir que l' en-tête est tout simplement trop grand Nous allons donc placer des lignes dans un modèle de grille et placer des lignes pour la première ligne, 150 pour l'en-tête, puis la seconde. Faisons 1 fr, voyons comment cela fonctionne, je pense que 150, c'est trop haut, alors faisons 50, et c'est parti. La première ligne sera 50, puis la seconde sera composée de tout le reste. Maintenant, vous pouvez en voir l'avantage, c'est que nous avons maintenant la barre latérale qui prolonge le couloir vers le bas de la page, et juste pour rendre l' en-tête très évident, donnons-lui également une couleur d' arrière-plan. ne sera pas la plus sexy, mais faisons-en une belle couleur de fond, disons gris foncé, appuyez sur Enregistrer dessus. Vous pouvez maintenant voir que nous avons notre en-tête dans la rangée supérieure, notre barre latérale et notre contenu principal. Maintenant, j'aime bien cet espace entre la barre latérale et le contenu principal, mais je veux que cet en-tête soit aligné sur la barre latérale. Donc, au lieu d'un écart de grille, c'est un espace entre les colonnes et maintenant vous pouvez voir qu'il n'y a pas d'espace entre les lignes, mais qu'il y a un espace entre les colonnes, vous pouvez le voir. En utilisant ces styles, nous pouvons créer une jolie petite disposition en grille et si je devais cliquer dessus, vous pouvez voir qu'elle répond et fonctionne quelle que soit la taille de la fenêtre de notre navigateur. Comme vous pouvez le voir ici, notre mise en page bidimensionnelle commence maintenant à prendre forme. Encore une fois, il y a tellement de choses que nous pourrions couvrir avec du CSS, nous pourrions colorer certains éléments, ajouter des bordures, ajouter un rayon de bordure, modifier la taille de la police, la famille de polices, évidemment toutes ces choses évidentes, mais ce qui est peut-être moins évident et plus Web 2.0, ce sont ces éléments de mise en page. Les éléments de mise en page sont très importants et fondamentaux pour créer des mises en page et ils sont moins évidents que de simplement dire je veux que le texte soit d'une certaine couleur. Tout le monde peut comprendre que la configuration de mises en page réactives est la partie la plus délicate du HTML et du CSS et c'est sur cela que je me suis concentré dans cette vidéo. Nous pouvons simplement la rechercher sur Google si nous voulons quelque chose de spécifique, par exemple, mettre cette police en gras, comment s'y prendre ? C'est assez simple, mais ce sont les choses les plus compliquées. Comme vous pouvez le constater, cette leçon est très différente la leçon précédente où nous avions simplement ce contenu stylisé de base superposé dans un format d' information de base Nous commençons maintenant à créer des mises en page avec CSS et à nous orienter davantage vers cet espace Web 2.0. Mais en parlant de développement Web moderne, il est très important pour nous de nous assurer que notre site Web s'affiche parfaitement sur mobile. Il donc évident que de nombreuses personnes utilisent des sites Web sur leur téléphone de nos jours Il est donc essentiel d'avoir une bonne mise en page mobile. Il est toujours préférable de s'assurer que notre site Web est réactif et fonctionne correctement sur n'importe quel appareil par défaut, mais il est parfois nécessaire de créer un style spécifique pour une largeur d'écran spécifique. Laissez-moi vous montrer comment procéder dès maintenant Je ne voulais pas le fermer, je veux juste le mettre de côté. Laisse-moi le déplacer ici. Si nous cliquons sur cette petite icône ici, nous pouvons basculer entre la barre d'outils de l'appareil. Nous pouvons maintenant accéder à différents appareils ici. Passons à l'iPhone Pro 12. Nous pouvons également cliquer ici pour afficher différentes tailles d'écran, nous pouvons créer une tablette de 768 pixels de large, un grand mobile, un mobile moyen et un petit mobile de 320 pixels de large, ce que je crois que presque personne n' a de nos jours, de toute façon. Ici, nous pouvons voir que tout est juste zoomé, donc ce n'est pas le meilleur. Ce que je veux faire ici, c'est ajouter une balise méta spéciale dans notre tête. Je vais juste le coller dedans. Jetons-y un coup d'œil. En fait, remarquez simplement ce que j'ai fait après avoir cliqué sur « Enregistrer ». Vous pouvez constater qu'il a maintenant un peu plus zoomé et qu'il est plus adapté à nos mises en page mobiles ou à notre fenêtre d'affichage mobile. En gros, la balise est une méta avec le nom de l'attribut viewport et ce contenu à droite, largeur est égale à la largeur du tiret de l'appareil, échelle initiale 1. Maintenant, c'est la norme. Je ne l'ai pas dactylographié. Je l'ai simplement copié et collé parce que vous le mettez simplement dans n'importe quel document HTML et vous obtiendrez cette fonctionnalité. C'est très basique. Vous n'avez pas besoin d'entrer dans les détails sur la façon d'écrire ceci. Vous pouvez simplement copier et coller ceci et cela fonctionnera. Nous sommes ici maintenant dans notre version mobile, et vous pouvez voir que tout est pareil ici. Nous voudrions peut-être réduire la barre latérale sur mobile, mais dans ce cas, nous aurons besoin de tout l'espace possible. Supprimons complètement cette barre latérale sur mobile. Nous le faisons en CSS en utilisant une requête multimédia. Nous commençons par un symbole at, saisissons un média, puis nous devons ouvrir les crochets et spécifier une largeur minimale ou maximale. Une idée fausse que vous pourriez avoir ici est que vous pourriez penser que j'ai inséré quelque chose comme un appareil, puis que j'ai inséré iPhone, puis que je l' applique à tous les iPhones. Mais en fait, ce n'est pas comme ça. Nous devons en fait spécifier une largeur. Nous devons déterminer à quel point de rupture nous voulons que ce changement se produise. Maintenant, comme vous pouvez le voir, nous pouvons voir ces différents appareils et leurs largeurs. Mais un modèle courant consiste à changer la mise en page sur la tablette. Le point de rupture standard de la tablette est de 768. Mais nous pouvons déterminer le point de rupture comme bon nous semble. Nous pouvons même sortir du mode réactif ici et simplement réduire notre fenêtre, tester, lire ce qui s'y trouve, puis écrire quelques requêtes multimédia. Il n'est pas toujours nécessaire que ce soit pour mobile. Mais ici, ce que nous pouvons faire, c'est créer une largeur maximale de 768 pixels, ouvrir des crochets, et maintenant nous insérons du CSS normal qui ne s'appliquera que lorsque la largeur de la fenêtre d'affichage est de 768 ou moins. Permettez-moi d'entrer dans le vif du sujet, d'ouvrir un sélecteur de classe pour la barre latérale, et je vais définir le style d'affichage sur aucun. Cliquez sur « Enregistrer » dessus. Vous pouvez maintenant voir que la barre latérale a disparu. Si je devais l'ouvrir, même si je ne suis pas en mode réactif, largeur de mon écran serait inférieure à 768 en ce moment. Si je le fais glisser au-delà de 768, vous verrez la barre latérale revenir. Ce style ne s'applique qu' à ce que nous lui avons défini. Aujourd'hui, le Web est encouragé à développer d' abord le mobile. Nous pouvons faire le contraire de ce que nous venons de faire ici. Tout dépend de la façon dont tu veux le faire. Définissez la largeur minimale de 768. Cela signifie que nous écrivons ici notre style par défaut, en supposant que c'est mobile, puis que nous écrivons nos styles de bureau ici. Cela signifie que par défaut, nous ne voulons pas que cela s'affiche. Ensuite, une fois qu'il atteint 768, nous voulons qu'il affiche le bloc. Si je clique sur « Enregistrer » ici, nous obtiendrons le même résultat. Si je l'étends au-delà de 768, nous aurons à nouveau la barre latérale. C'est ce que l'on appelle le développement axé sur le mobile, où vous écrivez le CSS, en supposant qu'il sera affiché sur un mobile, puis vous rédigez vos requêtes multimédia pour ordinateur de bureau. En fait, je préfère le faire dans la plupart des cas dans l' autre sens. J'aime d'abord travailler sur un ordinateur de bureau puis créer des styles pour un mobile, pour revenir à ma méthode préférée. Vous pouvez maintenant voir sur ordinateur que nous avons les styles habituels, mais une fois qu'il est inférieur à 768, ces styles commencent à apparaître. Ce n'est qu'un exemple très simple. Nous pouvons également dire, par exemple, si nous voulions quelque chose sur tablette, qui aura une apparence différente de celle du mobile. Disons simplement que notre plus gros mobile que nous prenons en charge, disons 425, peut en fait être mis entre crochets, mis à la fin. On peut dire une largeur minimale de 425 et une largeur maximale de 768. Au lieu de n'en afficher aucun sur la bordure, en fait, laissez-moi le remplacer par 4-5. Il y a un certain chevauchement ici, donc je vais faire 426. Si c'est à 425, cela s'appliquera. Mais s'il monte à 426, cela s'appliquera étant donné qu'il est inférieur à 768. Changeons simplement. Que devons-nous faire avec la barre latérale ? Épargnons ici. Regardez notre vue sur tablette. Créons simplement la barre latérale. En fait, au lieu de la barre latérale, nous allons simplement entrer dans le conteneur de pages, monter ici et récupérer ceci. Calculons la largeur maximale de la première colonne. Disons 50 sur la taille de l'écran. Maintenant, vous pouvez voir que c'est probablement un peu trop bas. Peut-être que j'en arriverai à 100. Ensuite, vous pouvez voir que si la taille de l'écran est supérieure à 768, nous aurons une première colonne qui ne dépassera pas 150. Mais une fois que nous serons en dessous de 768, nous voudrons que ce soit un maximum de 100. Vous pouvez voir ici que cela apparaît maintenant dans nos outils de développement. Ensuite, si nous passons à moins de 425, donc je vais faire défiler la page jusqu'à 425, vous pouvez voir que cela ne s'applique plus. La barre latérale, si nous cliquons ici, n'en affiche car cette requête multimédia est maintenant en vigueur. C'est ainsi que nous créons des styles distincts pour différents appareils. Cela se fait en fonction de la largeur de l'écran. Peu importe que vous utilisiez un appareil ou un navigateur normal et que vous le mettiez à jour de cette manière, nous pouvons même effectuer des requêtes réactives pour des écrans géants. Permettez-moi d'ouvrir ceci et nous pourrons passer à un grand ordinateur portable de 1440 pixels. Si je vais ici, nous pouvons accéder à un écran 4K et examiner les styles sur un écran 4K. Peut-être voulons-nous donner au conteneur de pages une largeur maximale pour quelque chose. Nous pouvons en fait affecter n'importe quelle plage de largeurs d' écran ou de largeur de fenêtre sur laquelle la page Web est affichée. Ce n'est pas seulement pour le mobile, mais pour le mobile, c'est ainsi que nous le ciblerions. Nous déterminerions la largeur maximale des téléphones que nous souhaitons prendre en charge, puis nous y appliquons un style distinct. Je voulais ajouter le SaaS dans cette vidéo, mais il semblerait que nous parlions de ce sujet depuis un bon moment. Je vais séparer la discussion sur le SaaS et aborder cette question dans la prochaine leçon. Le SaaS est un préprocesseur du CSS, il est donc très pertinent pour ce que nous faisons ici. Ça nous facilite un peu la vie. Si le SaaS vous intéresse, cliquez sur la vidéo suivante. Sinon, vous pouvez passer à JavaScript. 6. Sass: Dans cette leçon, nous allons parler de Sass, qui signifie des feuilles de style syntaxiquement géniales. Il s'agit d'un langage de script préprocesseur qui est interprété ou compilé dans des feuilles de style en cascade, appelées CSS. Maintenant, cela vous est probablement passé par dessus la tête. En gros, Sass, comme nous en avons parlé dans les vidéos précédentes, il n'y a que trois choses le recharger dans le navigateur ou le navigateur interprète son code HTML, CSS et JavaScript. D'où vient Sass ? Sass est en fait un CSS doté super pouvoirs, mais pour l'exécuter dans notre navigateur, nous devons le compiler en CSS, et c' est là que la partie préprocesseur entre en jeu. Ce que nous allons faire, c'est suivre ce processus maintenant et développer notre application ou notre page Web un peu plus notre application ou notre page Web avec Sass. Je vais faire glisser mon navigateur ici, lancer ça ici. En fait, je pourrais étendre cela ici pour la partie installation de cette vidéo. Dans le code VS, nous pouvons accéder à notre panneau Extensions ici et charger quelque chose appelé le compilateur Live Sass de Glen Marks. Encore une fois, si vous ne l'avez pas encore installé, il vous suffit de rechercher dans le champ de recherche ci-dessus, compilateur Live Sass, puis vous le trouverez ici, puis vous cliquez simplement sur « Installer ». Pour moi, je l'ai déjà installé, donc il dit désactiver ou désinstaller. En gros, c'est le moyen le plus simple de commencer à compiler Sass dans le code VS. Juste pour que vous le sachiez, il existe de nombreuses méthodes et de nombreux outils pour compiler Sass. C'est le moyen le plus simple, car nous pouvons le faire sans aucune configuration supplémentaire. Tout ce que nous avons à faire est d'installer cette extension spéciale , puis cette extension spéciale , puis nous pouvons aller ici. Le bouton n'apparaît pas encore car nous devons en fait créer une feuille de style, mais nous pouvons aller ici et créer un styles.scss. Vous pouvez maintenant voir le logo de Sass apparaître et si je clique sur « Entrée », vous pouvez voir qu'il démarre et maintenant nous avons ce bouton pour compilation en direct de Sass ou SCSS en CSS. Techniquement, c'est du SCSS et Sass est un peu différent, mais SCSS est meilleur à mon avis car le CSS est rétrocompatible avec SCSS. Ce que je veux dire par là, c'est que je vais vous le montrer tout de suite. Je vais récupérer tout ce code, le couper du fichier styles.css, coller dans style.scss. En fait, je l'ai mal orthographié, c' est censé être styles.scss. Comme vous pouvez le voir ici, celui-ci est désormais vide. Si nous allons ici, nous avons perdu tous nos styles, mais ce que nous pouvons faire ici, c'est cliquer sur ce bouton pour Watch Sass. Maintenant, notre fichier styles.css est rerempli et, en fonction nos paramètres dans le compilateur Live Sass, vous pouvez voir que des attributs supplémentaires ont été ajoutés. Je pense que dans ce cas, il ne s'agit que d'un attribut supplémentaire et d'une petite référence à une carte source ici. Vous pouvez voir que nous avons une carte source qui nous aide à retracer code depuis le code compilé jusqu'au préprocesseur ici. Comme vous pouvez le voir ici, notre CSS a traité et nous avons maintenant tous nos styles. Maintenant, la dernière vidéo a été un peu plus longue que prévu. J' allais en fait intégrer d' autres fonctionnalités à notre petite application Web ici. Faisons-le, puis refactorisons avec SCSS. Je vais l'écrire ici. Ce compilateur Sass live surveillera tout changement ici , puis il sera mis à jour. En fait, je vais l'éteindre pour le moment. Les boutons s'allument. Je dois déplacer ça. Cliquez sur « Regarder », supprimez-en pour l'instant, puis je supprimerai tout cela pour le moment. J'ai pris un peu trop d' avance là-dessus. En fait, développons cela un peu plus avec du CSS. Je veux créer un menu de barre latérale dans ma barre latérale, donc je vais l'ouvrir. Ce que je vais faire est une convention similaire à ce que l'on appelle BEM, Block Element Modifier. En gros, c'est juste une convention sur la façon dont je nomme les classes. Celui-ci, comme il se trouve dans une barre latérale, je peux accéder à la barre latérale et si vous vous demandez ce que c'est, c'est Emmett, donc je peux faire point, puis le nom de la classe appuyer sur Tab et cela créera un div avec ce nom de classe. Je vais appeler cette barre latérale menu. Ensuite, vous pouvez voir que nous avons un div, mais disons simplement que nous voulons que ce soit une liste pour que je puisse la modifier, mettre le nom de l'élément devant celui-ci, puis appuyer sur « Tab », et maintenant nous obtenons une liste non ordonnée avec la classe du menu latéral. Ensuite, nous pouvons entrer ici et ouvrir quelques balises de liste. En fait, nous voulons des liens ici, alors mettons-en quelques liens. Je vais mettre le lien 1 , puis le copier. Lien 2, lien 3, renommez ici. Nous allons maintenant avoir un menu de barre latérale ici et, bien sûr, je ne veux pas le style standard des liens et des listes. Dans ce cas, cela peut être pratique dans le contenu principal, mais ici, nous essayons de créer un menu, je dois donc inverser la tendance. Je vais y aller avant les requêtes multimédia et je vais taper dans le menu de la barre latérale. Si nous regardons ici et que nous les inspectons, nous pouvons voir quels styles sont réellement générés automatiquement pour ces éléments. Je vais aborder cette question. Ici, nous pouvons voir notre menu de barre latérale et vous pouvez voir le type de style de liste. Si nous devions entrer ici, testons-le d'abord dans ce navigateur, listons, styles, types, puis vous pouvez voir ici que nous pouvons modifier ces éléments ici. Nous ne pouvons rien faire. Nous pouvons supprimer ces points. Permettez-moi de le copier et de le coller ici, et puis nous obtenons également rembourrage de 40 pixels à partir de la gauche. Je vais également supprimer cela, en appuyant sur la gauche : 0. Nous y voilà. Je veux toujours un certain niveau de rembourrage, donc je vais faire un réglage général du rembourrage. Juste dans cette section, je vais en faire 10 pixels. Si nous regardons le menu de la barre latérale, nous pouvons voir qu'il contient 10 pixels de rembourrage. Tout le contenu du menu de la barre latérale aura taille de 10 pixels en essayant, mais nous avons aussi une certaine marge en haut et en bas, il semblerait. Je vais donc entrer dans le vif du sujet, je vais regarder le calcul ici. Nous avons environ 16 pixels de marge en haut et en bas. Je vais supprimer les marges en mettant la marge zéro et le tour est joué. Maintenant, je veux me débarrasser du style de la balise de lien. La façon dont je peux le faire en CSS est commencer par sélectionner le menu de la barre latérale et si je mets un espace, je peux y sélectionner des enfants . Je vais sélectionner les éléments de la liste qui s'y trouvent, mais dans ces éléments de liste se trouvent des balises, ce qui me permet d'y effectuer deux niveaux d'imbrication. Je vais rechercher les balises de lien dans une balise d'élément de liste dans cet élément de menu de la barre latérale. Ensuite, ce que je vais faire, c'est de faire à nouveau référence à ce que nous voyons dans un navigateur ici, en regardant vers le bas. Souligner la décoration du texte, retirons-le. Décoration de texte. Aucune. Nous voulons absolument que le curseur reste pointeur pour indiquer qu' il s'agit d'un lien, comme vous pouvez le voir ici. Nous voulons que la couleur soit, faisons en sorte qu' elle soit noire pour le moment. Je vais appuyer sur « Enregistrer » là-dessus et comme vous pouvez le voir, ils ont l'air beaucoup plus normaux maintenant. Nous voudrions peut-être leur montrer un peu plus clairement qu'ils sont cliquables. Ce que nous pouvons faire, c'est ajouter une pseudo-classe ici. Encore une fois, je vous présente un tas de nouveaux CSS dans cette vidéo, mais encore une fois, si vous voulez approfondir le HTML et le CSS, vous pouvez consulter mon autre cours. Mais ici, c'est ce qu' on appelle une pseudo-classe. J'ai mis deux points ici, puis je mets le pointeur de la souris. Ce que nous pouvons faire , c'est peut-être ramener cette décoration de texte, mais uniquement en survolant. Je vais souligner le texte pour décorer le texte , puis vous verrez que nous pouvons voir que les liens sont ou que nous indiquons à l'utilisateur qu' il s'agit de liens en modifiant le curseur et en le soulignant. Cool, créons également un menu d'en-tête. Je vais monter ici et au lieu d'un en-tête, je vais faire exactement la même chose. Je vais créer un UL avec une classe de menu d'en-tête, allez ici et copions ceci ici. Sauvegardez ça. Nous allons donner style légèrement différent à celui-ci. Sous en-tête, je vais créer un ensemble de règles pour le menu d'en-tête. Encore une fois, supprimez le type de style de liste, et ce que je veux faire, c'est affiche pas sur lui-même. Je veux qu'il s'affiche sur l'écran. Ce que je vais faire, c'est Display Flex. Vous y voilà. Maintenant qu'ils sont côte à côte , mais qu'ils sont trop proches, je vais donc faire un écart de colonne de 10 pixels. Voilà, ils sont séparés. Ensuite, je vais utiliser cet autre attribut dans Flexbox appelé justify content center et qui placera les liens au centre. là que tu peux le voir. Formatons ensuite ces liens. Encore une fois, nous pouvons faire exactement la même chose que la dernière fois. menu d'en-tête UL LI. En fait, pas l'UL, car nous sommes déjà dans un UL. Ensuite, nous allons régler la décoration du texte zéro et qu'allons-nous faire pour la couleur ? Encore une fois noire, disons, et peut-être que nous ferons la même pseudo-classe. Je vais simplement copier cela en mettant la pseudo-classe à la fin du survol , puis nous pourrons personnaliser notre état de survol , la décoration du texte et le souligner. C'est ce que nous allons faire. Je vais appuyer sur « Enregistrer » là-dessus. Nous pouvons maintenant voir que nous avons notre menu dans notre en-tête et notre menu dans notre barre latérale. Ce que nous avons fait ici, c'est que vous pouvez voir que nous avons fait quelques imbrications. Nous avons quelques couleurs. Ce que nous pouvons faire dans Sass, c'est transformer notre nidification. Le compilateur Live Sass a été désactivé. Je vais l'ouvrir. Ce que nous allons faire, c'est copier tout cela. Je vais me diriger vers styles.css, coller ici, puis nous voulons nous assurer que toutes les modifications que nous apporterons ici seront répercutées dans styles.css. Ne l'activez pas et vous aurez donc votre CSS copié ici. Sinon, cela remplacera ce que vous avez écrit ici. Ensuite, je cliquerai sur « Watch Sass ». Il est en train de regarder. Et comme CSS est rétrocompatible avec le SCSS, tout fonctionne normalement. Maintenant, laissez-moi vous montrer certains des avantages de l'utilisation de Sass. Si nous allons ici, nous ne regarderons plus le fichier styles.css. C'est juste pour le navigateur maintenant. Nous allons travailler dans styles.css. Ce que nous pouvons faire ici, c'est travailler sur notre nidification. Maintenant, comme vous pouvez le voir ici, nous nous répétons. Nous avons le menu d'en-tête trois fois et nous avons li et deux fois ici. Ce que nous pouvons faire, c'est le saisir, le couper, le coller dans les règles de notre menu d'en-tête définies ici, puis je corrigerai l'indentation ici. Comme nous copions d'un menu d'en-tête à l' autre, nous pouvons utiliser le symbole « et| » une fois que nous l'avons intégré. Nous y voilà. Nous pouvons faire « et ». Maintenant, cliquez sur « Enregistrer » et vous pouvez voir maintenant que nous obtenons le même résultat dans notre fichier styles.css. Si je regarde ici le menu d'en-tête li a et la, je le passe ici. Ils sont séparés dans notre fichier styles.css, ce dont nous avons besoin pour notre CSS, mais les voici ensemble. En fait, nous n'avons même pas besoin de la fin dans ce cas. Nous pouvons simplement procéder ainsi et l' imbrication ici est implicite en la plaçant dans l'ensemble de règles. Mais nous pouvons pousser cette nidification encore plus loin. Vous pouvez voir ici que li et a se répètent. Nous pouvons en fait prendre cette partie et l'imbriquer à l'intérieur en y insérant le bout. La fin prend simplement le parent et applique ensuite toute sélection supplémentaire à celui-ci. Nous avons un menu d'en-tête, puis nous allons appliquer ces styles aux balises de liens dans les balises de liste menu d'en-tête afin que vous puissiez voir comment l'imbrication commence à se dérouler ici. Tout fonctionne de la même manière maintenant, et ce que nous pouvons faire pour aller encore plus loin, c'est utiliser le symbole at pour créer un nom de classe lui-même. Découvrez comment nous avons un en-tête et un menu d'en-tête. Ils contiennent tous les deux un en-tête. Ce que nous pouvons faire, c'est le saisir , le couper, puis à l'intérieur, nous pouvons faire un « et » pour représenter l'en-tête à points , puis nous pouvons ajouter un menu en tableau de bord et nous obtenons exactement le même résultat. Si nous regardons le CSS, vous pouvez voir que nous obtenons le même résultat qu'avant. En-tête, menu d'en-tête, menu d' en-tête et survol du menu d'en-tête. Il l'étend au CSS nécessaire, mais dans notre éditeur de code, nous pouvons utiliser cette imbrication insensée au CSS nécessaire, mais dans notre éditeur de code, . Personnellement, je trouve cela pratique lorsque je crée des noms de classe qui vont plus loin. Par exemple, nous pourrions lui donner un nom de classe pour le lien du menu d' en-tête. Comme vous pouvez le constater, nous redoublons à chaque fois sur les mots qui le précèdent. Je trouve cela très pratique de pouvoir utiliser le symbole « et », l'esperluette ici, pour faire référence à la partie précédente et tout imbriquer sémantiquement. Désormais, tous nos styles d'en-tête sont regroupés dans cet ensemble de règles. Ensuite, bien sûr, nous avons tous ces ensembles de règles imbriqués. Nous pouvons faire la même chose pour le menu de la barre latérale. Je vais le faire de l'extérieur vers l'intérieur, je vais saisir cette pièce, qui est la seule qui soit différente de celle-ci. Découpez cette partie, puis placez un « et » pour le survol. Maintenant, nous pouvons simplement déterminer l'état de survol avec les autres styles de l'état standard. Et puis, bien sûr, la différence entre ce sélecteur et ce sélecteur réside dans le li a. Nous pouvons donc simplement le saisir, Nous pouvons donc simplement le saisir, l' imbriquer ici, et puis la dernière étape, nous pouvons saisir la partie qui est différente d'ici à ici, à savoir le menu tiret. Prends ça, vas-y, ajoute le « et ». Débarrasse-toi de ça. Maintenant, si nous cliquons sur Enregistrer, regardez notre résultat. Nous obtenons exactement le même résultat. Je dirais que pour moi, le plus grand avantage de Sass est cette fonctionnalité d'imbrication. Nous avons maintenant tout le code d'en-tête dans un seul ensemble de règles. Nous avons regroupé tous nos codes de barre latérale dans un seul ensemble de règles. Cela peut prêter à confusion lorsque vous essayez de rechercher dans la base de code. Il y a quelques inconvénients. Par exemple, si je clique dessus et que j'entre dans un nouveau projet et que je veux trouver ici , je vais dans le fichier Sass pour le modifier. Je ne peux pas le rechercher comme ça, alors que je pourrais le faire en CSS. Je vais devoir trouver le menu de la barre latérale. Où est-il ? Il n'est pas là non plus. C'est là que les choses commencent à devenir un peu plus difficiles en matière de recherche, mais sinon, j'aime beaucoup cette approche d' imbrication. L'autre fonctionnalité que nous pouvons utiliser dans SCSS concerne les variables. Je peux aller ici et définir des variables. Disons simplement la couleur de l'en-tête , puis qu' avons-nous pour la couleur de l'en-tête ? Gris foncé, puis nous allons créer une couleur de barre latérale. Évidemment, si nous ne l'utilisons qu'à un seul endroit, ce n'est pas très pratique, mais c'est peut-être comme si nous pouvions stocker les couleurs de marque ici. Des trucs comme la couleur des boutons et des trucs comme ça. Des composants que nous allons utiliser régulièrement. On fait du beige ici. Ensuite, au lieu du gris foncé, nous mettrions la variable et toute couleur stockée dans la couleur de l' en-tête s'appliquerait ici. Toute couleur stockée dans la couleur de la barre latérale passerait simplement ici. Si je clique sur « Enregistrer » dessus, vous verrez que nous obtenons le même résultat. Et nous avons toujours du CSS standard dans notre fichier CSS ici. Si vous regardez ici, il n'y a pas de variables, il n'y a pas d'imbrication dans SCSS. Il s'agit uniquement de code SCSS. Cela nous permet de travailler plus facilement avec CSS et nous offre des fonctionnalités supplémentaires. Mais il est très important de noter ici que le CSS compilé, la partie réellement lue par le navigateur, ne sera pas Sass. Il existe d'autres fonctionnalités dans SCSS. Nous pouvons créer des fonctions des requêtes multimédia personnalisées et tout ce genre de choses, mais je ne veux pas être trop complexe dans cette vidéo et dans ce cours. Si vous voulez approfondir Sass, j'ai un cours sur Sass ici sur Skillshare. Cliquez dessus si vous souhaitez en savoir plus. La principale chose que je voulais faire passer ici, c'est ce que fait Sass. L'idée qui sous-tend un préprocesseur, que nous pouvons créer notre propre langage qui se compile dans l'une des trois langues auxquelles le frontend le navigateur répond et nous pouvons également configurer notre environnement de développement avec un outil tel que le compilateur Live Sass pour compiler ce code personnalisé, ce code qui nous facilite la vie en tant que développeur en CSS. Cela étant dit, passons du style pour le moment à l' interactivité. Parlons de JavaScript. 7. Javascript: Dans cette vidéo, nous allons parler de JavaScript. Javascript est ce qui donne de l'interactivité à nos pages Web sur le front-end. J'ai déjà parlé de JavaScript sur cette chaîne de partage de compétences. La plus grande critique que j'ai reçue lors de mes précédentes formations sur JavaScript est qu'elles ne sont pas assez pratiques Dans cette vidéo, je vais donc choisir un exemple assez pratique et réaliste. Je vais ajouter un tiroir latéral à cette page Web, et nous allons avoir un bouton pour ouvrir le tiroir et un bouton pour le fermer. C'est un exemple assez courant dans le monde réel et assez simple. Le codage ne devrait pas prendre trop de temps. Ce que je vais faire, c'est entrer dans index.html. Ici, j'ai déjà fermé le fichier SCSS pour le moment, et je peux le fermer. Cela ne veut pas dire qu'il ne fonctionne plus. Comme vous pouvez le voir ici, cela continue de nous regarder, mais cela ne nous gênera tout simplement pas autant. Je pourrais continuer à développer cela pendant un petit moment. Ici, dans le contenu principal, nous avons évidemment rempli la section d'en-tête et la section de la barre latérale, mais nous n'avons rien mis dans le contenu principal, alors allons-y maintenant. Donnons un titre à notre page, et je dirais simplement haut niveau. En fait, je vais appeler cette page le titre. Ensuite, en dessous, je vais le mettre dans le paragraphe juste pour que cela paraisse réaliste. Ensuite, vous pouvez voir que nous avons un titre de page avec un texte de paragraphe en dessous. Alors là, je vais mettre un bouton. Dans ce bouton, je vais écrire Ouvrir le tiroir. Comme vous pouvez le constater, nous avons dès le départ notre style de bouton par défaut . Si je le survole, vous pouvez voir les couleurs changer. Il s'agit d'un élément de bouton par défaut issu du code HTML. Maintenant, nous allons avoir deux boutons sur notre page Web. Afin de les différencier et de m'assurer que notre ciblage est bien précis, je vais leur donner un identifiant de bouton ouvert. Maintenant, notre tiroir n'existe pas encore, il va donc falloir le créer. Je vais entrer dans le vif du sujet, je vais le faire glisser à nouveau, et je vais créer un nouveau div avec la classe de tiroir. À l'intérieur du tiroir, je vais créer un autre bouton et je vais lui donner un identifiant de bouton de fermeture du tiroir. Ce bouton permet de fermer le tiroir. Ensuite, à l'intérieur des balises des boutons d'ouverture et de fermeture, je vais insérer le texte correspondant, qui est simplement Fermer le tiroir. Ensuite, si vous regardez de plus près, vous pouvez voir que nous avons un div tombe dans notre grille maintenant parce qu'il se trouve dans le conteneur de pages. Nous ne le voulons pas. Nous allons donc le déplacer en dehors du conteneur de pages, et vous pouvez maintenant voir qu'il se trouve toujours en bas, car nous ne lui avons pas encore donné de style. La première chose que nous voulons faire, c'est de le faire dans nos outils de développement, afin que vous puissiez voir cela se produire à la volée. Si j'appuie sur ce bouton ici, une sélection sera créée pour cette classe. Ici, je vais écrire position : absolue. Cela nous permettra de le placer en dehors de la mise en page normale et au-dessus du contenu, ce que nous voulons pour notre tiroir. Je vais maintenant positionner cela de manière explicite. Je vais le faire à zéro pixel en partant du haut et à zéro pixel en partant de la droite. Ensuite, nous voulons lui donner une largeur la moitié de la largeur de la fenêtre d'affichage. Actuellement, nous ne pouvons pas le voir car il n'y a pas de couleur d'arrière-plan différente. Donnons-lui simplement une couleur de fond noire. Nous souhaitons également qu'il étende toute la hauteur de la page. Je vais créer une hauteur de 100 % de la hauteur de la fenêtre d'affichage. Maintenant, vous pouvez commencer à voir notre tiroir se former. Je vais mettre du rembourrage ici pour que le bouton ne soit pas aligné sur le côté. Assurez-vous ensuite de ne pas actualiser la page, car elle n'a pas encore été enregistrée dans notre document Je vais donc copier les styles que nous venons de configurer. Accédez à notre fichier styles.scss. Assurez-vous de ne pas accéder au fichier styles.css si vous utilisez toujours compilateur Live Sass ou si vous prévoyez de l'exécuter à l'avenir, car cela annulerait ces modifications. Passons ensuite à la section «  Avant les requêtes multimédia », copiez-collez dans nos styles de tiroir, juste ici. L'indentation est un peu décalée, mais comme vous pouvez le voir lorsque nous cliquons sur Enregistrer, elle compile, actualise notre serveur live et, comme vous pouvez le voir , notre tiroir se trouve au-dessus. Maintenant, nous devons indiquer si le tiroir est ouvert ou fermé. Ce que je vais faire, c'est descendre ici et utiliser aria , une façon d'indiquer l'état d'un élément aux lecteurs d'écran. Les lecteurs d'écran sont un outil que les personnes malvoyantes utilisent pour faire lire des sites Web. Il est utile d'utiliser cet attribut, car il permet à ces personnes d'accéder au site Web. Nous allons définir aria-hidden sur true ici pour indiquer au lecteur d'écran que cet élément est actuellement masqué. Ensuite, il ne nous reste plus qu' à entrer dans notre CSS et à écrire une règle de style qui reflète cela. Nous ciblons un élément avec un certain attribut via ces crochets, puis nous mettons simplement l'attribut avec sa valeur entre ces crochets. Pour passer au côté de la page, je vais corriger la valeur négative à 100 %. La raison pour laquelle je le déplace hors de l'écran plutôt que de le masquer avec l'affichage : aucune, c'est parce que nous ne pouvons pas ajouter images-clés entre l'activation et désactivation si nous voulons animer le tiroir pour l'ouvrir et le fermer. Au lieu d'afficher : aucun, ce que je vais faire, c'est corriger le négatif à 100 %. Par conséquent, nous ne pourrons pas le voir sur la page à moins, bien sûr, l'utilisateur ne fasse ce que je suis en train de faire, c' est-à-dire faire défiler la page horizontalement. Évidemment, ce n'est pas sympa, alors je vais passer en revue nos styles pour le body tag et définir overflow-x sur hidden. Cela pourrait poser problème à l'avenir si nous voulions faire défiler la page horizontalement pour une raison quelconque, mais pour l'instant, ce hack fonctionnera. À partir de maintenant, tout ce que nous avons à faire pour ouvrir ce tiroir est de remplacer l'attribut aria-hidden par un autre attribut que true, car il n'est que juste négatif à 100 %. Si l'attribut est vrai, par défaut, il sera correctement égal à 0. Je dois également mettre le style ici pour la transition, afin que nous puissions animer le bon attribut. Nous allons lui donner une durée d'une demi-seconde, et la courbe de vitesse, nous allons la régler pour qu'elle soit et la courbe de vitesse, facile à saisir. Maintenant que nous avons ces paramètres, je peux mettre à jour cette valeur via les outils de développement en la modifiant manuellement. Dans l'onglet Éléments, je peux le faire passer de vrai à faux, puis vous pouvez voir que le tiroir s'animera. Si je le repasse à vrai, il s'animera. Bien entendu, les utilisateurs ne vont pas accéder aux outils de développement pour modifier cela Nous avons donc besoin de JavaScript pour fournir cette interactivité sur le front end aux utilisateurs finaux. Créons maintenant notre fichier JavaScript. Je vais étendre cette fenêtre. Au lieu de travailler côte à côte pour le moment, ouvrons notre explorateur de fichiers ici et créons un nouveau fichier nommé scripts.js. La partie scripts n' est pas essentielle. Nous pouvons l'appeler comme bon nous semble, à condition de le nommer avec l'extension of.js, essentielle pour les fichiers JavaScript. Ensuite, nous devons lier ce fichier de script externe dans notre code HTML. Si nous descendons ici, mettons-le avant le body tag de fermeture. Nous pouvons créer une balise de script. Dans la balise de script, nous pouvons placer le JavaScript littéralement ici, mais au lieu de cela, nous allons simplement le lier à une feuille de style externe qui est celle que nous venons de créer. Je vais juste taper le chemin vers ce fichier qui, comme il se trouve dans le même dossier ici, nous pouvons simplement écrire scripts.js. Pour vérifier qu'il s'agit bien d'un lien correct, ajoutons un simple journal de console. Cela ne fait qu'envoyer un message à la console. Cette commande est très pratique pour le débogage, mais pour l'instant, nous allons simplement afficher les mots Hello World. Si je retourne dans mon navigateur , que je le rafraîchis, puis que je passe à la console, vous pouvez voir les mots Hello World apparaître. Si je rafraîchis à nouveau, vous pouvez voir qu'une fois la page chargée , elle chargera ce texte Hello World. Cela permet de vérifier que le script est bien lié, et nous pouvons donc commencer à créer notre JavaScript. Comme mentionné, nous allons utiliser notre JavaScript pour ouvrir le tiroir Nous avons donc besoin d'un écouteur d'événements sur le bouton. Ensuite, cet auditeur d'événements ciblera ce tiroir , puis changera la droite à zéro grâce à cette aria cachée. Si je me trompe, il s'ouvrira et nous placerons un autre écouteur d'événements dessus pour fermer le tiroir. Allons-y et ciblons le premier élément, ce bouton Ouvrir le tiroir. Rafraîchissez-vous ici. Fermez le tiroir. Pour ce faire, nous commençons par l'objet du document. Ensuite, dans les objets du document , nous avons quelques options Nous pouvons utiliser QuerySelector, une méthode fourre-tout dans laquelle nous pouvons placer un sélecteur CSS et récupérer le premier élément correspondant à ce sélecteur. C'est la même chose que dans nos styles. Si nous devions cibler notre barre latérale, nous pouvons le faire comme ça. Dans ce cas, nous ciblons ce bouton spécifique qui possède un identifiant afin pouvoir y placer le hachage et le cibler ainsi. Ou nous pouvons utiliser la méthode getElementById, puis nous pouvons saisir l'ID. Nous avons maintenant sélectionné l' élément. Ce que nous pouvons faire, c'est ajouter ici une autre méthode appelée addEventListener. Le premier argument est de savoir ce que nous allons écouter. Nous allons écouter l'événement de clic. Ensuite, la seconde est la fonction que nous voulons exécuter. Je vais le faire à l' ancienne, comme ça. Ensuite, ici, juste pour vérifier que cet écouteur d'événements est correctement configuré, je vais juste créer un journal de console. Comme je l'ai dit, les journaux de console sont très pratiques pour le débogage et l'exécution d'un processus volumineux. Ce processus est un peu plus petit, mais nous pouvons vérifier que l'écouteur d'événements fonctionne via ce fichier console.log. Ici, si je clique sur « Ouvrir le tiroir », vous pouvez voir dans la console clic apparaît et si je continue à cliquer dessus, le chiffre à côté du clic augmente. C'est ce qui se passe lorsque vous enregistrez valeurs dupliquées sur la console. C'est bien. Nous savons que nous sélectionnons correctement l'élément et nous sommes en mesure d'associer un code à l'événement de clic. Maintenant, je vais entrer ici et cibler le tiroir. Pour cela, je vais utiliser QuerySelector. Il y en a un autre appelé QuerySelectorAll et celui-ci sert à créer un tableau d' éléments au cas où vous voudriez en sélectionner plusieurs. Nous voulons simplement sélectionner le premier qui correspond notre sélecteur CSS et qui sera tiroir. Ensuite, ce que nous voulons faire, c'est exécuter la méthode setAttribute et comme il s'agit d'un bouton pour l'ouvrir, nous allons définir l' attribut aria-hidden sur false, afin qu'il ne soit pas masqué. Si je clique sur « Enregistrer », reviens ici, clique sur « Ouvrir le tiroir », et vous pouvez voir que cela ouvre le tiroir et si nous regardons dans les coulisses le code du tiroir, vous pouvez voir ici que aria-hidden est vrai. Regardez ce qui arrive à aria-hidden lorsque je clique sur ce bouton. Comme vous pouvez le voir, cela met à jour notre code HTML et le rend faux. Cool. Il suffit de suivre à nouveau exactement le même processus avec le bouton Fermer. Je vais entrer ici. Au lieu du bouton Ouvrir, bouton de fermeture du tiroir et au lieu de faux, vrai, mais nous pouvons recycler tout le reste du code. Rafraîchissez-vous ici, ouvrez le tiroir, fermez le tiroir, fermez le tiroir et c'est aussi simple que cela. Maintenant, il s'agit d'un tout petit projet et je le diffuse localement, donc il ne se trouve pas sur Internet. Tout se charge très rapidement, mais à l'avenir, si vous souhaitez placer cela dans un environnement de production, il est préférable d'attendre que tous les éléments de la page soient chargés avant de commencer à charger ces écouteurs d'événements car il est possible que vous essayiez d' attacher un écouteur d'événements avant que le JavaScript ne puisse trouver cet élément. Par souci d'exhaustivité, je vais ajouter un autre écouteur d'événements qui enveloppera l'ensemble de notre code JavaScript. Celui-ci est placé sur l'objet du document. Nous allons ajouter un écouteur d'événements pour cet événement appelé DOMContentLoaded, comme vous pouvez le voir ici. Cela ne dit pas grand-chose, mais en gros, DOMContentLoaded, c'est lorsque, comme mentionné, le contenu du DOM est chargé, donc le contenu de la page est chargé. Je vais récupérer tout ça et le déplacer là-dedans. Cela garantira simplement que tout le contenu est chargé avant d'essayer de joindre ces écouteurs d'événements car nous obtiendrons une erreur si nous ne parvenons pas à trouver un élément avec cet identifiant. Pour résoudre ce problème de chronométrage, nous allons ajouter un écouteur d' événements supplémentaire ici. Voici un exemple assez simple, mais assez courant, et j'espère que vous êtes d'accord. Exemple pratique d' utilisation de JavaScript pour créer interactivité sur votre page tout en ouvrant et fermant un autre élément à l'écran. Bien sûr, nous aimerions y mettre du contenu, peut-être un peu de navigation, peut-être que dans le cas d' un site Web de commerce électronique, vous pourriez avoir votre carte de shopping ici, tout ce que vous voulez vraiment, mais maintenant nous avons au moins la possibilité d'ouvrir et de fermer ce tiroir en utilisant JavaScript. Si vous voulez approfondir le JavaScript, j'ai évidemment mes autres cours ici sur Skillshare. Vous pouvez regarder le cours JavaScript Web Development Fundamentals pour un cours approfondi sur JavaScript. Sinon, nous allons maintenant passer à autre chose et parler de TypeScript, dont le concept est similaire à celui de SAS est un langage de script préprocesseur, sauf que cette fois c'est pour JavaScript. Nous verrons cela dans la prochaine vidéo. 8. Typescript: Dans cette vidéo, nous allons apprendre ou au moins présenter TypeScript. TypeScript est un concept similaire à SASS par rapport au CSS. Le CSS est évidemment ce qui est exécuté dans votre navigateur. JavaScript est également ce qui est exécuté dans votre navigateur, mais SASS est quelque chose que nous pouvons utiliser pour compiler en CSS afin de nous aider en tant que développeurs, même pour TypeScript. Il s'agit d'un script distinct qui est un sur-ensemble de JavaScript. Nous pouvons mettre du JavaScript dans TypeScript et cela fonctionnera comme nous l'avons fait avec SASS, mais la différence, c'est qu'avec JavaScript, c'est un langage de programmation. Il est différent du CSS en ce sens que le CSS est simplement une feuille de style. Les fonctionnalités qui rendent TypeScript intéressant sont très différentes de celles de SCSS ou SASS. Comme il est mentionné ici, il s'agit d'un sur-ensemble syntaxique strict de JavaScript qui ajoute typage statique facultatif au langage. C'est très programmeur E. Si vous êtes un débutant à écouter ça, cela pourrait vous passer par-dessus la tête. Si vous voulez sauter cette leçon, n'hésitez pas à le faire, mais je voulais l'ajouter car elle est utilisée dans le développement Web frontal moderne. Il est devenu très populaire ces dernières années et beaucoup de gens l'utilisent. Pour moi, il m'a même fallu un certain temps pour comprendre les avantages de l'utilisation de TypeScript, mais à la fin de cette leçon, j'espère vous aurez compris à quoi sert TypeScript et si vous voulez réellement l'utiliser. Que ce soit votre introduction à TypeScript. Si vous ne souhaitez pas l'utiliser, ce n' est pas essentiel, sauf si vous travaillez avec une équipe de développement particulière qui l'utilise. Si vous souhaitez en savoir plus sur TypeScript, le site Web se trouve ici, le premier lien de site Web qui apparaît sur Google. Maintenant, pour utiliser TypeScript, vous aurez besoin de Node et de NPM. Si vous ne savez pas ce que c'est, vous pouvez vous rendre sur nodejs.org. Nodejs est un environnement d' exécution JavaScript multiplateforme open source . Tout ce que Node est essentiellement, c'est la possibilité d'exécuter JavaScript, un langage conçu pour les navigateurs Web sur votre ordinateur, sur un serveur, afin que vous puissiez l'utiliser. Ensuite, NPM, qui signifie Node Package Manager, que vous pouvez trouver sur npmjs.com est essentiellement un gestionnaire de packages. Nous sommes en mesure d'installer différents packages créés par des utilisateurs. Vous pouvez les rechercher ici. Vous pouvez considérer ces packages comme différents modules, différents codes prédéfinis créés d'autres personnes et que nous pouvons installer dans notre projet et globalement dans notre système. Pour vérifier que node est installé, vous pouvez exécuter node -v. Ensuite, pour vérifier que NPM est installé, vous pouvez exécuter npm -v, puis vous pouvez exécuter tsc --version pour voir la version de TypeScript que vous possédez. Si TypeScript n'est pas installé, vous verrez qu'il indique command not found : tsc. Ensuite, ce que vous voulez faire est d'exécuter npm install -g typescript, et cela installera TypeScript globalement sur votre ordinateur. Ce que vous venez de regarder était une vidéo préenregistrée parce que je l'ai déjà fait, assurez-vous que node et NPM sont installés. Ensuite, si TypeScript n'est pas installé, suivez les commandes que je viens de mentionner. Je vais fermer ça et je vais le fermer. Une fois celui-ci installé, nous pouvons réellement créer notre premier fichier TypeScript. En fait, avant cela, nous devons créer un fichier tsconfig.json ici, qui n'est que notre fichier de configuration TypeScript. Ici, vous pouvez voir que c'est dans ce format appelé JSON, qui n'est qu'un moyen de stocker des données. Permettez-moi de corriger l'indentation ici. Vous pouvez voir que nous avons ouvert cet objet. Nous avons ajouté cet objet d'options du compilateur, puis nous avons ajouté es5 pour cible, commonjs pour le module et défini la carte source sur true. Comme vous pouvez le voir dans ces commentaires, j'ai essayé d'expliquer ce que fait chacun d'entre eux. La première définit la version cible de JavaScript vers laquelle nous souhaitons compiler. La seconde définit le style du module. Ensuite, en définissant la carte source sur true, c' est-à-dire qu' au moment où nous transpirons notre TypeScript, elle générera également un fichier de carte et ce fichier mappe le fichier JavaScript transpilé au fichier TypeScript d'origine, permettant ainsi de reconstruire le code TypeScript d'origine lors du débogage. Comme je l'ai dit, cela devient un peu technique et de haut niveau, mais nous verrons cela fonctionner très bientôt. Ce que nous pouvons maintenant faire avec notre fichier de configuration TypeScript c'est exécuter la commande TSC, qui signifie TypeScript compile, mais bien sûr, nous avons d' abord besoin d'un fichier TypeScript. Ce que je vais faire est exactement comme nous l'avons fait avec styles.css. Renommez-le simplement en ts et cela devient maintenant un fichier TypeScript. N'oubliez pas que TypeScript est un sur-ensemble de JavaScript, il est donc rétrocompatible. Nous pouvons simplement mettre du JavaScript pur dans un fichier TypeScript et cela devrait fonctionner. Alors ouvrons un terminal. Je vais passer à ici pour faire le terminal, puis lançons simplement tsc pour la compilation TypeScript. Vous pouvez maintenant voir que notre fichier script.js et notre fichier scripts.js.map ont été créés. Si je regarde à l'intérieur, vous verrez que c'est exactement la même chose, à part peut-être que certains espaces sont effacés et puis ce commentaire qui mappe ce fichier à la carte source, ce qui, comme je l'ai dit, lorsque nous avons configuré le fichier tsconfig, nous permet de mapper le fichier JavaScript au fichier TypeScript d'origine ce qui nous aide débogage. Ne vous inquiétez pas trop pour la carte. Nous allons travailler avec ce fichier et, bien sûr, nous allons continuer à charger le même fichier de sortie scripts.js, qui ressemble actuellement à notre fichier TypeScript, mais c'est parce que nous ne l' avons pas réellement modifié pour qu'il soit plus TypeScript E. Maintenant, la raison pour laquelle il s'appelle TypeScript est que nous pouvons être plus précis ici dans TypeScript en définissant quels objets sont de quels types, car en JavaScript, le type d'objet est très vague, il n'est donc pas souvent clair de quel type il s'agit. Nous pouvons en fait spécifier certains objets sous la forme de certains types. Faisons-le en fait maintenant. Comme vous pouvez le voir ici, je ne cesse de faire référence à des objets similaires. J'ai référencé le tiroir deux fois, puis j'ai fait référence au bouton d' ouverture du tiroir et au bouton de fermeture du tiroir. Déplaçons-les dans leurs propres variables. En fait, déplaçons-les en constantes. Il existe deux manières de définir une valeur, alors qu'il existe en fait la variable d'origine en JavaScript, mais maintenant nous préférons utiliser const ou let. Disons si nous nous attendons à ce que la valeur change plus tard. Mais lorsque nous ciblons des éléments spécifiques du DOM, nous ne nous attendons pas à ce que cela change. Nous créons simplement une référence à cet élément. Si je peux apprendre à épeler correctement, je peux simplement le copier et le coller. Je peux le saisir et le régler pour ouvrir le bouton en utilisant le boîtier Pascal, puis je peux cibler le bouton de fermeture en le saisissant ici. Nous sommes simplement en train de refactoriser notre code ici. Évidemment, ce code fonctionne, mais nous ne faisons que le rendre un peu plus agréable. N'oubliez pas que TypeScript et SASS sont destinés à l' expérience du développeur, et non à l'utilisateur final, et celui-ci est donc le tiroir. Je vais juste appeler ça le tiroir. Ensuite, nous avons toutes nos références là-haut. Maintenant, ce que je peux faire, c'est refactoriser cela, remplacer l'endroit où cela apparaît dans le code par ce nom de variable ou ce nom de constante. Je vais entrer ici, je vais ouvrir le bouton. Nous allons également ajouter l'écouteur d' événements. Cela devient simplement un tiroir. Cela devient CloseButton dans le cas de Pascal, CloseButton, puis à nouveau le tiroir. Nous pouvons simplement le remplacer par un tiroir. Maintenant, si nous survolons OpenButton, vous pouvez voir qu'il est écrit HTMLElement. C'est le genre. Si nous passons la souris ici, HTMLElement puis voici Element. Nous pouvons être plus précis et commencer à écrire du TypeScript ici en disant as et en devenant plus précis. Le bouton d'ouverture du tiroir est en fait un élément de bouton HTML. Nous pourrions entrer ici et taper ceci : HTMLButtonElement. Maintenant, si nous passons la souris ici, vous verrez que le type est désormais plus spécifique. Au lieu de HTMLElement, il est désormais défini sur HTMLButtonElement. Si le type n'a pas été détecté automatiquement, nous pouvons le spécifier ici en tant que ButtonElement. Alors celui-ci est juste Element. Ici, nous pouvons dire HTMLDivElement. Maintenant, notre code sait exactement de quel type d'élément il s'agit, mais ce n'est pas particulièrement pratique pour l'instant. Il m'a été difficile de trouver un exemple vraiment pratique mais simple d'utilisation de TypeScript avec ce que nous avons construit jusqu'à présent, mais j'ai trouvé un moyen d' intégrer une fonction ici, et je vais appeler cette fonction ToggleDrawer. En fonction de l' état du tiroir, il va s'ouvrir ou se fermer et nous pouvons créer un bouton si nous souhaitons qui s'ouvre et se ferme à la fois avec cette méthode. Je vais créer la fonction d'une nouvelle manière scolaire et je vais mettre ici une variable pour spécifier si nous voulons qu'elle soit ouverte ou non. Je vais l'appeler IWantItOpen , puis j'utiliserai la syntaxe des flèches pour créer la fonction. Nous avons maintenant une fonction avec un seul argument. Ici, je vais faire une simple question. Je dirais que si IWantItOpen, nous allons définir l'attribut aria-hidden sur le tiroir sur false. Sinon, nous allons le définir sur true. Maintenant, si je clique sur Enregistrer et que je passe la souris dessus, vous pouvez voir qu'après IWantItOpen, cela indique n'importe lequel. Ici, il est indiqué que le paramètre IWantItOpen a implicitement un type quelconque, mais qu'un meilleur type peut être déduit de son utilisation. Au lieu que le paramètre soit de n'importe quel type, nous pouvons spécifier le type dont nous avons besoin. Évidemment, en l'utilisant comme booléen ici, je vais donc mettre deux points ici et dire booléen. Pour ceux d'entre vous qui ne sont pas aussi avancés en programmation, booléen signifie simplement une valeur vraie ou fausse. Maintenant, nous nous assurons que lorsque nous exécutons cette méthode, nous avons certainement un argument booléen qui passe par la méthode. Ce que je vais faire ici , c'est en cliquant sur OpenButton Je vais exécuter cette fonction appelée ToggleDrawer, et nous voulons qu'elle soit ouverte dans cette instance Je vais donc transmettre la valeur true, et aucune erreur n'apparaîtra. C'est bien. Ensuite, en dessous, je vais mettre ToggleDrawer false. J'ai tout bien écrit ici, donc rien ne s'affiche mal. Si je compile le TypeScript, et vous pouvez le voir ici, il se compile en JavaScript. Ensuite, je peux l'ouvrir et le fermer. Nous obtenons exactement le même résultat. Pourquoi utiliserions-nous TypeScript ? Disons simplement que nous n'utilisions pas TypeScript et que j'ai accidentellement saisi, disons simplement une chaîne ici. S'il s'agissait d'un fichier JavaScript, nous ne ferions pas passer ces lignes sinueuses car nous n' aurions pas spécifié que l'argument doit être un booléen. Prenons simplement ceci et je vais le mettre directement dans scripts.js ici. Alors, bien sûr, nous ne pouvons pas écrire cela parce que nous ne sommes plus dans TypeScript. Je vais simplement supprimer tout ce code TypeScript et laisser le code JavaScript. Je vais appuyer sur Enregistrer. Nous avons toujours celui-ci ici. Nous avons mis à jour notre fichier scripts.js et nous y avons placé la valeur de chaîne true et la valeur de chaîne false. Cela pourrait nous sembler bien. Si nous actualisons la page ici, cliquez sur « Ouvrir le tiroir », elle l'ouvrira, mais ne la fermera pas. Pourquoi ça ? C'est intéressant. Si nous accédons à notre console, il n'y aura aucune erreur, car du point de vue de JavaScript, nous n'avons rien fait de mal. C'est ce que je veux dire par langage grossièrement dactylographié. Ce n'est pas du JavaScript très strict Vous pouvez donc créer ces bogues sans erreur Vous ne savez donc pas quel est le problème ni comment le résoudre. Le problème ici est que nous recherchons un booléen ici si ifWantItOpen. La vérité est que l'une ou l'autre de ces affirmations apparaîtra comme vraie car ce ne sont pas toutes deux des chaînes vides. Si je vais ici et suppose que c' est toujours vrai, alors ce journal de console devrait fonctionner. Je dois juste dire que IWantItOpen est vrai. Si je clique dessus sur Enregistrer, allez ici et regardons notre console. Si je clique sur « Ouvrir le tiroir », IWantItOpen est vrai, oui, assez bien. Mais si nous cliquons sur Fermer le tiroir, cela indique toujours que IWantItOpen est vrai. Cela est dû à quelque chose en JavaScript appelé valeurs véridiques. Une chaîne non vide est une valeur véridique, elle est donc vraie même si le contenu du texte est faux. Bien sûr, c'est un petit bogue qui peut être difficile à déchiffrer en JavaScript, mais si nous utilisions TypeScript, vous pouvez voir ici que nous obtenons ces lignes ondulées rouges. Il indique qu'un argument de type chaîne n'est pas assignable au paramètre de type booléen. Il a été spécifié qu'il doit s'agir d'un booléen ici à côté de notre argument, donc il n'attend qu' un booléen et nous aurons donc une erreur avant même de lancer la compilation. Ensuite, si je clique sur tsc, vous pouvez voir que cela ne nous permettra même pas de compiler parce que erreurs sont détectées avant même que nous n'arrivions au résultat final, avant même de passer à la production. C'est bien. Nous préférons capturer nos erreurs au début notre développement plutôt que de les voir apparaître et de devoir ensuite résoudre le bogue. C'est l'avantage de TypeScript. Comme vous pouvez le constater, cela ne nous permettra pas de le compiler tant que nous n'aurons pas résolu ce problème. Nous écoutons simplement le message d'erreur dans TypeScript, puis nous le remettons en booléens. Nous avons éliminé toutes les lignes ondulées. Exécutons à nouveau tsc. Génial. Il n'y a pas eu d'erreur. Si je lance à nouveau ma page Web, vous pouvez voir que tout fonctionne à nouveau correctement. Et voilà. C'est TypeScript. C'est tout ce que je vais aborder aujourd'hui. TypeScript, encore une fois, c'est l'un de ces sujets sur lesquels vous pourriez créer un cours de quatre heures créer un cours de quatre heures. Il s'agit plutôt du programme E, donc pas vraiment pour les débutants, mais si vous le voyez utilisé dans un projet, vous savez au moins à quoi il sert. il s'agit vraiment d'un outil de développement Web frontal moderne nos jours, il s'agit vraiment d'un outil de développement Web frontal moderne, même si c'est un peu plus difficile à comprendre. Je voulais l'inclure afin que vous puissiez voir certains des outils que nous utilisons dans le développement Web frontal en action. est là que se trouve probablement l'une des leçons les plus avancées, probablement la plus avancée de cette classe. Je m'en sors très rapidement. Félicitations si vous continuez à suivre le rythme. Je vais le laisser là pour TypeScript. Passons aux frameworks JavaScript dans la vidéo suivante. 9. Cadres Javascript: Dans cette vidéo, nous allons parler des frameworks frontaux. J'ai actuellement l' état de JavaScript. Il s'agit d'une enquête annuelle. J'ai le site Web correspondant sur mon écran, et nous parlerons de certains des frameworks frontaux JavaScript les plus populaires qui ne font qu'un tout et nous parlerons de certains des JavaScript les plus populaires petit peu. Mais avant d'entrer dans le vif du sujet, je voudrais prendre du recul et discuter de jQuery. jQuery était la bibliothèque JavaScript dont j'ai parlé dans mon premier cours Skillshare intitulé Understanding Web Development, et jQuery était très populaire à cette époque, en 2018 et avant, car ce que l'on appelle un JavaScript Vanilla, c' est-à-dire un JavaScript sans bibliothèque ni framework, n'était pas aussi avancé qu'aujourd'hui. Comme vous l'avez vu dans la vidéo que nous venons avec TypeScript et JavaScript, nous avons pu faire tout cela sans jQuery, et nous sommes maintenant en mesure d'exécuter de nombreuses fonctions que jQuery nous a permis de faire dans les versions les plus modernes de JavaScript. jQuery est devenu de plus en plus obsolète, mais ce n'est pas le seul facteur. Il y a un autre facteur, que nous entrons plus en plus dans le monde des applications Web, où les sites Web ressemblent de plus en plus à des programmes exécutés dans votre navigateur et de moins en moins sites Web dotés de fonctionnalités minimales. Si vous avez de l'expérience avec jQuery ou si j'ai déjà suivi le cours, vous saurez comment fonctionne jQuery. C'est très similaire à ce que nous avons fait ici où nous avons saisi différents éléments. Nous leur avons ajouté des auditeurs d'événements, puis si certains événements étaient déclenchés, nous en déclenchions d'autres. Nous pouvons tout faire en travaillant avec le DOM, alias le Document Object Model, qui comprend essentiellement tous les éléments de notre document HTML. Nous pouvons les modifier à l'aide de jQuery, mais maintenant presque aussi facilement via Vanilla JS. Vanilla, encore une fois, signifie qu'il n'est attaché à aucune bibliothèque ou framework. C'est juste du pur JavaScript. JavaScript, en tant que langage lui-même a rattrapé son retard en termes de fonctionnalités. Mais pour les tâches où nous gérons l'état, exemple lorsque nous introduisons des données sur le front end puis que nous les manipulons sur le front end en temps réel, nous commençons à bénéficier d'une sorte de framework frontal. Je sais que cela semble très conceptuel et théorique pour le moment, mais vous verrez en construisant quelque chose dans Vue dans cette leçon, à quel point il est logique d'utiliser un framework frontal. Avant cela, examinons certains des frameworks et bibliothèques frontaux les plus populaires utilisés aujourd'hui. Ici, selon l'enquête, vous pouvez voir lesquels sont populaires, lesquels sont en baisse, lesquels sont en hausse au moment où vous regarderez cette enquête 2022 ne sera peut-être pas la plus récente. Revenez donc sur l'état du site Web JavaScript et vous pourrez voir quels frameworks sont toujours populaires, deviennent moins populaires, gagnent en popularité. Mais les trois principaux sont React, Vue et Angular, comme indiqué ici. Mais comme vous pouvez le constater, Angular a vraiment perdu en popularité, et celui-ci appelé Preact, que je n'ai jamais utilisé auparavant, est plus populaire qu'Angular à première vue. Ember était quelque chose qui était populaire à l' époque, mais qui continue de décliner. Svelte est devenu très populaire. Il y en a de nouveaux qui apparaissent tout le temps. C'est vraiment dingue. Il y en a trop pour en parler. Mais ceux qui existent depuis un certain temps, React, Vue et Angular, sont toujours très populaires. De toute évidence, Vue a légèrement diminué, mais React a également légèrement diminué , mais c'est parce que la concurrence s'est intensifiée et qu'il y en a de nouvelles, mais les trois principales étaient React, Vue et Angular. Maintenant, la majeure partie de mon expérience se fait avec Vue JS Je pense qu'il est facile de démarrer avec Vue et c'est celui que j'utilise le plus. Dans cette vidéo, je vais montrer ce que fait un framework frontal dans Vue, mais les mêmes concepts d'utilisation d' un framework frontal devraient s'appliquer à React, Angular ou à l'un de ces autres frameworks frontaux. Avant de créer une certaine interactivité frontale avec Vue, examinons un exemple concret. Voici un site Web de commerce électronique que j'ai aidé à créer, et Vue est utilisé dans de nombreux endroits ici. Si nous entrons dans une page de collection, examinons la collection de vieilles bottes. Si nous faisons défiler la page vers le bas, vous pouvez voir que nous avons ces filtres ici. Nous pouvons filtrer par hommes, femmes ou enfants, et ce filtre est ajouté ici, et tout cela sans recharger la page. Nous avons ici beaucoup d' interactivité frontale. Il s'agit en fait d'utiliser une API et de fouiller dans les données dorsales. Mais comme vous pouvez le voir ici, aucun produit ne se trouve dans ces fourchettes de prix, et nous pouvons filtrer par couleur, ce qui nous fournit une interactivité frontale. Nous avons ici notre état, qui est l'état des filtres de collection, et je peux mettre à jour l'état à la volée et la page y répondra. La même chose peut être dite si nous examinons un produit en particulier. Vous pouvez voir ici la sélection des variantes. Ici, il n'y a pas grand-chose qui change lorsque nous changeons de variante, mais comme vous pouvez le voir ici, la taille 7, il n'en reste qu'une. Si nous passons à la version 7.5, cela détermine automatiquement le niveau de stock et nous indique une baisse de stock. Certains d'entre eux ont plusieurs variantes, je pense que c'est le noir ici. Nous pouvons charger de manière plus dynamique ici. Voilà, celui de Kununurra, je pense qu'il a de multiples dimensions. Vous pouvez voir ici que si nous sélectionnons certaines options et trouvons une variante qui n'existe pas, elle indiquera « désolé, n' est pas disponible » et nous masquera le bouton Ajouter au panier. Mais si nous en sélectionnons un qui est disponible, nous avons un panier ici, et ce panier est également Vue. Nous pouvons mettre à jour le nombre d'articles dans ce panier, puis le sous-total ici et le sous-total ici augmentent, et nous pouvons même supprimer complètement cet élément sans recharger la page. Vous pouvez voir que certaines fonctionnalités de l'application sont disponibles sur notre page d'accueil. C'est un grand pas en avant par rapport au Web 1.0, qui ne fait qu'afficher des informations sur la page. Créons en fait une fonctionnalité de type similaire ici. Refactorisons le code du tiroir , puis ajoutons autre chose. Pour le tiroir, retirons ce bouton du contenu principal et mettons-le peut-être dans le menu de la barre latérale. Voyons voir. Tiroirs ouverts, tiroir fermé. OK, cool, puis remplaçons cette page par une page produit. Soyez indulgent, je vais créer une division de produit et à l'intérieur de cette division de produit, je vais avoir deux colonnes, une pour les informations sur le produit, puis une pour l'image, et nous allons commencer par la statique. Je vais prendre quelques images et les insérer dans notre dossier ici. Le produit en question sera une chaussure Nous avons donc du blanc à rayures noires et la deuxième variante sera le noir à rayures blanches opposé Ce sont deux images WebP. Je vais revenir ici et commençons par le noir à rayures blanches. Je vais y mettre cette image, puis je mettrai les informations sur le produit pour cette chaussure, qui est une chaussure Nike. Il s'agit d'une Nike Air Force 107. Je crois que le nom Air Force est composé de deux mots. Ensuite, je vais créer un div avec la classe de prix ici. Je vais mettre le prix de 170€ en dessous. Je vais mettre une liste déroulante pour sélectionner la variante que nous voulons. Nous l'avons fait dans la vidéo sur HTML. On peut le mettre dans l'option, noir avec bande blanche. La seule chose que nous n'avons pas faite dernière fois, c'est de définir une valeur pour cela. La valeur est que ce sera noir avec une bande blanche. voilà, puis la deuxième valeur sera l'inverse. Blanc avec bande noire et puis ici, blanc avec bande noire. Je vais appuyer sur « Enregistrer » là-dessus. Regardons à quoi cela ressemble dans notre navigateur. Comme vous pouvez le voir ici, l'image est gigantesque et il faut y apporter un certain style . Revenons en arrière. Nous utilisons toujours SAS ici. Allez dans le fichier styles.css, et allons-y avant les requêtes multimédia. Ce n'est pas censé être ici, c'est uniquement censé figurer sur le CSS de sortie. Je vais m'en débarrasser, puis nous pourrons ajouter les styles des produits, et comme nous utilisons SAS, nous pouvons utiliser tous les outils d' imbrication à notre disposition. Ce que je vais faire, c'est ne pas trop parler mon schéma de pensée avec ces styles, car nous avons déjà parlé du CSS, mais je vais simplement ajouter quelques styles ici pour nous aider à démarrer, car dans cette leçon, nous allons essayer d'en savoir plus sur Vue. Je vais configurer le produit pour qu'il affiche grille, puis nos colonnes de modèle seront 1FR, une, donc deux colonnes de taille égale. Je vais faire en sorte que la largeur maximale de cette zone soit de 100 %. Parfois, les limites de l'image peuvent sortir de son contenant, nous voulons donc éviter cela. Je vais ajouter un peu de rembourrage à toute cette zone, 20 pixels de rembourrage, puis un espace de 20 pixels entre ces deux colonnes. Ensuite, comme nous utilisons SA, je peux simplement imbriquer l' image qui se trouve à l'intérieur du div avec des produits et je peux également modifier cela. Encore une fois, nous voulons que la largeur maximale soit de 100 %, et je ne pense pas que nous ayons besoin de spécifier le début et la fin. Si je vais ici, ce n'est pas grave. Cela devrait fonctionner. Je ne sais pas pourquoi c'est le cas. Ça fonctionne un peu mal ici. Laisse-moi le charger à nouveau. Nous y voilà. Nous y voilà. Nous pouvons toujours ouvrir notre tiroir ou consulter la page de notre produit et y voir notre image. Je pense qu'il est plus logique d'avoir l' image sur le côté gauche. Je vais le déplacer. Image sur la gauche, puis informations sur le produit sur la droite. Vous pouvez voir ici que lorsque nous modifions notre liste déroulante, rien ne se passe car, bien sûr, nous devons mettre à jour l'image, le prix si nécessaire, et toute autre information lorsque nous mettons à jour ici. Maintenant, essayons d'abord cela dans Vanilla JavaScript et voyons comment cela fonctionne. Cette fois, je ne vais pas le mettre dans les scripts ici. Ce que je vais faire, c'est le mettre en ligne pour que nous puissions le voir sur la même page. Allez en dessous ici, sous les produits, et saisissez le script. Avant d'écrire des récepteurs d'événements destinés à interagir sur la page, je vais créer un tableau de variance Je vais donc dire product_variants. Je ne pense pas que nous en ayons besoin pour le moment. Donne-nous un peu plus d' espace. C'est sympa. Ensuite, je vais ouvrir un tableau, et ce sera un tableau d'objets. Passons aux premiers attributs. Ainsi, chaque variante aura un identifiant associé à un identifiant d'un style. Ce sera juste ce qui se trouve dans ce champ de valeur, donc le premier sera noir avec des rayures blanches ou plutôt une bande blanche au singulier. L'image va être liée à l'adresse de l'image. Avec la bande noire à rayures blanches, nous y sommes. Copiez simplement cette adresse, puis le prix de 170€. Je vais copier cet objet, créer la deuxième variante à partir de cela. L'identifiant sera deux, puis au lieu du noir avec une bande blanche, blanc avec une bande noire. Ensuite, faisons en sorte que le prix soit légèrement différent afin que nous puissions apporter un autre changement sur la page. Mais en réalité, ils sont tous les deux au même prix sur le site Web de Nike. Nous pouvons maintenant commencer à écrire à nos auditeurs d'événements. Comme je vous l'ai déjà montré, je veux m'assurer que les éléments de la page ont d'abord été chargés Je vais donc ajouter un écouteur d'événements pour contenu DOM de cet événement chargé, puis ouvrir une fonction ici. Maintenant, cela ne fonctionnera que lorsque tout sera chargé sur la page . Dans ce cas, je vais cibler cette sélection ici. Donnons-lui une classe, une classe de produits, sélectionnons des variantes. Appelons-le comme ça. Je vais descendre ici. Des documents. En fait, séparons-les. Vous pouvez le voir ici. Il y a une sélection ici que nous ciblons. Documents, sélecteur de requêtes, puis nous pouvons le cibler par cette classe. N'oubliez pas que nous mettons le point dedans en premier pour indiquer la classe, la sélection de la variante. Cela nous donnera l' élément de sélection, qui est la liste déroulante, puis nous allons ajouter un écouteur d'événements pour l'événement de changement. Lorsque cela aura changé, nous écrirons ici une fonction. Je vais fermer ça. En fait, nous voulons récupérer l'élément à l'origine du changement, afin de pouvoir le faire en insérant un argument ici, puis en le déconnectant. Avant de prendre davantage d' avance, vérifions-nous simplement que cela fonctionne. Je vais être capable de trouver les cibles actuelles de l'événement, c'est-à-dire l'élément sur lequel l'événement s'est déclenché. Ouvrons notre console, puis si je change cela, vous verrez que nous recevons le code HTML pour le retour de sélection. Ce que je vais faire, c'est enchaîner la valeur ici, appuyer sur « Enregistrer » pour actualiser, et ici vous pouvez voir que la valeur est blanche avec une bande noire. Lorsque je sélectionne le noir avec une bande blanche, nous récupérons la valeur. Maintenant, ce que nous pouvons faire, c'est commenter cela et renvoyer l'objet à partir de cette variance maintenant que nous savons lequel nous essayons de sélectionner. Tout d'abord, je vais stocker cette valeur en tant que constante, donc je vais dire que le style sélectionné constant est égal à la valeur qui en ressort. Ensuite, je vais sélectionner la variante du produit en utilisant une méthode de recherche. Ce que nous pouvons faire, c'est cibler l'ensemble du tableau ici, puis nous pouvons trouver un élément spécifique dans le tableau en utilisant find. Cela peut sembler un peu bizarre mais dans la fonction ici, nous pouvons passer en revue chacune des variations Je vais donc taper une variante, nommez-la. Ensuite, nous mettons ici la condition après le retour de l'objet variant que nous souhaitons renvoyer. Renvoie le style de variante, qui est l'attribut que nous essayons de faire correspondre au style actuellement sélectionné. Passons maintenant au journal de la console pour voir si cet objet revient avec succès. Actualisation de la variante du produit ici. Maintenant, si je passe ici, vous pouvez voir que nous avons récupéré l'objet dans son intégralité. Nous pouvons utiliser cet objet pour mettre à jour les différents éléments de notre page produit. Ensuite, il suffit de spécifier partout où nous voulons que cela change. Nous devons sélectionner tous les différents éléments et mettre à jour manuellement leurs attributs. Regardons l'image, nous allons donc passer au document, sélecteur de requêtes, puis nous allons créer des produits, des images. Nous utilisons un sélecteur CSS pour le trouver ici, puis nous mettrons à jour ce fichier, le SRC, en fonction de la nouvelle variante de produit que nous avons sélectionnée, et nous trouverons l'attribut Image correspondant. Ensuite, nous allons mettre à jour le prix, qui est, je pense, le seul autre jusqu'à ce que nous commencions à ajouter plus de prix au produit, puis pour celui-ci, nous devons simplement modifier le prix en points de la variante HTML interne du produit pour obtenir le prix de l'objet. Très bien, cliquez sur « Enregistrer », actualisez, et maintenant vous pouvez voir quand l' événement de modification est déclenché, nous déterminons l'objet qui contient toutes les informations, puis nous échangeons manuellement le code HTML interne de cet élément et le SRC de cet élément pour modifier l'image qui s'aligne sur l'objet nouvellement sélectionné. Maintenant, si l'on prend un exemple simple comme celui-ci, il n'y a que deux points sur lesquels nous modifions des informations. Vous pouvez parfaitement utiliser le JavaScript Vanilla ici. Mais le problème que nous avons ici est pas vraiment un, mais c'est quelque chose qui peut être amélioré, c'est que nous devons le spécifier. Cela commence par un certain SRC, avec une certaine image, et cela commence par une certaine option sélectionnée, un certain prix, puis à chaque sélection, nous devons trouver la variante dans la liste ici, ce qui est très bien. Mais ensuite, nous devons mettre à jour manuellement tous les éléments. Il n'y en a que deux ici, donc ce n'est pas grave. Mais lorsque nous commençons à avoir un projet plus important, qu'il y a une description du produit, peut-être différentes variantes, des données qui se nourrissent des autres données, cela peut devenir ingérable. C'est pourquoi nous avons quelque chose comme un framework frontal. Nous disposons d'un framework frontal pour de multiples raisons, mais l'une des principales est la réactivité. Maintenant, pour comprendre cela, nous allons devoir le voir en action. La façon dont je vais procéder maintenant est de refactoriser ce code dans Vue. Parlons maintenant de Vue. Vue est l'un des trois frameworks frontaux populaires que j'ai mentionnés au début de la vidéo. React Vue et Angular, et Vue est le framework frontal avec lequel j'ai le plus d'expérience Je vais donc utiliser Vue comme exemple pour cette vidéo. Vue est également très facile à configurer et à intégrer à n'importe quel projet sur le Web. Que vous utilisiez la CLI pour créer une application complète basée sur Vue ou que vous l'introduisiez simplement dans certaines pages. Vue est assez flexible, donc j'aime l'utiliser et je pense que c'est un bon choix pour cette vidéo. Si vous souhaitez en savoir plus à ce sujet, vous pouvez vous rendre sur Vue js.org. Vous pouvez l'installer de différentes manières, mais nous allons utiliser la méthode CDN. CDN, qui signifie réseau de diffusion de contenu. Nous pouvons essentiellement importer le script à partir d'une source externe, puis commencer à l'utiliser dans n'importe quel fichier HTML. ce que je vais faire, je ne vais pas utiliser celui-ci ici. Si nous revenons ici, je vais maintenant commenter cela car nous allons le faire dans Vue. Avant la balise de script, je vais insérer notre référence à la dernière version de développement de Vue, c'est ce que nous obtiendrons à partir d'ici, https://umpkg.com/vue@next. Ensuite, ce que nous allons faire, c'est créer notre application Vue. Nous avons besoin d'un objet d'options, je vais donc l'appeler options. Ce sera un objet et c'est là que nous avons défini tous nos paramètres pour l'application Vue, puis ici je vais écrire Vue Creates App. Le premier et le seul argument sera ces options, cet objet qui contient les options. Ensuite, je vais enchaîner une méthode de montage par points, puis nous devons déterminer où nous allons la monter. Passons à cette zone principale et exécutons l' application dans cette division. Je pense que nous sommes déjà dans la division, alors sortons. Voici le div complet de la section principale, donc je vais le copier et le coller ou le couper et le coller en dessous. Nous voulons la garder en dehors de la division que nous ciblons, et appelons-la Vue App. Ensuite, nous pouvons aller ici monter l'application Hash Vue. À l'intérieur de ces options, nous pouvons stocker des données Nous le faisons donc en ajoutant une méthode, puis cette méthode renvoie un objet, puis nous pouvons placer cet objet dans nos variantes de produit. Nous pouvons simplement copier ces deux objets et les ajouter ici. Ils sont actuellement commentés, donc je vais simplement supprimer ces commentaires Nous avons maintenant des données sur notre instance Vue, ce tableau de variantes de produits, qui contient le tableau de toutes les différentes variantes de produits. Après ce tableau, je veux stocker la variante actuellement sélectionnée. Je vais juste le faire via le style actuel, et nous allons le définir par défaut, qui est noir avec bande blanche. Il s'agit de nos données, de la sélection actuelle, puis des deux objets qui constituent nos variantes. Il peut très bien s'agir de plusieurs objets, ce n'est qu'un exemple de base. Maintenant, tout ce que nous allons faire, en dehors de cette méthode de données , c'est insérer quelque chose appelé calculé. Ouvrez un objet dans Computed, et voici où nous insérons les propriétés calculées. Les propriétés calculées sont des propriétés réactives, essentiellement toutes les données que nous utilisons dans l'instance Vue pour les créer. Si ces données sont mises à jour, ces champs calculés sont également mis à jour. C'est l'endroit idéal pour placer nos variantes actuelles, qui seront stockées ici en tant que méthode. Avec les variantes calculées, nous voulons simplement renvoyer une valeur unique. Mais une seule valeur peut dépendre d'autres données que nous avons dans notre application Vue. Tout comme nous l'avons fait ici où nous avons trouvé une variante de cette gamme de variantes de produits, nous allons faire la même chose ici, mais nous allons le faire à la manière ES6, donc de manière plus moderne. Ce que nous allons faire, c'est procéder ainsi, ce qui nous donnera accès à l'instance Vue, nous pourrons ensuite explorer les données, puis nous allons dire productvariants.find, puis la version courte de ce que nous avions ici, variantes où le style des variantes est égal au style actuel, mais nous devons dire this.currentstyle. Nous y voilà. Cela devrait suffire. Maintenant que nous avons défini ces options, uniquement les deux variables présentes dans nos données et la propriété calculée, nous pouvons désormais mettre à jour notre code HTML dans cette application Vue avec des attributs Vue spéciaux, ce qui garantira que toutes les données dans notre code HTML sont à jour. Ici, afin de rendre cela dynamique, je vais remplacer le src par deux points, puis nous y ajouterons les données de la variante actuelle. Je vais dire currentvariant.image. Ici, pour le prix, je vais le supprimer et ajouter un attribut appelé v-html, et nous voulons le définir sur le prix actuel de la variante. Maintenant, ici, nous n'avons plus besoin de cette classe, nous suffit d'ajouter l'attribut spécial Vue du modèle V. Toutes les valeurs que nous définissons ici seront directement intégrées aux données stockées dans notre application Vue Nous allons donc obtenir les données du style actuel pour modéliser la sélection ici. Je vais appuyer sur « Enregistrer » là-dessus. Maintenant, actualisons et passons à notre page ici, et voyons si cela fonctionne. Nous passons à autre chose, et vous pouvez maintenant voir que le prix change et que l' image change, et tout cela se fait de manière dynamique. En fait, si vous avez installé Vue DevTools, donc si je vais ici, je pense que je dois rouvrir mes DevTools ici. Vous pouvez voir qu'il y a un onglet pour Vue. J'ai installé Vue DevTools et vous pouvez voir ici une représentation en direct des données de l'ordinateur. Vous pouvez voir ici que la variante actuellement sélectionnée est la variante numéro 2, ce qui correspond au style actuel de blanc à bande noire, et vous pouvez voir ici les données brutes des variantes de produits. Si je viens de changer cela, vous pouvez voir les changements de style actuels et donc, la variante actuelle. Maintenant, nous ajoutons variables ici pour le src, pour le prix, pour le prix, et cela se met à jour lorsque nous mettons à jour notre style actuel, qui est maintenant lié à tout ce que nous sélectionnons ici. Nous n'avons qu'à effectuer une petite configuration de base, et nous obtenons maintenant cette réactivité automatique. Vous pensez peut-être que cela a pris autant de code que nous en avons fait ici et autant de temps à configurer. Mais lorsque l'application devient de plus en plus complexe, la réactivité devient encore plus importante. Si nous devions ajouter, disons simplement une description dans chacune de ces descriptions, et nous dirons qu'il s'agit d'une chaussure noire à rayures blanches, puis nous modifierons la description ici pour qu'il s' agisse d'une chaussure blanche à rayures noires. Maintenant, nous pouvons facilement entrer ici, créer un nouveau div, insérer du v-HTML, puis récupérer la description à partir de la variante actuelle. Ajoutez cela ici. Maintenant, si nous actualisons cette page et que nous le modifions, nous modifierons davantage de données à l'écran. De toute évidence, ce n'est pas parfaitement configuré, le style n'est pas incroyable. Mais comme vous pouvez le constater, lorsque nous commençons à stocker plus de données, plus d'informations sur notre page ici, le composant de réactivité de Vue devient très pratique. J'espère que vous pouvez constater que, évidemment, plus le projet devient complexe, plus il bénéficie de Vue. Mais comme vous pouvez le constater, il s'agit ici d'un paradigme différent. En ajoutant ces valeurs dynamiques l'aide de ces attributs Vue dans notre code HTML, vous éviterez de devoir exécuter ces écouteurs d' événements, puis de mettre à jour manuellement le contenu à l'aide de Vanilla JavaScript, que nous avions ici. Voici un exemple de framework frontal sous la forme de Vue et la façon dont la réactivité est utile. Encore une fois, si vous ne voulez pas l' utiliser ou si vous ne le comprenez pas, vous n'êtes pas obligé de le faire. Il s' agit d'une fonctionnalité facultative, mais très populaire dans le développement Web frontal, en particulier lorsque vous commencez à créer sites Web et des applications Web super interactifs. Mais bien sûr, ce n'est pas obligatoire, vous pouvez toujours utiliser Vanilla JavaScript comme nous l'avons fait plus tôt dans cette vidéo si vous le souhaitez. Si vous n'en ressentez pas le besoin ou si vous n'en voyez pas l'avantage, hésitez pas à l'ignorer. Croyez-moi quand je dis cela, si vous commencez à vous lancer dans projets plus complexes avec beaucoup d'interactivité, vous commencez à valoriser quelque chose comme une Vue ou une réaction lorsque vous commencez à vous retrouver dans ces situations. 10. Tailwind CSS: Dans cette vidéo, nous allons parler de Tailwind CSS, un framework CSS open source. La principale caractéristique de cette bibliothèque, comme indiqué ici est que, contrairement à d'autres frameworks CSS comme Bootstrap, elle ne fournit pas de série de classes prédéfinies pour des éléments tels que des boutons et des tableaux. Nous avons parlé de Bootstrap comprendre le développement Web. Il était très populaire à l' époque et l'est toujours, mais le truc avec Bootstrap, c'est quand vous l'utilisez sur des sites Web. Ils ont tous l'air de se ressembler. Tailwind n'est pas comme ça en comparaison. Au lieu d'une bibliothèque de composants, il s'agit d'un ensemble d'utilitaires, et ces utilitaires nous permettent d'écrire moins de CSS et d'utiliser ces utilitaires à la place. Vous comprendrez ce que je veux dire dans une seconde. Jetons un coup d'œil au site Web et leur site Web est plutôt bon, comme vous pouvez le voir ici. Vous pouvez le voir se dérouler en temps réel ici. Au lieu d'écrire du CSS, vous pouvez simplement ajouter classes spéciales Tailwind dans le div, puis il le mettra à jour à la volée. Vous pouvez voir ici que nous mettons à jour les textes, nous mettons à jour la mise en page. Tout se passe sans passer par le CSS et vous pouvez voir ici que nous pouvons même effectuer des requêtes multimédia à partir du code HTML. Nous pouvons modifier les attributs en fonction de la largeur de l'écran à partir du code HTML. Personnellement, je ne suis pas très fan de l' ajout d' autant de classes dans un seul élément. Vous pouvez commencer à voir que le code HTML commence à devenir un peu compliqué lorsque vous l'utilisez, mais ce que vous pouvez faire pour y remédier , c'est créer vos propres classes , puis les appliquer dans une classe , puis les remplacer ici par une classe unique. C'est ce que je vais également vous montrer dans cette vidéo. Ici, vous pouvez en savoir plus à ce sujet. Voyons de quoi d'autre ils parlent. Oui, comme je l'ai dit, il ne s'agit pas de composants particuliers , mais de classes utilitaires Vous pouvez donc créer vos propres composants ici, mais utiliser ces classes utilitaires qui ont également des définitions définies Vous verrez donc que cela nous oblige à nous adapter à une certaine grille. Eh bien, cela ne nous force pas, mais nous encourage à adopter des tailles différentes, ce qui nous aide également à créer un design plus cohérent. C'est bien si vous ne comprenez pas le design, vous pouvez simplement faire des suppositions à portée de vue. Il est également livré avec des combinaisons de couleurs, donc je pense avoir vu quelque chose à propos des combinaisons de couleurs ici. L'un d'eux s'appelle Slate. C'est en fait une très belle page d'accueil. Vous pouvez voir ici text-slate-500, vous pouvez donc utiliser ces combinaisons de couleurs. L'un d'eux s'appelle ardoise. Vous pouvez voir des exemples sur la page d'accueil, mais vous devez consulter la documentation. Nous y voilà. Nous pouvons entrer dans des documents, combinaisons de couleurs ou des couleurs de décoration de texte. Comment entrer dans les combinaisons de couleurs si je tape en ardoise ? Parfois, la documentation est un peu difficile à rechercher. Nous y voilà. Sous Personnalisation, vous pouvez accéder à Couleurs et vous pouvez voir ici que nous avons ces palettes de couleurs qui sont intéressantes. Ainsi, si nous choisissons une palette de couleurs, nous pouvons choisir de créer notre application dans ces différentes nuances de cette couleur. Quoi qu'il en soit, nous verrons tout cela en pratique très prochainement Nous devons donc créer un projet Node pour cela. Nous pouvons utiliser un CDN, mais ce n'est pas aussi simple que ce que nous venons de faire avec Vue. Vous avez vu ici qu'au lieu d' installer le package Vue, nous avons simplement pris vue stocké sur le serveur de quelqu'un d'autre et l'avons introduit ici. Pour cela, nous allons intégrer le code Tailwind, et l'avantage est que nous ne dépendons pas d'un serveur externe, en particulier lorsque nous exécutons tant de choses différentes à la fois. Si nous ajoutons le fait de faire trop de requêtes externes pour récupérer des bibliothèques, cela ralentira notre application et pourrait entraîner son échec Nous allons donc créer un projet de nœud ici. L'avantage d'en faire un projet de nœud est que nous pouvons commencer à installer modules de nœuds dont nous avons déjà parlé lorsque nous avons examiné npm et que nous pouvons commencer à les utiliser dans notre code. Il est installé avec le répertoire et c'est un système standardisé qui nous évite d'avoir à appeler du code externe ou le code est stocké dans notre propre projet. Faisons-le tout de suite. Je vais ouvrir un terminal appuyant sur « Shift Control Backtick ». Je vais ouvrir un nouveau terminal ici , puis je vais exécuter npm init. Avant de faire cela, nous devons à nouveau vérifier que npm est installé. Oui, nous le faisons. Nous pouvons maintenant faire npm init. Cela fonctionne donc nous pouvons écrire ce que nous voulons dans chacune de ces options, mais je vais juste appuyer sur « Enter ». Nous n'avons pas besoin de spécifier d'informations particulières ici , puis nous allons obtenir un fichier package.json. Par défaut, le nom sera quel que soit le nom du dossier. La version par défaut sera 1.0.0. La description sera vide, comme vous pouvez le voir ici pour toutes les autres valeurs par défaut. L'un des avantages de disposer de ces fichiers package.json est de pouvoir configurer ici nos propres scripts qui permettront de gérer le processus de génération de Tailwind, mais l'essentiel de ce package.json est de stocker la liste des packages dépendants dont nous avons besoin pour exécuter cette application ou cette page Web en particulier. Très bien, alors sans plus tarder, installons les vents arrière. Je vais écrire npm install. Je vais mettre l'indicateur D qui va l'installer en tant que dépendance de développement , puis je vais mettre tailwindcss qui est le nom du package. Je vais appuyer sur « Entrée » là-dessus, et maintenant l'installation va se faire, et quand il s'installera deux choses vont se produire. Nous allons obtenir ce nouveau dossier appelé node_modules, puis dans notre fichier package.json , vous pouvez voir que nous avons la version 3.2.7 de tailwindcss qui est probablement la dernière version au moment de l'enregistrement. Nous allons l'avoir dans nos devDependencies et tout le code dont nous avons besoin pour cette version de tailwind.css sera avons besoin pour cette version de tailwind.css stocké dans notre dossier node_modules. Dans ce dossier, si nous y allons, vous pouvez y voir des tonnes et des tonnes de packages différents, y compris tailwind.css, et la raison pour laquelle il y a tous ces autres packages ici est qu'il existe une arborescence de dépendances Tailwindcss peut donc dépendre d'autres modules qui ont également leurs propres dépendances Ainsi, toutes les dépendances descendent, tous les packages obtiennent installé dans vos modules de nœud. Si nous accédons au fichier package.json de tailwinds, que vous pouvez voir ici, regardez toutes les devDependencies ici, et il installera toutes ces devDependencies et leurs devDependencies également, donc c'est à cela que sert le temps de chargement. Chacun de ces packages possède son propre package.json, et ils peuvent donc s'empiler les uns sur les autres . Il s'agit essentiellement du système npm. Lorsque nous publierons notre projet npm sur le Web plus tard dans ce cours, je vous montrerai comment procéder. Nous ignorons complètement ce dossier car ce document enregistre la DevDependency Chaque fois que nous ouvrons ce projet sur un nouvel ordinateur, même s'ils ne possèdent pas le dossier node_modules , ils peuvent facilement le créer en tapant simplement npm install et toutes les devDependencies seront installées. Faisons-le tout de suite. Supprimons complètement ce dossier node_modules, puis je lancerai simplement npm install. Je n'ai pas supprimé le DevDependency du package.json, donc si j'exécute npm install, il réinstallera à nouveau tous les modules du nœud. Nous n'avons pas réellement besoin de suivre ou transmettre cet ensemble de dossiers à qui que ce soit. Nous pouvons simplement transmettre le package.json et toute personne qui exécute nos projets peut simplement exécuter npm install et obtenir les mêmes modules que nous. J'espère que cela vous convient. Cela a du sens pour toi. Maintenant, je vais désactiver le compilateur Live Sass car nous allons maintenant créer notre CSS en utilisant Tailwind. Je ne veux pas vous embrouiller en combinant Sass et en essayant d' intégrer tout cela. Gardons-les séparés, afin de ne plus travailler avec ce fichier scss et de faire ce que nous allons faire à la place, afin de pouvoir retourner à notre terminal ici. Ce que nous allons faire à la place, c'est créer un fichier input.css et un fichier output.css ici, puis nous devons simplement ajouter ce fichier output.css à notre index ici et passons simplement des styles à la sortie. En gros, je l'ai fait parce que nous allons mettre tout notre code Tailwind ici, puis exécuter la compilation Tailwind, il va entrer dans ce fichier output.css et c'est ce que nous voulons inclure dans notre document HTML. Si je vais ici, vous verrez que nous perdons tout notre style, mais nous allons le reconstruire en fonction du vent arrière, alors allons-y dès maintenant. La façon dont nous pouvons le compiler est de taper npx tailwind -i input.css. Je les ai nommés très simplement pour que vous puissiez voir clairement quels sont le fichier d'entrée et le fichier de sortie, puis l' indicateur -O pour déterminer la sortie qui s'appelle simplement output.css. Si je l'exécute maintenant et que nous examinons output.css, nous n'avons encore rien car j'ai oublié de mettre quelques directives ici. Je vais ajouter une base de vent arrière, donc nous allons ajouter des styles de base, composants de vent arrière et des utilitaires de vent arrière, donc voici du code pour les vents arrière. Réexécutons cette commande. Je peux simplement appuyer sur app puis appuyer sur « Entrée », puis si nous regardons dans output.css, vous pouvez voir maintenant que tout ce CSS passe. Donc, si nous regardons ici, actualisons et l'une des choses que Donc, si nous regardons ici, vous remarquerez propos de tailwindcss, c'est qu'il supprime à peu près tous les styles HTML standard dont nous avons parlé dans les vidéos précédentes. Cela vous donne une configuration vraiment brute, de sorte que même les boutons ne ressemblent en rien à des boutons. La seule chose qui en fait un bouton est le pointeur du curseur, mais sinon, ils ne ressemblent pas du tout à des boutons Nous devons donc les styliser nous-mêmes. Maintenant, comme c'était une commande un peu longue, même si nous l'avons rendue très simple, je vais la déplacer dans un script dans notre package.json, donc je vais créer cette commande tailwind : build. Chaque fois que nous lancerons tailwind:build, cela fonctionnera, mais je veux aussi en créer un autre ici, tailwind:watch, afin de ne pas avoir à exécuter build à chaque fois que nous le faisons. Ce que nous pouvons faire, c'est ajouter à nouveau le même code , puis insérer le drapeau de surveillance ici. Maintenant, dans notre terminal, nous pouvons simplement exécuter npm run, puis exécuter n' importe quel script que nous avons configuré ici, donc tailwind:build le construira une fois ou tailwind:watch avec l'indicateur watch le construira et continuera à attendre d'autres modifications. Si je devais entrer ici et donner au corps une couleur de fond rouge, et que je clique sur Enregistrer dessus, cela serait traité et envoyé dans le fichier de sortie et, comme vous pouvez le voir ici, notre corps est rouge. Nous n'avons pas à exécuter la compilation à chaque fois que nous apportons une modification. Chaque fois que nous apportons une modification, elle est enregistrée et envoyée directement à output.css, et comme nous utilisons un serveur live , elle est automatiquement mise à jour ici. À l'heure actuelle, notre configuration est presque terminée. Nous avons juste besoin d'un fichier supplémentaire dans notre dossier ici. Cela s'appellera tailwind.config.js et je vais juste copier et coller une configuration standard ici. Je vais appuyer sur Enregistrer ce sujet et reprenons notre processus ici. J'ai appuyé sur Control X pour l'éteindre. Redémarrez-le juste pour nous assurer qu'il utilise le bon fichier de configuration. Passez à ici et maintenant, nous devrions être en mesure d'utiliser les utilitaires de notre code HTML. Commençons à reconstruire notre page avec Tailwind. Ici, à l'intérieur du conteneur de pages, nous avions l'habitude d'utiliser ces classes , puis d'entrer dans notre fichier CSS. Nous pouvons toujours le faire, nous pouvons accéder au conteneur de pages ici et reconstruire cette classe avec des classes issues de Tailwind Nous pouvons donc appliquer et ajouter différentes classes Tailwind, et vous pouvez voir ici ce que font ces différentes classes, mais pour l'instant, ne le faisons pas. Mettons cela en ligne, puis je le déplacerai dans les classes un peu plus tard. Passons à l'index ici, et ce que nous devons faire, c'est récupérer cette grille d'affichage. Nous pouvons simplement taper dans la grille et, comme vous pouvez voir ici, elle complète automatiquement la grille, afficher la grille, puis nous pouvons lui donner un espace de 0,5 rem, soit environ 12 pixels. C'est à l'intérieur d'un espace-3. Vous pouvez voir ici, si je le retape, vous pouvez voir que Tailwind nous encourage à utiliser certains incréments, donc zéro à un quart de rem, à un demi-rem, trois quarts de rem, un rem, puis cela augmente par incréments et vous pouvez voir dans le commentaire à côté, à combien de pixels cela équivaut à peu près, donc c'est bien. Cela réduit les choix ce qui permet à moi, en tant que développeur Web frontal, de déterminer plus facilement tant que développeur Web frontal, de déterminer ce qu'il faut mettre ici. Nous pouvons maintenant donner cette grille ici et puis, comme vous pouvez le voir ici, afficher la grille, l'espace devrait être stocké quelque part, peut-être devons-nous l' actualiser ici. Oui, nous devons donc malheureusement actualiser . Je ne sais pas pourquoi. Voyons voir que notre serveur live fonctionne. Oui, ça l'est. C'est intéressant. J'avais juste besoin de les rafraîchir, puis nous devons évidemment reconfigurer nos colonnes de modèles, et malheureusement pour nous, dans notre cas spécifique où, si nous examinons nos styles ici, c'est un peu trop spécifique pour une classe Tailwind standard Nous devons donc utiliser un hack dans Tailwind qui nous permet de définir une valeur arbitraire. Pour ce faire, nous allons faire des colliers en grille et le hack ouvre des crochets, et à partir de là, le premier appel sera réglé sur Minmax Auto 150 ? Nous pouvons définir cela ici, auto, 150 pixels, puis créer un trait de soulignement ici pour la deuxième colonne qui, si nous revenons aux styles, était de 3fr. J'ai mis un espace ici. Voyons voir, on y va. Vous pouvez maintenant voir que nous avons le même style, mais il prend la forme d'une classe de vent arrière. Ensuite, nous passons à l' en-tête et je vais régler le col-start sur 1, le col-end sur 3. C'est alors que nous pouvons commencer à utiliser l' ardoise, la palette de couleurs dont j'ai parlé plus tôt, plutôt que les couleurs aléatoires que nous avons définies en premier sur la liste. Ici, je vais utiliser les centaines de nuances d'ardoise, puis nous allons définir la couleur de fond en fonction de cette couleur. Enregistrez-le, actualisez-le ici, et vous verrez maintenant que l'en-tête a une couleur d'arrière-plan et qu'il s'étend sur toute la largeur de la page sur les deux colonnes. C'est ce que nous voulons. Après le menu d'en-tête ici, je vais mettre flex pour afficher flex list-none pour le style de liste de type none. Je vais mettre p-0 pour un rembourrage nul à la fois sur l'axe vertical et horizontal. Justify-center pour placer le contenu de justification au centre, Gap-3 pour régler l'écart de la grille aux trois quarts de rem et juste pour vous informer , toutes ces classes sont répertoriées dans la documentation. La documentation sur tailwind.css est plutôt bonne. Je vous encourage à y jeter un coup d'œil. Je ne m'attends pas à ce que vous vous souveniez de tout cela et je les ai notés, donc je sais exactement lesquels mettre ici. Mais pour vous, rendez-vous sur tailwindcss.com, la documentation et commencez à en savoir plus à ce sujet. Nous pouvons entrer dans la personnalisation des couleurs et vous pouvez voir ici les différentes combinaisons de couleurs, le code couleur exact pour Slate 50, Slate 100, Slate 700, etc. et tout un tas d' autres informations. Il faut un peu d' apprentissage pour comprendre ce qu'est un cours, mais bien sûr, après suffisamment de pratique, vous commencez à connaître ces choses plus facilement, alors continuons ici. Passons maintenant à la barre latérale, et pour la barre latérale, je vais utiliser bg-slate-200, donc une teinte un peu plus foncée pour le menu de la barre latérale. Je vais faire du pl-3 qui est le rembourrage gauche. Cela va le régler à 0,75 rem, puis je vais définir mes attributs de flexion, donc je vais définir grow pour définir flex grow à un. Je vais mettre shrink-0 pour mettre Flex Shrink à zéro, puis basis-24 qui est à peu près 100, 96, et puis ça devrait être tout. Sauvegardez ça, rafraîchissez-le ici, c'est très joli. Le bouton a maintenant complètement perdu son style. Allons-y et donnons-lui un tas de nouveaux styles px-3 qui lui donneront un rembourrage à gauche et à droite, donc en gros un rembourrage sur l'axe X, puis nous lui donnerons un rembourrage sur l'axe vertical, donc un rembourrage en haut et en bas de deux. Légèrement moins arrondi pour donner un rayon de bordure au bouton pg-slate. Nous utiliserons à nouveau la palette de couleurs ardoise et utiliserons une teinte plus foncée de 600. Nous utiliserons également l'ardoise pour la couleur du texte. dois juste m'assurer qu' il y a suffisamment de contraste ici Je vais donc le régler sur 50, une teinte beaucoup plus claire, puis sur m-1 qui définit la marge à quatre pixels ou 0,25 rem. J'ai cliqué sur Enregistrer là-dessus. Regardons cela, et maintenant nous avons le style du bouton. Maintenant, ici, nous avons cet écart entre les colonnes. n'est pas ce que nous voulons, alors revenons ici. Gap-3, nous voulons que ce soit uniquement une colonne, donc il y a col-gap-1. Parfois, au lieu de parcourir la documentation, vous pouvez vous faire une idée, alors peut-être que nous pouvons faire gap-x. Nous y voilà. L'écart entre les colonnes, c'était quoi trois ? Nous y voilà et nous n'avons plus cet écart entre les lignes, juste entre les colonnes. Passons maintenant au menu de la barre latérale. Lists-None pour aucun style de liste, p-0 pour l'absence de rembourrage puis nous voulons étendre toute la largeur, donc nous allons faire des hauteurs. Voyons quelles sont les options. Nous pouvons les parcourir tous, voir s'il existe une option pour 100 %, h-4. Essayons ça. Enregistrez, rafraîchissez ici. maintenant à des sommets 100 % cool et, comme vous pouvez le voir ici, nous n'avons pas besoin de mettre à jour les styles de liens, car ils sont déjà exempts de tout vent arrière. Si nous voulions rétablir cet état de survol, nous pouvons le faire en utilisant cette classe, puis nous pouvons placer la pseudo-classe ici hover:underlying devrait nous donner la décoration du texte, mais je clique sur Enregistrer pour cela. Jetons un coup d'œil, rafraîchissons-nous. Voilà, donc ça marche. Nous avons juste besoin de le copier pour tous les autres , et c'est parti. Ensuite, ici aussi, je vais créer ce hover:state. Sauvegardez ça. Vous pouvez maintenant voir le hover:state se produire ici. Nous n'avons pas besoin de créer une classe distincte pour cela. Nous pouvons littéralement le mettre sur l'élément lui-même, donc j'apprécie vraiment ce genre de choses. C'est plutôt cool, et juste pour gagner du temps, je vais supprimer cette vue ici, nous n'allons plus en faire dans cette classe. Je vais garder cette section avec la classe principale. Débarrassez-vous de tout ce code d' affichage ici. Revenons à ce que nous faisions avant. Je ne pense pas que nous ayons besoin de mettre des styles spéciaux sur la page principale, mais pour le tiroir, je vais lui donner un fond de 200 ardoises. Nous voulons faire en sorte qu'il soit sur toute la hauteur de l'écran avec un écran H. La position doit être absolue et je peux simplement le faire en tapant un top-0 absolu pour définir les deux premiers pixels nuls. Largeur, je veux que ce soit la moitié de la largeur de la fenêtre d'affichage. Il s'agit d'une valeur arbitraire. Je ne crois pas que Tailwind ait une option pour cela Je vais donc ouvrir des crochets ici, largeur de fenêtre de 50, puis je vais faire right-0 pour définir le bon attribut zéro pixel, puis je vais me faciliter la tâche en mettant simplement la transition complète. Comme vous pouvez le voir ici, il définira plusieurs paramètres ici, mais cela créera essentiellement la transition. nous l'avons déjà vu dans styles.css, nous avons spécifié la transition pour qu'elle ne s'applique qu' au bon attribut, mais nous pouvons tout aussi bien l'appliquer à tous, puis ils les couvriront tous , ce qui me semble logique. Ensuite nous avons notre bouton ici sur lequel nous pouvons simplement copier les mêmes classes que celles que nous avons pour l'autre bouton. Nous y voilà. Posez-le ici, corrigez l'espacement. Ensuite, si je clique sur Enregistrer, actualisons la page ici. Le dessin s' affiche par défaut, si je l'ouvre et que je le regarde. Vous pouvez voir que le tiroir est actuellement réglé à zéro. Nous devons lui donner un style différent si aria-hidden est vrai. Heureusement pour nous, dans Tailwind, il s'agit d'une fonctionnalité dans laquelle vous pouvez simplement utiliser deux points cachés par aria et nous pouvons définir une classe qui ne s' appliquera que si aria-hidden est vraie. Ensuite, je peux utiliser une valeur négative ici à droite pour régler à droite, je pense que c'est plein à 100 %. Si je fais défiler la page vers le bas, vous pouvez le voir en entier. Rafraîchissez ici, le tiroir ne sera pas ouvert par défaut. Ça y est, je peux l' ouvrir et le fermer ici. En fait, cela doit s' étendre sur toute la hauteur. Peut-être devons-nous régler la hauteur de la grille à 100 %. Nous avons oublié de régler la hauteur de la grille à 100 %. Je vais entrer ici, le faire hors réseau et ensuite nous passerons à H4, je pense à 100 %. Jetons-y un coup d'œil. Hauteur, 100 %. Ensuite, nous avons oublié de mettre notre style pour la taille des lignes. Les lignes de notre modèle de grille étaient de 50 pixels, 1 fr. Celui-là va probablement être un peu difficile. Des lignes de grille, puis nous allons mettre une valeur arbitraire ici, 50 pixels, 1fr. Voyons si cela fonctionne. Rafraîchissez-vous ici et voilà, c'est le cas. voilà, 50 pixels, 1fr, c'est ce que nous avions ici. Nous avons maintenant notre barre latérale d'en-tête. Notre tiroir fonctionne et tout a été recréé dans Tailwind. Je veux juste mettre du contenu principal ici, contenu principal afin que nous puissions y mettre ce que nous voulons. Nous avons le contenu principal ici et nous pourrions également y ajouter du rembourrage. Peut-être que ce sera un contenu principal h1, mais encore une fois, des bandes Tailwinds ou ces CSS standard. Le simple fait de lui donner l'élément h1 ne signifie pas nécessairement qu' il sera plus grand. Ce que nous devons faire, c'est spécifier nos classes ici. Nous pouvons faire du texte 5xl et faire une police en gras pour le rendre plus grand et plus gras. Vous pouvez maintenant voir que nous avons un titre plus grand ici. Il n'y a cependant aucune marge, nous devons le spécifier nous-mêmes. Nous y voilà. Faisons simplement my-2 pour lui donner un peu de rembourrage en haut et en bas, et cela devrait nous suffire pour le moment. Tout y fonctionne et nous avons recréé notre mise en page à l'aide du CSS Tailwind. Maintenant, il y a un gros problème pour moi, je ne sais pas, certains comme celui-ci, mais nous avons des attributs ridiculement longs pour les classes ici. Je dois parfois faire défiler la page vers l' autre côté de la page juste pour les voir Je préfère écrire des noms descriptifs dans des classes plutôt que simplement dans des classes utilitaires. Pendant un certain temps, je n'ai pas voulu utiliser Tailwind à cause de cela. J'ai dit que c'était trop compliqué. J'aime écrire de belles classes descriptives comme le conteneur de pages, le menu d'en-tête, comme nous l'avons fait par le passé. Mais il existe en fait un moyen de tirer le meilleur parti des deux mondes et je vais vous le montrer dès maintenant. Si nous entrons dans le CSS de nos entrées, nous pouvons réellement reconstruire notre classe de conteneur de pages avec tous les utilitaires que nous utilisons simplement avec Tailwind. Ce que je vais faire, c'est récupérer toutes les classes que nous avons définies après le conteneur de page. Je ne vais pas supprimer le conteneur de pages. Je vais enregistrer cela et venir ici et je pourrai simplement écrire Apply, puis placer toutes les classes Tailwind après cela. Ensuite, il appliquera tout cela à la classe de conteneur de pages. Si nous actualisons cette page, vous verrez exactement le même résultat, mais maintenant nous n'avons plus vous verrez exactement le même résultat, mais maintenant nous n'avons tout ce bordel dans notre code HTML. Vous pouvez voir ici que tous ces attributs ont été regroupés et placés dans une seule classe, qui, à mon avis, est beaucoup plus propre. Passons maintenant à l'étape suivante et faisons de même pour tout le reste. Pour notre en-tête ici, je vais récupérer ce contenu et créer l'en-tête, appliquer, l'ajouter. Vous y voilà. Ensuite, nous entrerons dans le menu d'en-tête. Prenez tous ces menus d'en-tête, à droite, appliquez. Même processus d'un bout à l'autre. Je prends simplement ces classes utilitaires et je les applique à la barre latérale des classes. Super facile avec la directive appliquée ici. Allons plus loin dans les listes, les boutons. Nous pouvons cibler tous les boutons, nous n'avons donc pas à nous répéter ici pour tous les boutons. Au lieu de cibler une cible de classe ou des boutons, placez apply devant celle-ci. Nous y voilà. Ensuite, je peux supprimer ces classes de ce bouton. Voyons s'il y a des cassures, sauf que je dois juste m' assurer que c'est un bouton. Pas de casse, donc nous avons nos boutons en place maintenant. Nous pouvons le récupérer, le mettre dans le menu latéral, l'appliquer. Alors c'est une bonne question ici aussi, car elle se répète encore et encore. Nous ne voulons pas le faire. Au lieu de cela, nous allons simplement saisir toutes nos balises a dans une liste non ordonnée, puis nous allons les souligner avec le pointeur de la souris. Nous pouvons maintenant tous les supprimer. J'utiliserai la commande D sur un Mac pour les sélectionner tous et je peux simplement les supprimer tous en une seule fois. Ensuite, nous pouvons y aller pour notre h1. Utilisons ces classes sur tous les h1. Entrez ici, h1, appliquez. Allons-y, pour la dernière, pour le tiroir, puis je vais créer la classe pour le tiroir, utiliser Appliquer et maintenant en pour la dernière, pour le tiroir, puis je vais créer la classe pour le tiroir, utiliser Appliquer et maintenant actualisant ici, nous obtenons exactement le même résultat. Mais maintenant, vous pouvez voir que notre code HTML est beaucoup plus propre, et c'est comme ça que je l'aime. Ici, vous pouvez voir que tout est bien nommé. Nous n'essayons pas de déchiffrer toutes ces classes CSS Tailwind qui auraient pu le faire autrement. Si vous regardez ici, maintenant, tout cela ne contient que le CSS d'entrée et je pense que c'est beaucoup plus agréable de l'avoir ici que avoir dans le code HTML réel. C'est ce que je préfère. Je n'ai commencé à me lancer dans Tailwind qu'une fois que j'ai compris que vous pouviez le faire, vous pouviez toujours utiliser des cours. Vous pouvez toujours cibler des éléments, mais vous pouvez également utiliser les classes Tailwind. Certaines des choses que j'aime que vous ayez ces pseudo-classes. Vous l'avez de nouveau ici pour surligner le pointeur et ce qui est fou, c'est que vous pouvez également faire des requêtes multimédia ici. Qu'avons-nous dans notre fichier styles.css Nous n'avions pas affiché la barre latérale sur mobile dans Tailwind, c'est un système axé sur le mobile. Toutes les requêtes multimédia seront d'une largeur minimale. Elles sont donc mobiles par défaut. Nous utilisons ensuite les requêtes multimédia pour affecter la taille des écrans au-delà de certains niveaux. Je vais vous montrer ce que je veux dire par là maintenant. Si nous consultons simplement la documentation CSS de Tailwind et que je recherche un design réactif et que je regarde cette page, vous pouvez voir les préfixes des points d'arrêt. Il faut dire ici que Tailwind CSS est d'abord mobile. Il utilise un système de point d'arrêt axé sur le mobile, ce qui n'est pas ma préférence. Je préfère d'abord utiliser un ordinateur de bureau. Mais j'ai mentionné que de nombreux systèmes modernes privilégient le mobile. Comme vous pouvez le voir ici, si nous utilisons la petite pause, cela affectera tout ce qui se trouve au-dessus de 640. Ensuite, ces points d' arrêt s'étendent jusqu'en 1536. En utilisant cela, allons-y. Tout d'abord, nous voulons créer par défaut, car la valeur par défaut est mobile, nous voulons qu'elle n'en affiche aucune, nous avons donc simplement défini le paramètre masqué. Mais lorsqu'il est trop petit, nous ne voulons pas qu'il soit masqué Nous allons donc le placer en bloc, ce qui le placera en bloc d'affichage. Ce n'est pas exactement la même chose qu'ici parce que c'est 640 et non 425, mais c'est assez proche. Si nous allons ici et que je passe à l'iPhone 12 pro, vous pouvez voir, sans aucune requête multimédia, que nous nous sommes débarrassés de la barre latérale. Par défaut, étant donné que nous sommes d'abord sur mobile, l'affichage est défini sur Aucun. Permettez-moi de revenir à cette voie. Quand nous dépasserons 640, vous pouvez le voir. Je vais donc déplacer cela. Nous sommes passés au-dessus de 640. Vous pouvez voir cette requête multimédia de Tailwind sortir, mais nous n'avons pas besoin de l' écrire nous-mêmes, tout ce que nous avons à écrire dans Tailwind est la classe que nous voulons appliquer après ce point d'arrêt. J'adore le fait que dans Tailwind, si nous l' installons correctement, nous pouvons voir ici le code exact qui passe dans notre CSS. C'est pourquoi il est important de continuer à exécuter, à compiler ici, car chaque fois que nous le créons, il crée le CSS brut nécessaire dans notre fichier de sortie et fait toutes ces choses insensées pour s'assurer qu'il est optimal et qu'il n' utilise que ce dont il a besoin. C'est vraiment génial une fois que vous avez compris la puissance de Tailwind. Mais encore une fois, c'est un outil comme n'importe lequel de ces autres outils. Tout se résume à du HTML, du CSS et du JavaScript. Encore une fois, si vous ne souhaitez pas l'utiliser , c'est totalement facultatif. Je ne fais que vous montrer l'un des outils les plus populaires que les développeurs Web frontaux utilisent de nos jours. Si c'est quelque chose qui vous intéresse, approfondissez vos recherches et apprenez-en plus sur Tailwinds. Je peux même créer un cours sur Tailwind pour vous si vous souhaitez en savoir plus, mais tout est documenté dans la référence ici. Vous n'avez pas nécessairement besoin d'un cours si vous pouvez lire toute cette documentation. Je suis impatient de continuer à utiliser Tailwind et de l'essayer sur des projets plus importants. Personnellement, je l'aime bien. Encore une fois, si vous ne vous sentez pas libre, vous pouvez ignorer cette vidéo. Vous pouvez ne pas l'utiliser. Ce n'est pas un élément essentiel du développement Web frontal, juste un autre outil. Mais cela étant dit, parlons de quelque chose qui pourrait être essentiel à votre projet de développement Web, à savoir la collecte de données à partir d'une API externe. Nous en parlerons dans la prochaine vidéo. 11. Utiliser des API: Dans cette vidéo, nous allons examiner les API. Plus précisément, nous allons examiner un exemple d'API permettant d'introduire fausses données de magasin dans notre petite application ici. Rappelez-vous qu'avant, nous n'avions cette page de produit à titre d'exemple. Je travaille principalement dans le commerce électronique, j'aime donc utiliser ces exemples de magasins de commerce électronique. Dans cette vidéo, nous allons importer des données provenant d' une fausse API de boutique. Cela nous donne de fausses données de magasin. Ensuite, nous pouvons créer une liste de produits sur le front-end avec ces données provenant d'une API. Qu'est-ce qu'une API ? Il signifie simplement interface de programmation d'applications. Si vous recherchez la définition en ligne, il se peut que vous ne sachiez pas ce qu'elle signifie réellement , car elle peut signifier un tas de choses différentes. Dans ce contexte, une API est essentiellement un moyen pour nous de nous connecter à un backend pour récupérer des données. Dans mon premier cours, Understanding Web Development, nous avons adopté une approche moins moderne en écrivant du PHP, en gérant notre propre base de données MySQL et en affichant ce contenu à l'écran via PHP. Mais aujourd'hui, alors que le front-end est devenu plus complexe avec les frameworks frontaux, il est désormais plus courant d'avoir une API et une application frontales distinctes, et de connecter les deux. L'API est essentiellement l'application principale, qui nous fournit les données. Dans ce cas, vous pouvez considérer les API comme une simple source de données à laquelle nous pouvons nous connecter. Pour accéder à ces données, n'avons besoin que d'un point de terminaison d'API, qui est simplement une adresse qui, lorsque nous lui adressons une demande, renvoie des données. Tout comme nous avons fait une demande à ce serveur ici même et qu'il a renvoyé le contenu de notre page, nous pouvons faire une demande à un serveur et récupérer des données brutes. C'est ce que nous allons faire dans cette vidéo. Je vais partager avec vous un exemple simple dans cette leçon. Ouvrons fakeapi.platzi.com. Il s'agit de l'API Platzi Fake Store. Comme indiqué ici, il s'agit d'une API de repos pour votre prototype de site Web de commerce électronique ou d'achat. Nous allons l'utiliser pour générer une liste de produits et les afficher sur notre petite application Web. Vous remarquerez ici que l'API est une API REST. Il s'agit de la forme d'API la plus simple à comprendre. Il existe un autre style d'API plus moderne appelé GraphQL, mais qui nécessite une compréhension du langage de requête de GraphQL. Avec les API REST, tout ce que nous avons à faire est d'atteindre un certain point de terminaison, qui se trouve ici. Il suffit de saisir cette adresse et les données seront renvoyées. Si je le copie et que j'ouvre un autre onglet et que je le colle, vous verrez que nous obtenons une liste complète de données. Avant, vous avez vu que cela s' affichait sous forme de texte brut non formaté, et maintenant c'est ce qu'il fait. C'est parce que j'ai une extension Chrome sur mon navigateur Chrome qui fait cela. Vous pouvez voir les données au format JSON sortir assez bien. Mais si vous ne possédez pas cette extension, vous la verrez apparaître au format brut. Nous pouvons simplement le mettre directement dans notre barre d'adresse comme ça. Cela peut être pratique pour visualiser les données, du moins la structure qui provient de l'API. Mais ce que nous allons faire dans notre application Web, c'est utiliser ce point de terminaison pour insérer ces données dans notre interface, puis interagir avec elles. Ce que je vais faire, c'est évidemment que nous avons une liste de produits ici Je vais créer une petite page de collection sur notre application Web en utilisant Vue et en utilisant cette API. Je vais le garder dans mon bloc-notes, rendre ici, puis passons à notre éditeur de code. Nous parlions de Tailwind dans une vidéo précédente. Laisse-moi fermer ça. Permettez-moi de le transformer à nouveau en Vue. Ce que je vais faire, c'est lui donner un identifiant de l'application Vue afin que nous puissions y associer notre code Vue. Je vais également devoir ramener la référence à Vue via le CDN. Je vais juste ajouter ça. Faisons-le ici. Scripts SRC, puis adresse de la dernière version de développement, qui est unpckg.com/vue @next. Je l'ai mal tapé. J'ai dit scripts au lieu de script. Ensuite, j'en insérerai un autre ici, et nous allons simplement insérer notre code Vue ici. Encore une fois, je vais simplement créer mon objet d'options, lancer l'échafaudage ici. Ensuite, nous allons créer l'application Vue. Créez une application, chargez les options, puis montez-la dans ce div, auquel nous avons attribué l'ID de Vue App. Nous pouvons y aller, Hash Vue App. Si nous cliquons sur « Enregistrer » dessus, actualisons la page ici, nous devrions voir que nous exécutons une version de développement de Vue. Si vous avez installé les DevTools for Vue, si je les ferme et les rouvre, nous pourrons obtenir les Outils de développement Vue ici. Je le recommande vivement. Pour installer Vue DevTools, vous pouvez accéder au Chrome Extension Store et saisir Vue DevTools. Pour une raison ou une autre, le chargement prend beaucoup de temps. Je vais juste taper Vue. Ici, vous pouvez voir que celui que j' utilise est celui-ci, Vue.js devtools de Developer Tools. De retour ici, vous pouvez voir que nous exécutons une application dans cette section, vous pouvez la voir surlignée. Ce que je vais faire, c'est écrire du code que je souhaite exécuter lorsque cette application sera écrire du code que je souhaite montée. Nous pouvons le faire via la méthode du cycle de vie montée. Si je crée simplement une méthode appelée mounted et que je la place dans l'objet options, tout ce que j'écris ici sera affiché à l'écran. Revenons en arrière et copions cette adresse API. Assurez-vous qu'il se trouve dans notre bloc-notes. Ensuite, ce que je vais faire, c'est écrire un simple fetch. Cette méthode est super simple, mais super puissante. Il ne fait qu'exécuter une requête get à l'adresse indiquée dans ce premier argument. Nous allons ensuite enchaîner... puis. Dans ce fichier, je vais insérer ce code, qui traite simplement le JSON et nous permet de le convertir en objet JavaScript à utiliser dans notre application. Ensuite, avec ce JSON renvoyé, pour commencer, je vais simplement le consigner sur la console afin que , lorsque notre application se chargera, nous obtenions les données dans notre console et que nous puissions voir à quoi elles ressemblent. Vous pouvez le voir ici. Je vais me rafraîchir à nouveau. Vous pouvez voir que nous avons 177 objets dans un tableau. Nous pouvons regarder et inspecter l'intérieur de la matrice et voir toutes les différentes données sur les produits que nous avons consultées auparavant en les saisissant simplement dans notre navigateur. Maintenant que nous l'avons sous forme de JavaScript, nous pouvons le charger dans notre application Vue. Je vais cliquer ici. Je vais ajouter quelques données. En suivant ce format, nous allons renvoyer un objet. N'oubliez pas que nous devons mettre notre virgule ici et je vais mettre un tableau appelé products, qui au début sera un tableau vide. Alors ici, ce que je vais faire, c'est parce que l'objet JSON renvoyé est un tableau. Si nous revenons ici, nous pouvons simplement insérer ce tableau dans ce tableau au sein de notre application. Nous devons simplement commencer par faire référence à cette application, qui est l'application que nous examinons actuellement, c'est ainsi que nous collectons les données, puis nous allons simplement attribuer JSON renvoyé à this.products, non à product Voilà. Si je clique sur « Enregistrer » et que je rafraîchis ici, vous verrez qu'il n'y a rien dans la console parce que nous avons supprimé ce journal de console, mais si nous le regardions dans nos DevTools, vous constaterez que ce tableau d' objets a maintenant été chargé ici. Nous pouvons maintenant interagir avec cela dans notre application Vue. Je vais y aller et utiliser réellement ces données. Je vais saisir ici la collection de produits, tout ce que nous voulons. En fait, je vais simplement sauter le titre et créer un div ici avec la classe de collection, et à l'intérieur, je vais commencer une boucle for avec Vue. Je vais créer une fiche produit. Ce sera un div pour chaque produit qui sortira, et je veux que cela fonctionne pour autant de produits qu' il y en a dans la gamme. Nous pouvons utiliser une boucle v-for ici, puis je peux simplement écrire produit dans produits. Nous pouvons l' appeler comme nous voulons, il va simplement extraire un élément individuel de ce tableau qui correspond ici. Je vais cliquer pour en sortir. Ensuite, à l'intérieur, nous voulons une balise image, permettez-moi d'appeler cette image du produit, puis le src, que nous allons extraire de l'objet du produit renvoyé. Si nous regardons en arrière, si nous examinons l'un de ces objets, vous pouvez voir que trois images sont renvoyées, ce qui nous donne un tableau d'images. Nous devons faire un choix ici. Choisissons simplement le premier du tableau, qui sera à la position 0. Ensuite, nous allons simplement passer à product.images, et pour sélectionner la première image du tableau à la position 0, nous y tapons simplement zéro. Alors ici, inscrivons le titre du produit. Ensuite, je vais utiliser v-html pour insérer du code HTML interne basé sur une variable. Je vais opter pour product.title. Si nous revenons à l'objet, vous pouvez voir que nous obtenons une valeur pour le titre qui apparaît ici, puis je cliquerai sur « Enregistrer » dessus. Rafraîchissons-nous ici. Comme vous pouvez le constater, au fur et à mesure que nous chargeons la page, nous adressons une demande à cette API externe et nous introduisons les images et le texte. Laisse-moi me rafraîchir encore une fois. Elle va fonctionner assez rapidement car c'est une application assez basique, mais comme vous pouvez le voir ici, la page se charge en premier. Nous avons l'en-tête et la barre latérale qui se chargent en premier, puis vous pouvez voir les noms apparaître, puis vous pouvez voir les images. Ce qui se passe, c'est que si nous y regardons de plus près, cela se passe trop vite, même pour que l'application Vue puisse le détecter, mais au départ , cette gamme de produits est vide, puis une fois la demande d'API terminée, elle est remplie avec les 177 produits différents. Si je vais ici, nous pouvons voir que l'objet produits est initialement vide et que ce n'est qu'une fois que cela est terminé l'objet produits est initialement vide et que ces produits entrent dans la gamme de produits. Une chose que je veux faire avant de lancer ceci est de m' assurer que le tableau des produits n'est pas vide avant de commencer à essayer de tout afficher. Ce que je veux faire pour rendre cela un peu plus agréable, c'est que lorsque je rafraîchis la page, vous pouvez voir qu'il y a une période pendant laquelle c'est vide. Je veux y mettre un petit indicateur de chargement, donc je vais garder à l'esprit que Vue est réactive, et que si les données changent, la page changera, nous pouvons insérer une simple instruction if ici pour vérifier la longueur du tableau. Comme vous pouvez le voir ici, j'ai mis une balise de modèle ici. Il s'agit d'une balise Vue spéciale dans laquelle nous pouvons insérer de la logique, mais qui ne s' affichera pas réellement sur la page. Je vais mettre une instruction if ici et nous allons y aller si products.length est supérieur à zéro, c'est-à-dire qu'il n'est pas vide, alors nous l'exécuterons , mais s'il est vide , donc l'alternative, je vais juste mettre un v-else. S'il est vide, ce qui sera le cas au chargement de la page, je vais juste mettre un indicateur de chargement super basique ici, en indicateur de chargement super basique ici, cours de chargement... Maintenant, si nous actualisons, vous pouvez voir que pendant une fraction de seconde, le message est en cours de chargement avant d'afficher toutes les données du produit. L'autre chose que je veux faire pour faire le ménage , c' est que nous avons 177 produits qui arrivent, c'est un peu trop. Je vais limiter ce montant. Ce que je peux faire, c'est déplacer ce v-for ici, puis je peux récupérer l'index ainsi que l'objet réel dans cette boucle, et ensuite ce que je peux faire ici, c'est n'afficher une fiche produit que si l'index est, disons, inférieur à quatre. Seuls les quatre premiers éléments apparaîtront maintenant. J'ai cliqué sur « Enregistrer » dessus, actualiser ici, et vous verrez que les quatre premiers éléments apparaissent. Idéalement, nous aimerions réduire le temps de chargement en limitant l' API pour ne nous envoyer que la quantité dont nous avons besoin. Ce 177 est exagéré. Il fonctionne toujours très rapidement, mais si nous parcourons notre documentation ici, il existe peut-être un moyen de limiter les produits. On y va. Obtenez un seul produit, créez un produit. C'est ce que l'on appelle une spécification d'API. Nous pouvons consulter cette page pour apprendre à utiliser l'API. Nous pouvons jeter un œil à la pagination. On y va. Nous pouvons fixer une limite. Allons-y. Nous allons descendre jusqu'ici, puis au bout, nous mettrons ? limite=4. Nous pourrions placer la limite au niveau de l'API. Rafraîchissant. J'en ai toujours 177. Jetons-y un coup d'œil. Peut-être devons-nous également mettre le décalage, donc oui, le décalage à zéro et la limite à 10. Nous pouvons séparer ces paramètres par le symbole de l'esperluette. Je vais actualiser notre application Web ici. Comme vous pouvez le constater, nous n' recevons que quatre depuis l'API, ce qui est mieux car nous ne faisons pas de demande plus longue que nécessaire. Dans cet esprit, nous pouvons même simplement supprimer cette instruction if et nous aurons toujours la même réponse, mais nous pouvons fixer une limite au front-end et au backend. Je veux que cela apparaisse un peu plus stylé, donc je vais copier et coller du CSS. heure actuelle, nous devrions toujours utiliser Tailwind Je vais donc le mettre dans mon fichier d'entrée ici, puis appuyer sur « Enregistrer » dessus. Rafraîchissez-le ici, et vous pouvez voir qu'il apparaît maintenant sous forme de grille. Très bien, maintenant, si je continue à rafraîchir et que vous dites chargement, nous obtenons à chaque fois de nouvelles données depuis l'API, et nous obtenons nos quatre belles cartes. Mais ajoutons-nous à cela et incorporons un peu d'interactivité. Si nous examinons réellement chacun de ces objets, vous pouvez voir que chacun d'eux possède un identifiant. Nous pouvons nous en servir pour identifier chacun d'entre eux. Ce que je vais faire, c'est créer une autre section ici afin que nous puissions cliquer sur l'une d'entre elles et approfondir ses données. Je vais revenir à notre application ici, et dans mes données, sous Produits, je vais ajouter un nouveau champ pour l'identifiant du produit sélectionné. Alors mettons-le à null pour commencer. Ensuite, ce que je vais faire de la même manière nous l'avons fait avec la variance, c' créer un champ calculé et il ne s'agira que du produit sélectionné est créer un champ calculé et il ne s'agira que du produit sélectionné. Il ne fera que déterminer l'objet du produit sélectionné à l'aide de l'identifiant du produit sélectionné. Il examinera les objets des produits, recherchera l'identifiant du produit sélectionné, puis renverra cet objet. Je vais renvoyer ce fichier .products en utilisant à nouveau la méthode de recherche. Ici, nous allons rechercher le produit dont l'identifiant correspond l' identifiant du produit sélectionné dans nos données. Ensuite, nous avons besoin d'une méthode pour définir l'identifiant du produit sélectionné. Je vais entrer ici et créer l'objet d'une méthode. À l'intérieur, nous pouvons créer une méthode appelée set selected product, et nous allons simplement prendre l'argument ID. Ce sera une méthode très simple. Tout ce que cela fera est de prendre l'identifiant transmis et de l'attribuer à cet identifiant de produit .selected. C'est très simple. Maintenant, afin de sélectionner le produit, je vais placer un écouteur d'événements sur chacune de ces fiches produits. La façon dont nous le faisons dans Vue est très simple. Tout ce que nous avons à faire est de mettre un attribut ici. Il commencera par le symbole at et l'attribut sera le nom de l'événement. Il s'agira d'un simple clic. Ensuite, nous disons en gros qu'en un clic, la méthode que nous voulons exécuter est de définir les produits sélectionnés. Ensuite, bien sûr, nous devons envoyer l'identifiant que nous voulons configurer pour ce produit. Je vais développer cela ici. s'agira simplement de l'identifiant du produit que nous sommes en train de parcourir en boucle. Si je clique sur « Enregistrer », nous devons encore créer cette section ici, mais vérifions simplement que tout fonctionne dans Vue DevTool jusqu'à présent. Lorsque nous chargerons le projet pour la première fois, vous verrez que l'ID de produit sélectionné est nul et que, par conséquent, nous avons une valeur indéfinie pour produit sélectionné dans Computed. Mais si je devais cliquer sur l'un d'entre eux, cela ne semble pas fonctionner. Permettez-moi de rafraîchir ici. Vous pouvez voir que, pour une raison ou une autre, elle n'est pas actualisée dans l'application elle-même ici. Mais si je cliquais sur la tomate à soupe, rafraîchissez ici, vous verrez que l'identifiant du produit sélectionné est 38. Comme nous avons un objet dans notre tableau avec cet identifiant, bien sûr, parce que nous l'avons utilisé comme option possible pour l'identifiant de produit sélectionné, nous sommes alors en mesure de calculer l'objet pour le produit sélectionné. Si je clique sur celui-ci et que je l'actualise, nous avons maintenant l'ID de produit sélectionné, 41, et nous récupérons donc l'objet du produit sélectionné. Maintenant, en gardant cela à l'esprit, il ne nous reste plus qu'à créer une autre section en fonction du produit sélectionné. Après cette collection, div ici, assurez-vous de la conserver dans l'application Vue. Sinon, ça ne marchera pas. Nous allons créer un div ici, et faisons un V if. Nous ne voulons pas l' afficher à moins que le produit sélectionné ne contienne des données. S'il s'agit simplement d'un objet vide ou nul, cela renverra la valeur false, donc il n'apparaîtra pas. Ensuite, nous allons lui attribuer une classe de produit. De quoi avons-nous besoin ici Nous aurons l'image et les informations sur le produit. Je vais commencer par l'image ici et charger dynamiquement le SRC, qui sera simplement sélectionné product.images, car n'oubliez pas que chacune d'elles contient plusieurs images. Nous allons simplement récupérer la première image du tableau, puis je vais créer un autre div appelé product info pour le reste des informations. Cela sera formaté sur le côté droit. Ensuite, je vais ajouter h1, nous utilisons toujours Tailwind Nous pouvons donc saisir certaines classes d'utilitaires Tailwinds ici, du texte 5xl, une police , du gras et une marge inférieure d'environ huit pixels, puis nous définirons cela le titre, le produit sélectionné. title. Ensuite, nous descendrons et nous fixerons le prix ici, prix, qui ne sera qu'une division. Ensuite, à l'intérieur de V, HTML, qui définira le code HTML interne en fonction d'une variable, nous placerons ensuite le produit sélectionné. Enfin, la description du produit, que je mettrai simplement en div lorsque vous mettrez une classe pour celui-ci. Mais je vais définir le code HTML interne sur la description du produit sélectionné, qui, selon moi, devrait correspondre à l'API. Jetons-y un coup d'œil. Sélectionnons-en un ici. Actualisation et description. Oui, il y a une description. OK, cool. Je vais encore une fois recopier les mêmes pour ne pas nous enliser là-dessus. Revenons ici, voyons si cela fonctionne. Si je clique dessus, rien ne se passe. Si je le fais glisser et que j'accède à la console, vous pouvez voir que nous avons quelques erreurs : « Impossible de lire les propriétés des images de lecture indéfinies ». Si vous rencontrez des erreurs, il est important de lire les messages d'erreur. Nous essayons de lire des images sur quelque chose qui n'est pas défini. J'ai évidemment commis une petite erreur ici. Laisse-moi regarder le code. Si je fais défiler la page vers le bas, vous pouvez voir que je l'ai mal orthographié. J'ai mis select product.images, j'étais censé taper selected. C'est juste une faute de frappe de ma part. Maintenant, si je clique dessus, vous verrez qu'il n'y a pas d'erreur, et vous verrez que je peux maintenant mettre à jour le produit sélectionné, ce qui mettra à jour cette section ici. Maintenant, le prix ne contient plus le symbole de la devise, donc je vais corriger cela rapidement. Je vais aller ici. Ce que nous pouvons faire, c'est que je peux mettre guillemets simples ici pour mettre une chaîne simple, puis je mettrai un plus après cela pour pouvoir combiner les deux et je cliquerai sur « Enregistrer ». Maintenant, quand je clique dessus, ils auront un signe de dollar devant eux. Nous pouvons importer des données à partir d'une API externe, puis, une fois qu'elles sont dans notre application, nous pouvons bénéficier de la réactivité d' un framework frontal, tel qu'une vue, afin de pouvoir interagir avec ces données. De toute évidence, cela ne correspond pas à l'image. Ce ne sont que des images aléatoires, nous avons des textes aléatoires. Mais tu comprends le point. Si nous connaissons notre code HTML, CSS et JavaScript sur le front-end et que nous savons comment accéder aux API et les intégrer à notre interface, nous pouvons créer une application pleinement fonctionnelle. Alors nous avons tout ce dont nous avons besoin. En tant que développeur Web frontal, avez besoin que d'un accès à une source de données. Vous n'avez pas besoin de créer le backend vous-même En tant que développeur front-end, je préfère avoir à écrire des applications. Je peux me concentrer sur le front-end et créer des expériences utilisateur vraiment intéressantes. Pour conclure cette leçon sur les API, je souhaite simplement vous montrer un autre endroit où nous pouvons vérifier que la demande d'API arrive bien. Si vous rencontrez des problèmes avec les demandes d'API, vous pouvez accéder à l'onglet Réseau, actualiser ici, vous pouvez filtrer par fetch XHR car n'oubliez pas que nous utilisons un fetch ici. Cela vérifiera toutes les API externes auxquelles nous nous connectons. Si je clique dessus, vous pouvez voir le point de terminaison de l'API. Si je le survole, il devrait vous montrer le point de terminaison total de l'API. Ensuite, vous pouvez regarder ici les paramètres qui entrent en ligne de compte. Décalage zéro, limite quatre, puis nous pouvons voir la réponse ici, bien formatée. Il y a quelques endroits où vous pouvez consulter la réponse. Nous pouvons le déconnecter sur console ici, consulter l' onglet Réseau, ou si nous utilisons quelque chose comme Vue, nous pouvons regarder à l'intérieur ici et voir ce qui se trouve notre gamme de produits si nous capturons des données provenant d'une source externe et les insérons dans notre application Vue. Nous pouvons le consulter ici dans notre onglet réseau ou nous pouvons le déconnecter sur console et l' afficher de cette façon également. Mais je voulais juste terminer là-dessus. Vous pouvez voir ici que les données arrivent et que nous pouvons maintenant les utiliser dans notre application. C'est essentiellement tout ce que nous allons aborder dans le cours d'aujourd'hui. Dans la vidéo suivante, je vais vous montrer comment configurer votre projet de classe, puis nous terminerons ce cours. 12. Configuration de projet: Pour votre projet de classe, je souhaite que vous créiez une application Web simple répondant aux exigences suivantes qui utilise une API externe pour afficher les données de manière élégante. Pour vous aider, je vais vous aider à configurer votre environnement de développement et de production. C'est une façon sophistiquée de décrire les projets configurés sur votre ordinateur et les étapes à suivre pour les mettre sur Internet. Tout d'abord, vous allez vouloir créer un dossier pour votre projet. Je vais juste appeler ce projet de développement Web moderne, mais appelez-le comme vous voulez. Dans ce projet, nous allons configurer NPM et git ici. Ce que je vais faire, c'est ouvrir Visual Studio Code. Je vais l'agrandir à la largeur et à la hauteur de votre écran. Ensuite, j'utiliserai le raccourci Command O pour ouvrir notre dossier de code et ouvrir ce projet. Nous avons maintenant un dossier vide ouvert dans Visual Studio Code. Ensuite, je vais ouvrir le terminal, donc contrôler la case retour. Nous avons maintenant un terminal ouvert dans notre application ou dans notre projet. Ce que je vais faire, c'est exécuter git init pour créer un dépôt git vide. Cela nous aidera à gérer les différentes versions de notre code et à diffuser notre code sur Internet. Nous allons utiliser les pages GitHub dans cette vidéo ici, mais vous pouvez le faire par d'autres moyens si vous le souhaitez. GitHub Pages est simplement le moyen le plus simple de le faire. Ensuite, je vais également mettre un init NPM ici. Vous pouvez nommer le projet comme vous le souhaitez. Je vais juste appuyer sur Entrée sur tout pour accepter toutes les valeurs par défaut. Cela va nous donner un package.json. Ensuite, je vais créer un fichier avec le nom de fichier exact de git ignore. Ce fichier fournit une liste de fichiers et de dossiers qui doivent être ignorés lorsque nous transférons notre référentiel. Si vous vous souvenez de la leçon de l' époque où nous avons installé NPM créé un package.json et exécuté NPM install. Il a créé un dossier de modules de nœuds. Dans ce dossier de modules de nœuds, il y avait tous les différents codes pour les différents modules. Ce code ne change jamais. Nous n'avons pas besoin de valider ce code sur GitHub. Nous pouvons simplement, quel que soit l'endroit où nous envoyons notre code, installer les packages répertoriés dans le fichier package.json. Nous n'avons pas réellement besoin du dossier node modules lorsque nous envoyons ce projet ailleurs, nous avons juste besoin du package.json. Je vais supprimer les modules de nœuds lorsqu'ils apparaîtront. Nous ne voulons pas que les modules de nœuds apparaissent dans git. Je vais maintenant ajouter mes fichiers de départ. Je vais créer un fichier index.html. Ici, je vais utiliser ce code standard que j'ai prévisualisé au tout début du cours, créant simplement un document standard HTML5 ici. Je vais cliquer sur la touche Tab jusqu' à ce que le document se trouve entre ces deux balises de titre. Je vais l'appeler comme je veux. Disons qu'il s' agit d'une application à faire, ou de mon premier site Web, ou quelque chose comme ça. Vous pouvez mettre à jour le titre ici. Si vous appuyez à nouveau, vous entrez dans le body tag. Ensuite, je vais créer un dossier pour le CSS. Dans ce dossier, créez un fichier styles.CSS ici. Ensuite, je vais créer un dossier JavaScript. Dans le dossier JavaScript, je vais créer un fichier principal, application ou un fichier index.js. Ça n'a pas vraiment d'importance. Je vais juste l'appeler Main dans ce cas. Ensuite, bien sûr, nous devons lier ces deux fichiers à notre fichier HTML. Ici, je vais créer un lien vers une véritable feuille de style. Ensuite, je mettrai href et je créerai un lien vers le style qui est maintenant imbriqué dans le dossier CSS. Je vais m'assurer de l'ajouter au chemin. Ensuite, à l'intérieur de notre balise body, je vais insérer une balise de script et un attribut SRC. Ici, vous pouvez voir que nous pouvons parcourir le chemin d'accès au fichier main.js. Maintenant que nous avons tous nos éléments de base, le CSS, le JavaScript et le HTML, je vais lancer git add. pour tout ajouter à notre premier commit git, tout ce qui est à l'exception des modules de nœuds, mais nous n'avons pas encore de modules de nœuds. Je vais m'enregistrer ici. Il s'agit de tous nos changements échelonnés. Nous pouvons soit écrire notre message de validation puis appuyer sur Commit ici, soit le faire en ligne de commande, Git commit -m pour le message, et j'appellerai cette validation initiale. Maintenant, tout est engagé. Nous avons juste besoin de créer un dépôt git. Mais d'abord, je veux réellement mettre du contenu sur la page. J'aurais probablement dû le faire avant de m'engager. Mais disons simplement que nous voulons un h1 avec mon premier site Web. Cliquez sur Enregistrer pour cela. Vous pouvez le voir ici, dans notre panneau de contrôle des sources, où vous pouvez vérifier les modifications que nous avons apportées. C'est très pratique pendant le développement. Je le recommande vivement si vous êtes à l'aise, utilisez Git. Mais bien sûr, nous n'avons pas parlé de Git dans ce cours. Si vous souhaitez simplement l'utiliser pour mettre votre site Web en ligne, comme je vous le montre ici, vous pouvez simplement l'utiliser pour cela. Il n'y a aucun problème. Je vais ouvrir une fenêtre ici pour GitHub, puis nous pourrons créer un compte GitHub et créer notre référentiel distant, qui sera la façon dont nous allons publier notre site Web sur Internet. Je ne vais pas suivre toutes les étapes pour créer un compte GitHub. J'ai déjà un compte GitHub. C'est assez courant chez les développeurs, presque tous les développeurs ont un compte GitHub, c'est juste un endroit pour stocker du code en ligne. Une fois votre compte configuré, vous pouvez simplement vous rendre sur GitHub.com slash new pour créer un nouveau référentiel. Je vais dire que c'est mon premier site Web, disons, et je vais le rendre public parce que nous allons le publier sur Internet. Nous n'avons pas besoin d'en ajouter ici, car nous l'avons déjà ajouté à notre projet. Je vais cliquer sur Créer un référentiel et vous pouvez voir ici que nous avons notre référentiel public. Tout ce que j'ai à faire est de récupérer cette partie ici, qui ajoutera l' origine distante à notre projet local. Je vais copier cette commande. Vous pouvez également le voir ici sous la rubrique Publier un référentiel existant pour la ligne de commande. Ensuite, j'irai jusqu'ici. Je vais ajouter cette origine distante. Appuyez sur Entrée. S'il n'y a pas d'erreur, cela aurait dû fonctionner. Je vais ensuite valider cette rubrique, ce que je n'ai pas fait la dernière fois. Je vais le faire via Visual Studio Code cette fois. J'ai ajouté une étiquette de titre. Je vais juste dire que j'ai ajouté un titre. Je vais cliquer avec le bouton droit de la souris, puis cliquer sur Stage Change. Ensuite, il y aura des changements d'étape. Je vais appuyer sur Valider , puis je pourrai cliquer sur ce bouton pour Publier la branche. Je vais cliquer sur Publier, et maintenant nous l'avons transmis à notre source distante. Vous pouvez voir ici mon premier site Web. n'y a rien ici, mais si je rafraîchis maintenant, vous pouvez voir que le code de notre site Web est maintenant sur GitHub. Maintenant, pour en faire un site Web, il suffit d' activer les pages GitHub. Je vais accéder à l'onglet Paramètres ici. Ensuite, je vais passer aux pages consacrées au code et à l'automatisation. Ensuite, je vais cliquer sur « Déployer depuis une branche », puis je vais sélectionner la branche dont nous n'avons qu'une, qui est la branche principale. Je vais appuyer sur « Enregistrer » là-dessus, et maintenant, nous devrions pouvoir aller à cette adresse, qui est votre nom d'utilisateur.github.io. Ouvrez-le dans un nouvel onglet, puis je mettrai barre oblique suivie du nom du référentiel, mon premier site Web. Vous pouvez voir qu'il n'y a pas encore de page. Il est probablement toujours en cours de chargement et nous pouvons vérifier l'état du chargement en accédant à Actions ici. Comme vous pouvez le constater, un flux de travail est en train de se créer ici. Il était en jaune il y a à peine une seconde, mais maintenant il fonctionne. Si nous actualisons cette page, vous verrez mon premier site Web. Le processus de déploiement de notre site Web une fois que nous avons apporté une modification consiste simplement à faire ce que nous venons de faire lorsque nous avons ajouté cette rubrique. Nous ne faisons que créer le changement. Nous avons effectué le changement ici dans notre ligne de commande en exécutant git add. Une fois que c'est ajouté, nous exécutons git commit avec dash m pour le message, ou nous utilisons l'interface utilisateur Visual Studio Code, puis nous cliquons sur ce bouton, puis sur Publier, ou nous pouvons exécuter la commande git push origin, ou nous pouvons exécuter la commande git push origin, qui devrait fonctionner, ou plus précisément, git push origin master. Ajoutons maintenant un package pour vous montrer qu'en action, je vais exécuter clairement ici et exécuter la même commande que celle que nous avions auparavant pour installer Tailwind en tant que dépendance de développement. NPM installe Dash Capital D, tailwindcss. Appuyez sur « Enter » dessus. Comme vous pouvez le constater, nous avons maintenant ajouté un fichier package dash loc.json qui enregistre les versions exactes de toutes les dépendances. Tu n'as pas à t'inquiéter à ce sujet. Tout cela est généré automatiquement pour nous, mais nous voulons le valider. Vous pouvez voir ici que notre package.json a désormais une ligne ajoutée ou trois lignes ajoutées pour les dépendances de développement et que Tailwind a été ajouté. Ensuite, nous avons également ce dossier de modules de nœuds, mais il est en gris, ce qui indique qu'il ne sera pas validé dans git et qu'il n'ira donc pas sur GitHub. Mais comme je l'ai dit, Github remplira automatiquement ce dossier sur le serveur étant donné qu'il sait quelles dépendances installer ici nous reste donc qu'à envoyer le package.json. Ce que je vais faire, c'est copier et coller dans le fichier tailwind.config.js que nous avions auparavant, puis je copierai et collerai dans les scripts que nous avons créés. Ici, Tailwind Colon build et Tailwind Colon Run, et comme vous pouvez le constater, nos chemins sont mis à jour ici. Nous allons rechercher un fichier tailwind.css à traiter et qui sera compilé en styles.css, qui est le fichier que nous avons ici. C'est ce que nous allons faire. Nous allons créer un nouveau fichier ici, appeler tailwind.css et récupérer les utilitaires de base de Tailwind. Ensuite, l'autre concernait les composants de Tailwind, qui, je pense, se situent entre les deux. Nous allons appuyer sur « Enregistrer » dessus, puis exécuter npm, lancer Tailwind build. Nous allons l'exécuter une fois, qui va maintenant mettre à jour notre fichier styles.css avant le code de Tailwind en fonction de ce que nous avons écrit ici et de ce que nous avons inclus dans notre fichier de configuration. Ensuite, si nous cliquons sur Go Live pour démarrer une version locale, nous devrions commencer à voir nos styles HTML par défaut s' effondrer et être remplacés par Tailwind, ce qui n'est pas le cas. Entrons simplement dans notre fichier index.html ici et vérifions que notre balise est correcte. J'ai raté une occasion , une feuille de style. Si je clique sur Enregistrer lors de cette actualisation, vous pouvez voir que le style par défaut pour H1 a maintenant été supprimé car nous utilisons désormais Tailwind et vous pouvez voir ici tous les éléments de Tailwind qui seront publiés. Ce que nous allons faire, c'est lui redonner un peu de style via Tailwind, comme nous le faisions auparavant, avec du texte 5xl, une police de caractères gras, et lui donner une marge inférieure d' environ huit pixels. Je vais appuyer sur « Enregistrer » là-dessus. Cela affecte déjà l' élément et notre projet avec Tailwind est maintenant installé. Maintenant, reprenons le processus de déploiement. Nous avons apporté quelques modifications ici. Vous pouvez voir ici que nous y avons corrigé la balise CSS. Nous avons ajouté certaines classes utilitaires Tailwind. Package/loc.json a été ajouté. Nous avons mis à jour notre fichier package.json. Nous avons ajouté le fichier de configuration Tailwind , puis tous les éléments CSS. Nous pouvons récupérer tout cela et cliquer avec le bouton droit sur « Changements d'étape », ou inversement , indépendamment de éditeur de code que vous utilisez, nous pouvons simplement exécuter git add point pour les ajouter tous en tant que modifications d'étape. Vous y voilà. Il sera mis à jour ici, puis nous pourrons écrire un commit git avec le message indiquant que Tailwind a été ajouté et est maintenant validé. Comme vous pouvez le voir ici, nous pouvons cliquer ici pour le synchroniser avec GitHub. Maintenant, si nous changeons ici, ce sera notre version locale. Il s'agit d'une autre version locale. Je vais fermer celui-ci, puis nous irons ici. Vous pouvez voir dans nos flux que notre application est en cours de déploiement Nous allons donc simplement attendre que cela soit terminé. Cela se produira automatiquement à chaque fois que nous allons sur GitHub, car nous avons configuré les paramètres des pages dans les paramètres ici, et comme vous pouvez le voir, c'est presque là. Nous y voilà. Au bout d'une minute, il est maintenant créé et si nous revenons à l'adresse où se trouve notre site Web, ici même, nous l'actualisons, vous pouvez voir les modifications que nous avons apportées il y a un instant à notre version locale. Comme je l'ai mentionné, lorsque nous allons ici et que nous entrons dans le code ici, vous pouvez voir que le dossier des modules de nœuds ne se trouve pas dans notre GitHub, car lorsque GitHub déploie notre site Web, il installe automatiquement les bons modules de nœuds en fonction de notre fichier package.json ici, qui indique au serveur sur lequel nous le déployons d'installer ce dev dépendance et toute dépendance de développement qui repose sur cette dépendance. Il s'agit d'un exemple de flux de travail que vous pouvez parcourir pour créer votre projet de classe ou tout autre projet futur. Créez un dépôt git, transformez votre projet en projet NPM, créez vos fichiers, travaillez, transférez vers GitHub, puis vous pouvez voir votre résultat ici. Lorsque vous avez terminé et que vous souhaitez partager avec la classe, vous pouvez le faire dans la section des projets de classe. C'est ça. Dans la vidéo suivante, nous conclurons le cours et je vais vous montrer comment vous pouvez approfondir certains des concepts dont nous avons parlé dans le cours d'aujourd'hui. Assurez-vous de cliquer sur la vidéo suivante et terminons ce cours. 13. Conclusion: Félicitations, vous avez terminé ce cours sur le développement Web frontal moderne. Je sais que nous avons abordé une gamme d' outils et de langages dans ce cours, mais je peux vous assurer que vous n'avez pas besoin d' être un expert ces domaines pour vous lancer dans le développement Web frontal. L'objectif de ce cours était de donner un aperçu des outils et des langages utilisés pour créer des expériences frontales sur le Web. Dans ce court cours, nous avons abordé une suite complète de concepts de développement Web frontal qui, pour bien les apprendre , demanderaient encore de nombreuses heures d' apprentissage et de pratique. J'espère que ce cours vous a permis d'avoir une vue d'ensemble de la place de chaque technologie dans le processus de développement Web frontal. Si vous souhaitez approfondir vos connaissances, vous pouvez consulter ma gamme complète de cours sur christhefreelancer.com/courses. Comme toujours, si vous avez des questions ou des préoccupations concernant ce que nous avons abordé dans le cours d'aujourd'hui, laissez un commentaire dans la zone de discussion ci-dessous, et je ferai de mon mieux pour vous indiquer la bonne direction. Comme toujours, merci de m'avoir écouté et j'espère vous revoir lors de certains de mes autres cours.