Tema preferito di Ros:
Per Versioning si intende la gestione di più versioni di uno stesso codice sorgente.
Lo strumento usato in tutto il mondo per farlo è git.
git -v
Se avevi delle finestre del terminale aperte (anche su Visual Studio Code) chiudile e riaprile dopo l'installazione.
git config --global user.name "Nome Cognome" git config --global user.email "n.cognome@donboscosandona.it"
Scegli anche di aggiungere un file readme in modo da non partire con un repository completamente vuoto (questo in alcune situazioni creava dei problemi con Visual Studio Code).
Puoi anche invitare altri utenti a collaborare al tuo repository, assegnando loro permessi di sola lettura o anche di scrittura.
Se il pulsante non appare...
- Chiudi eventuali progetti già aperti su Code
- Verifica di aver installato correttamente Git sul tuo computer.
Riguardo ai nomi delle cartelle
Se stai clonando un repository che si chiama "rep-prova" non serve che tu crei nel tuo computer una cartella con questo nome: scegliendo la cartella Documenti, Desktop o altro, git per prima cosa creerà al suo interno una cartella col nome del progetto, dopodiché scaricherà i file al suo interno.
Se il pannello non compare...
Dal menù File di Code scegli Apri cartella e vai ad aprire la cartella in cui ha fatto il clone.
Nei progetti condivisi questa funzionalità è molto utile, perché ti permette di vedere direttamente dal sito su quali file stanno lavorando gli altri sviluppatori.
Allenati a fare i commit e a sincronizzarli con GitHub
Dovrai farla diventare un'abitudine e questo potrà salvarti in molte situazioni. Ci è capitato spesso di vedere allievi che non facevano commit e con le loro modifiche a un certo punto incasinavano così tanto l'applicazione da non sapere più da che parte prenderla. Se avessero fatto dei commit avrebbero potuto annullare facilmente le ultime modifiche e tornare a una versione precedente - funzionante! - dell'applicazione.
Prima di iniziare qualsiasi progetto, prendi l'abitudine di creare un repository su GitHub e di clonarlo in locale come abbiamo visto: avrai così a disposizione tutti i vantaggi del Versioning.
Si utilizza il nome index perchè è il file principale di ogni singolo sito web ovvero quello che il browser cerca quando entriamo in un sito web
Gli elementi sono tutte le parti della pagina web che la compongono, come un titolo, testo, paragrafo ecc... .
<h1></h1> = titolo <p></p> = paragrafo <div></div> = contenitore
<h1>ciao</h1> = titolo ciao <p>mi chiamo mario</p> = paragrafo dove viene scritto mi chiamo mario <div><h1>benvenuto</h1></div> = contenitore con dentro un titolo
I tag sono formati da uno di apertura(<h1>) e chiusura (</h1>), si usa quello di chiusura per indicare dove finisce l'elemento. Tutti i tag si aprono e si chiudono con poche eccezioni come le immagini (<img>)
L'unica modifica da fare è cambiare il lang (language) impostando it (italiano): questo informerà il browser dell'utente che i contenuti della pagina sono in italiano, e proporrà magari a chi usa un'altra lingua di tradurre la pagina con Google Translate.
Prendi l'abitudine fin d'ora di commentare tutto il tuo codice.
<!-- Testo del commento -->
Esercizio
Commenta lo starter template di Bootstrap spiegando a cosa servono i vari tag.
Tieni in ordine il tuo codice
Di tanto in tasto usa Prettier (ALT + SHIFT + F) per tenere in ordine l'indentazione del tuo codice.
Se volessi aprire il mio link in un'altra pagina del mio browser devo utilizzare un altro attributo, ovvero target="_blank"
La nostra immagine deve essere nella stessa cartella del sito oppure dobbiamo dire a HTML dove si trova
Se volessi modificare larghezza e altezza devo utilizzare gli attributi width e heigh. Il valore va espresso o in pixel o percentuale.
Non si accetteranno lavori approssimativi o con foto brutte o sgranate.
Per prima cosa vado subito ad indicare la larghezza del video con l'attributo width
Dentro il tag video dobbiamo utilizzare l'attributo controls, in modo da avere i controlli video (pausa, play ecc...). L'attributo autoplay permette di far partire il video in automatico, mentr muted muto. ATTENZIONE SE SI TOGLIE CONTROLS E' BENE METTERE AUTOPLAY ACCOMPAGNATO DA MUTE PERCHE' ALCUNI BROWSER NON FANNO APPARIRE IL VIDEO SE NON E' MUTO.
Abbiamo specificato una larghezza del 100%, tolto l'altezza, e specificato che vogliamo che le proporzioni del video siano 3:1 (la larghezza è tre volte l'altezza).
Il tag span è utilizzato per elementi inline, come una riga di testo, mentre il tag div è utilizzato per contenuti a livello di blocco (block).
Nota che l'HTML permette di definire la struttura logica della tabella e dei suoi contenuti: il compito di abbellirla sarà lasciato ai CSS (Cascading Style Sheets: fogli di stile a cascata)
Abbiamo tre modi per inserire CSS nell'HTML: vedremo che quello migliore è l'ultimo, perché permette di tenere il codice più in ordine.
Questo metodo è da usare solo in casi particolari: è sempre meglio tenere il CSS in un file distinto per questioni di ordine e leggibilità.
Questo metodo è sconsigliato: è sempre meglio tenere il CSS in un file distinto per questioni di ordine e leggibilità.
Denominazione dei file CSS
I fogli di stile possono essere chiamati in qualunque modo, ma solitamente si usa:
- main.css per il foglio di stile principale, che contiene le regole da applicare a tutto il sito
- nome_pagina.css per le regole aggiuntive, da applicare solo a una specifica pagina
Se applichi degli stili a livello di singolo elemento con l'attributo style, questi avranno la priorità su tutto.
Conviene usare questo approccio solo quando si vogliono applicare degli stili a un unico specifico elemento nella pagina.
Possiamo inserire l'in di un elemento anche in un href in modo che se clicco il bottone mi porta a quell'elemento (scroll pagina).
Quando prepari i tuoi siti ti consigliamo di non scegliere colori a caso, ma invece di prenderli da una palette preparata da designer esperti.
nome-blocco__nome-elemento
Il vantaggio di legare gli elementi al blocco indipendentemente dal livello del loro annidamento è che se un giorno volessimo cambiare la struttura interna del blocco non dovremmo ridenominare tutte le classi.
search-form__button_disabled search-form__button_xs search-form_dark
Se div1 contiene div2 e div2 contiene div3, e la posizione di div1 è relative mentre quella di div2 è static, div3 che ha posizionamento absolute sarà posizionato relativamente a div1.
Se utilizzo display inline posso solo settare il margine destro e sinistro, mentre se voglio che il mio elemento si comporti come un blocco(margini, padding, larghezza e altezza) devo utilizzare inline-block.
ELEMENTI DI TIPO BLOCK <div> <section> <article> <nav> <h1> <h2> <p> ELEMENTI DI TIPO INLINE <a> <span> <img>
Punti bonus per lavori particolarmente curati nei dettagli.
Punti malus per codice disordinato o nomi delle classi insensati o chatGPT e simili.
color: Colore del testo background-color: Colore dello sfondo display: cambio il modo di visualizzazione di un elemento (inline, block ...) padding: imbottitura, ovvero un "margine" interno margin: margini esterni width: larghezza di un elemento height: altezza di un elemento
:hover (cambio stato al passaggio del cursore) :active (cambio stato se premo) ::first-of-type rappresenta il primo elemento del suo tipo tra un gruppo di elementi ::after/before (aggiungo dopo/prima l'elemento) ::first-letter (prima lettera di un elemento scritto come h1 o p)
Tieni presente che ciascun campo di input deve avere un attributo name per essere inviato.
Se l' attributo name viene omesso, il valore del campo di input non verrà inviato affatto.
Esercizio da fare a coppie. È sufficiente lavorare insieme su un unico pc.
<!doctype html> <html lang="it"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap demo</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> </head> <body> <h1>Hello, world!</h1> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script> </body> </html>
Per usare la griglia di Bootstrap bisogna sempre essere dentro a un container.
<div class="container"> <!-- Contenuto --> </div>
<div class="container-sm">100% wide until small breakpoint</div> <div class="container-md">100% wide until medium breakpoint</div> <div class="container-lg">100% wide until large breakpoint</div> <div class="container-xl">100% wide until extra large breakpoint</div> <div class="container-xxl">100% wide until extra extra large breakpoint</div>
<div class="container-fluid"> ... </div>
<div class="container text-center"> <div class="row"> <div class="col"> Column </div> <div class="col"> Column </div> <div class="col"> Column </div> </div> </div>
<div class="container text-center"> <div class="row"> <div class="col"> 1 of 3 </div> <div class="col-6"> 2 of 3 (wider) </div> <div class="col"> 3 of 3 </div> </div> <div class="row"> <div class="col"> 1 of 3 </div> <div class="col-5"> 2 of 3 (wider) </div> <div class="col"> 3 of 3 </div> </div> </div>
<div class="container text-center"> <div class="row"> <div class="col-sm-8">col-sm-8</div> <div class="col-sm-4">col-sm-4</div> </div> <div class="row"> <div class="col-sm">col-lg</div> <div class="col-sm">col-lg</div> <div class="col-sm">col-lg</div> </div> </div>
<div class="container text-center"> <!-- Stack the columns on mobile by making one full-width and the other half-width --> <div class="row"> <div class="col-md-8">.col-md-8</div> <div class="col-6 col-md-4">.col-6 .col-md-4</div> </div> <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop --> <div class="row"> <div class="col-6 col-md-4">.col-6 .col-md-4</div> <div class="col-6 col-md-4">.col-6 .col-md-4</div> <div class="col-6 col-md-4">.col-6 .col-md-4</div> </div> <!-- Columns are always 50% wide, on mobile and desktop --> <div class="row"> <div class="col-6">.col-6</div> <div class="col-6">.col-6</div> </div> </div>
Quando lo spazio su una riga termina, le colonne vengono mandate a capo automaticamente nella riga successiva.
Lavoro da fare a coppie entro martedì 12 dicembre. Sarà possibile lavorarci anche da casa.
Cura anche la versione mobile.