Traccia Codice di Partenza Soluzione Traccia
Create un array di oggetti con delle proprietà come url dell’immagine, titolo e descrizione (3 oggetti vanno più che bene). Con questo array di oggetti dovete generare dinamicamente delle card con i rispettivi dati inseriti.
Vi fornisco io l’esempio di card CSS da riprodurre ed il file di Tailwind CSS da importare.
Se il risultato è corretto, ogni soluzione è valida.
Codice di Partenza
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
< title >Esercizio #5</ title >
< script src = "https://cdn.tailwindcss.com" ></ script >
< div id = "container" class = "flex flex-wrap w-1/2 m-10" >
<!-- Inizio card esempio -->
< div class = "w-full md:w-1/2 xl:w-1/3 px-4" >
< div class = "bg-white rounded-lg overflow-hidden mb-10" >
src = "https://img.freepik.com/free-vector/night-ocean-landscape-full-moon-stars-shine_107791-7397.jpg?w=2000"
< div class = "p-8 sm:p-9 md:p-7 xl:p-9 text-center" >
< h3 class = "font-semibold text-dark text-xl" >Titolo di prova</ h3 >
< p class = "text-base text-body-color leading-relaxed mb-7" >
Lorem ipsum dolor sit amet pretium consectetur adipiscing elit.
Lorem consectetur adipiscing elit.
<!-- Fine card esempio -->
Soluzione
Metto solo la parte dello script Javascript per non ripetermi inutilmente.
Array di oggetti con i dati per le card come URL, titolo e descrizione.
"Lorem ipsum dolor sit amet pretium consectetur adipiscing elit. Lorem consectetur adipiscing elit." ,
"Lorem ipsum dolor sit amet pretium consectetur adipiscing elit. Lorem consectetur adipiscing elit." ,
"Lorem ipsum dolor sit amet pretium consectetur adipiscing elit. Lorem consectetur adipiscing elit." ,
Ciclo forEach su ogni oggetto dei dati per generare la Card.
Funzioni effettiva che genera la singola Card.
function creaCard ( data ) {
const card = document. createElement ( "div" );
card.className = "w-full md:w-1/2 xl:w-1/3 px-4" ;
const innerDiv = document. createElement ( "div" );
innerDiv.className = "bg-white rounded-lg overflow-hidden mb-10 shadow-xl" ;
card. appendChild (innerDiv);
const immagine = document. createElement ( "img" );
immagine.className = "w-full" ;
innerDiv. appendChild (immagine);
const textContainer = document. createElement ( "div" );
textContainer.className = "p-8 sm:p-9 md:p-7 xl:p-9 text-center" ;
innerDiv. appendChild (textContainer);
const titolo = document. createElement ( "h3" );
titolo.className = "font-semibold text-dark text-xl" ;
titolo. appendChild (document. createTextNode (data.titolo));
textContainer. appendChild (titolo);
const descrizione = document. createElement ( "p" );
descrizione.className = "text-base text-body-color leading-relaxed mb-7" ;
descrizione. appendChild (document. createTextNode (data.descrizione));
textContainer. appendChild (descrizione);
document. getElementById ( "container" ). appendChild (card);