3E e 3I SIA: spiegazione della pagina Index.html e del file style.css dell'esercizio Responsive assegnato alle classi



Spiegazione della pagina index.html


1. <!doctype html>: Questo è l'inizio del documento HTML. Dice al browser che il documento è scritto in HTML5, la versione più recente di HTML.


2. <head>: Qui inseriamo le informazioni che non sono visibili direttamente nella pagina ma sono importanti per il funzionamento e l'ottimizzazione del sito.

- <meta charset="UTF-8">: Questa riga imposta il set di caratteri del documento su UTF-8, un tipo comune che supporta la maggior parte dei caratteri delle lingue del mondo.

- <meta http-equiv="Content-type"…>: Assicura che il contenuto del documento è di tipo HTML e specifica di nuovo l'uso del charset UTF-8, una forma ridondante ma può prevenire errori.

- <title>Home - Sito responsive della 3E Sia </title>: Questo è il titolo della pagina. Appare nella scheda del browser.

- <meta name="viewport"…>: Fondamentale per il design responsive. Fa sì che il sito si adatti bene alle dimensioni dello schermo del dispositivo (es. smartphone, tablet).

- <link href="css/style.css" rel="stylesheet" />: Collega un file CSS esterno chiamato "style.css" per dare stile alla pagina.

- <script src="js/jquery-1.7.1.min.js"></script>: Importa la libreria jQuery, che aiuta a semplificare la scrittura di JavaScript.

3. Stile e Script Inline

- <style type="text/css">...</style>: Inserisce uno stile specifico; in questo caso, specifica che qualsiasi testo con la classe `auto-style1` sarà colorato di giallo.

- <script>...</script>: Questo script in jQuery rende cliccabile il "menu" navigazione. Quando clicchi sull'icona del menu (3 barre orizzontali), il menu appare o scompare.

Corpo del Documento (`<body>`)

4. <div id="container">: Questa è la cornice principale che contiene tutto il contenuto visibile del sito.

5. Header (`<div id="header">`):

- Contiene il titolo del sito e l'icona del menu per i dispositivi mobili. Il titolo ha parole colorate di giallo create usando gli stili definiti prima.

6. Menu (`<div id="menu">`):

- Una lista di link alle diverse sezioni del sito: Home, Novità, Chi Siamo, Cosa Facciamo, Contatti. I link sono colorati di blu.

7. Main Content (`<div id="main">`)

- <div id="pagina">Home</div>: Indica che ci troviamo nella sezione Home.

- Colonna Sinistra (`<div id="colonna-sx">`):

- Contiene un saluto, un'immagine di benvenuto e una descrizione dell'azienda "Web3SIA" con le sue competenze. Sono elencati vari servizi come siti responsive e grafica.

- Due sezioni di "Articolo" con testo di esempio in latino (per simulare contenuto reale).

- Colonna Destra (`<div id="colonna-dx">`):

- Immagini con link: due esempi di immagini collegate a pagine 'x' e 'y'.

- Un box con un testo di esempio e una lista di link preferiti.

8. Footer (`<div id="footer">`):

- Un messaggio che invita l'utente a ridimensionare la finestra per vedere il design responsive in azione. Include dettagli sull'anno scolastico corrente e la classe.

Note Conclusive

- <div class="clear"></div>: Questo è solitamente usato per evitare problemi di layout con contenitori flottanti (non direttamente visibile).

Tutto ciò è racchiuso all'interno del contenitore principale `<div id="container">`. Questo layout semplice e commentato è utile per vedere come appare una struttura HTML di base ma completa, inclusa la gestione di uno stile base e funzionalità tramite CSS e JavaScript.


Spiegazione del file style.css

Commenti all'inizio del documento

/*
Esempio di impostazione di un sito web responsive
Classe 3 E SIA 2024-2025 Istituto Bassi di Lodi -
Prof. Paolo Latella
*/
```
- Questi sono commenti e non sono letti dal computer. Servono a spiegare o a dare informazioni su chi ha creato il codice e perché.


Corpo del Documento (`body`)
```css
body {
font: 16px/28px;
font-family: 'Arial';
background: #D2D2D2;
line-height:25px;
}

- font: 16px/28px;`: Imposta la dimensione del testo a 16 pixel con un'interlinea (spazio tra le righe) di 28 pixel.
- font-family: 'Arial': Usa il font Arial.
- background: #D2D2D2;: Sfondo grigio chiaro.
- line-height:25px;: Un altro modo per impostare l'interlinea a 25 pixel (questa riga può essere superflua dato che esiste già `line-height` all'inizio).

Linea Orizzontale (`hr`)
```css
hr {
border-bottom: 1.5px solid #008000;
border-top: none;
margin: 20px 0px 15px 0px;
}
```
- border-bottom: 1.5px solid #008000;: Crea una linea verde di 1.5 pixel di spessore in basso.
- border-top: none;: Non c'è linea in alto.
- margin: 20px 0px 15px 0px;: Margini di 20 pixel sopra e 15 pixel sotto.


 Contenitore Generale (`#container`)
```css
#container {
width: 960px;
margin: 0 auto;
background: #FFFFFF;
}
```
- width: 960px;: Larghezza fissa di 960 pixel.
- margin: 0 auto;: Centra il contenitore orizzontalmente nella pagina.
- background: #FFFFFF;: Sfondo bianco.


Header (`#header`)
```css
#header {
width: 920px;
float: left;
padding: 20px;
background: #0000CD;
background-image: linear-gradient(#0000CD, #00FFFF);
}
```
- width: 920px;: Larghezza di 920 pixel.
- float: left;: Si posiziona a sinistra.
- padding: 20px;: Spazio interno di 20 pixel su tutti i lati.
- background: #0000CD;: Colore blu intenso.
- background-image: linear-gradient(#0000CD, #00FFFF);: Crea una transizione dai toni del blu al blu chiaro.

Menu (`#menu`)
```css
#menu {
width: 100%;
float: right;
background: #F0F0F0;
}
```
- width: 100%;: Occupa tutta la larghezza disponibile.
- float: right;: Si posiziona a destra.
- background: #F0F0F0;: Colore di sfondo grigio chiaro.

Main, Footer, Titolo e Altri Elementi
- Questi stili sono ripetuti tra main, footer e altre sezioni, con larghezze e posizionamenti simili a `#header` e `#menu`
- Il titolo (`#titolo`) include caratteristiche come il grassetto, grande dimensione dei caratteri, testo bianco e nessuna decorazione sotto il testo.

Menu di Navigazione
```css
#menu ul {
margin: 0px 0 0px 0px;
float: right;
width: 100%;
list-style: none;
}
```
- float: right;: Il menu si posiziona a destra.
- list-style: none;: Rimuove i punti elenco (bullet) dal menu.

Stile Generale dei Link nel Menu
```css
#menu a {
color: #222;
text-decoration

Stile dei Link nel Menu
```css
#menu a {
color: #222;
text-decoration: none;
display: block;
font: 14px;
padding: 14px 20px;
}
```
- color: #222;: Imposta il colore del testo dei link su un grigio scuro.
- text-decoration: none;: Rimuove la sottolineatura dai link.
- display: block;: Ogni link occupa un blocco intero, consentendo che il link sia cliccabile in tutta l'area del padding.
- font: 14px;: Imposta la dimensione del font su 14 pixel.
- padding: 14px 20px;: Aggiunge 14 pixel di spazio interno sopra e sotto il testo del link e 20 pixel a destra e sinistra.

Effetto Hover sui Link del Menu
```css
#menu a:horver {
background: #F0F0F0;
color: #000;
}

- background: #F0F0F0;: Imposta il colore di sfondo su grigio chiaro quando si passa sopra con il mouse (note: dovrebbe essere `:hover` non `:horver`).
- color: #000;: Cambia il colore del testo in nero durante il passaggio del mouse.


Stile della Pagina e Link
```css
#pagina {
width: 100%;
float: left;
display: block;
font: 14px;
color: #0000CD;
font-weight: bold;
}
```
- width: 100%; float: left;: Imposta il contenuto per occupare tutta la larghezza disponibile posizionandosi a sinistra.
- display: block;: Elemento a livello di blocco.
- font: 14px; color: #0000CD;: Imposta la dimensione del font su 14 pixel e il colore del testo in blu scuro.
- font-weight: bold;: Rende il testo in grassetto.


### Box e Box di Collegamento
```css
#link {
padding: 10px;
margin-top: 20px;
width: auto;
height: auto;
}
```
```css
#box {
margin-top: 10px;
padding: 10px;
border: 1px dashed #0000CD;
width: auto;
height: auto;
}
```
- #link e #box: Entrambi hanno un padding di 10 pixel e larghezza/altezza automatica per adattarsi al contenuto.
- #box ha inoltre un bordo con tratteggio blu.

Colonne di Layout
```css
#colonna50-sx {
float: left;
width: 48%;
margin-right: 2%;
height: auto;
margin-bottom: 10px;
}
#colonna50-dx {
float: left;
width: 48%;
margin-left: 1%;
height: auto;
margin-bottom: 10px;
}
```
- Entrambe le colonne sono fluttuanti a sinistra e occupano quasi metà della larghezza visibile, lasciando uno spazio tra loro tramite marginale destro e sinistro.

Immagini e Testo
```css
.immagine {
width: 100%;
height: auto;
margin-bottom: 10px;
}
.centra {
text-align: center;
}
.giustifica {
text-align: justify;
}
```
- immagine: Le immagini si adattano alla larghezza al 100% del loro contenitore e mantengono proporzioni con altezza automatica.
- .centra e .giustifica: Centrano il testo e lo giustificano, rispettivamente.


```css
.evidenzia {
color: #000;
background: #FFFFA0;
padding: 5px;
border-radius: 4px;
}
```
- .evidenzia: Questa classe è utilizzata per evidenziare degli elementi di testo tramite un colore di sfondo giallo chiaro `#FFFFA0`, rendendo il testo nero. Un padding di 5 pixel crea uno spazio attorno al contenuto, e gli angoli arrotondati con `border-radius: 4px` aggiungono un tocco visivo morbido.


.linkpagina {
width: 100%;
font: 10px;
margin-top: -20px;
background: #777;
color: #FFFFFF;
text-align: center;
}
```
- `.linkpagina`: Questo stile si applica a una sezione di link, tipicamente posizionata in basso, come un "footer" di link per la navigazione tra pagine. Occupa tutta la larghezza del suo contenitore. Il testo è piccolo, a 10 pixel, e allineato centralmente. Il colore di sfondo è un grigio medio `#777`, mentre il testo è bianco, creando un buon contrasto per visibilità.

```css
.clear {
clear: both;
}
```
- .clear`: Questa classe viene utilizzata per risolvere problemi con gli elementi flottanti (`float`). Assicura che l'elemento successivo alla classe `.clear` vada sotto gli elementi fluttuanti precedenti, evitando che adiacenti contenuti si trovino in sovrapposizione.


/* Media queries per il responsive design

- colonna-sx: Posizionata a sinistra, contiene i contenuti più importanti.
- colonna-dx: Posizionata a destra, usata come barra laterale (sidebar).
- colonna-cn: Contiene contenuti disposti in una sola riga.
*/


@media (min-width: 1200px) {
/* Quando lo schermo è largo almeno 1200px */
#container {
width: 1170px; /* Larghezza del contenitore impostata a 1170 pixel */
margin: 0 auto; /* Centra il contenitore nella pagina */
}
#header, #main, #footer {
width: 1130px; /* Elementi intestazione, principale e piè di pagina larghi 1130 pixel */
float: left; /* Ogni elemento allineato a sinistra */
padding: 20px; /* Spazio attorno agli elementi per separare i contenuti dal bordo */
}
#menu {
width: 100%; /* Menu occupa tutta la larghezza disponibile */
float: right; /* Menu allineato a destra */
display: block; /* Visualizza il menu come blocco */
}
#colonna-cn {
width: 98%; /* Larghezza della colonna centrale, quasi tutta disponibile */
float: left; /* Allineato a sinistra */
}
#colonna-sx {
width: 65%; /* La colonna sinistra occupa il 65% della larghezza */
float: left; /* Allineato a sinistra */
}
#colonna-dx {
width: 30%; /* La colonna destra (sidebar) occupa il 30% della larghezza */
float: right; /* Allineato a destra */
}
}


@media (min-width: 980px) and (max-width: 1199px) {
/* Quando lo schermo è largo tra 980px e 1199px */
#container {
width: 960px; /* Larghezza del contenitore impostata a 960 pixel */
margin: 0 auto; /* Centra il contenitore nella pagina */
}
#header, #main, #footer, #colonna-cn {
width: 920px; /* Elementi larghi 920 pixel, includendo la colonna centrale */
float: left; /* Allineati a sinistra */
padding: 20px; /* Spazio attorno agli elementi */
}
#menu {
width: 100%; /* Menu occupa tutta la larghezza disponibile */
float: right; /* Allineato a destra */
display: block; /* Visualizzato come blocco */
}
#colonna-cn {
width: 98%; /* Quasi tutta la larghezza disponibile per la colonna centrale */
float: left; /* Allineato a sinistra */
}
#colonna-sx, #colonna-dx {
width: 65%, 30%; /* Stessa larghezza per le colonne sinistra e destra come nella precedente media query */
float: left, right; /* Allineate rispettivamente a sinistra e destra */
}
}


@media (min-width: 768px) and (max-width: 979px) {
/* Quando lo schermo è largo tra 768px e 979px */
#container {
width: 748px; /* Larghezza del contenitore impostata a 748 pixel */
margin: 0 auto; /* Centra il contenitore */
}
#header, #main, #footer, #colonna-cn {
width: 708px; /* Elementi larghi 708 pixel, includendo la colonna centrale */
float: left; /* Allineati a sinistra */
padding: 20px; /* Spazio attorno agli elementi */
}
#menu {
width: 100%; /* Menu occupa tutta la larghezza disponibile */
float: right; /* Allineato a destra */
display: block; /* Visualizzato come blocco */
}
#colonna-cn {
width: 98%; /* Quasi tutta la larghezza disponibile per la colonna centrale */
float: left; /* Allineato a sinistra */
}
#colonna-sx, #colonna-dx {
width: 65%, 30%; /* Stessa larghezza per le colonne di sinistra.


#colonna-sx {
width: 65%; /* La colonna sinistra continua a occupare il 65% della larghezza */
float: left; /* Allineato a sinistra */
}
#colonna-dx {
width: 30%; /* La colonna destra continua a occupare il 30% della larghezza */
float: right; /* Allineato a destra */
}
}

@media (max-width: 767px) {
/* Quando lo schermo è più stretto di 768px */
body {
padding: 10px; /* Aggiunge un po' di padding intorno al corpo del documento */
background: #FFFFFF; /* Imposta uno sfondo bianco per il corpo */
}
#container {
width: 100%; /* Il contenitore occupa tutta la larghezza disponibile */
margin: 0 auto; /* Centro, ma non rilevante quando la larghezza è 100% */
}
#header, #main, #footer {
width: 100%; /* Questi elementi occupano tutta la larghezza disponibile */
padding: 10px 0 10px 0; /* Imbottitura su e giù di 10px, niente sui lati */
}
#menu {
width: 100%; /* Menu occupa tutta la larghezza disponibile */
float: right; /* Allineato a destra, ma sarà nascosto */
}
#colonna-cn {
width: 100%; /* La colonna centrale occupa tutta la larghezza */
float: left; /* Allineato a sinistra */
padding: 10px 0 0 0; /* Imbottitura solamente sulla parte superiore */
}
#colonna-sx {
width: 100%; /* La colonna sinistra occupa tutta la larghezza */
float: left; /* Allineato a sinistra */
padding: 10px 0 0 0; /* Imbottitura sulla parte superiore */
}
#colonna-dx {
width: 100%; /* La colonna destra occupa tutta la larghezza */
float: right; /* Allineato a destra */
padding: 10px 0 0 0; /* Imbottitura sulla parte superiore */
}
#titolo a {
font-size: 30px; /* Aumenta la dimensione del font del titolo */
margin-left: 10px; /* Margine a sinistra di 10px */
}
#foodter {
width: 100%; /* Elemento occupa tutta la larghezza disponibile */
float: left; /* Allineato a sinistra */
padding: 10px 0 0 0; /* Imbottitura sulla parte superiore */
}
#footer p {
margin-left: 10px; /* Margine a sinistra di 10px */
}
/* Quando viene visualizzato su dispositivi mobili come smartphone */
#menu {
display: none; /* Nasconde il menu classico */
}
#menu ul li {
float: none; /* Elementi di lista non vengono fluttuati */
}
.smartmenu {
display: block; /* Visualizza il menu mobile con l'icona */
float: right; /* Allineato a destra */
padding: 5px; /* Imbottitura intorno al menu */
cursor: pointer; /* Cambia il cursore il puntatore della mano */
margin: -15px 20px 0 0; /* Margine solo a destra */
color: #FFFFFF; /* Testo bianco */
background: #006FFF; /* Sfondo azzurro brillante */
}
.icon-smartmenu {
display: block; /* Visualizza le icone del menu */
width: 18px; /* Larghezza 18px */
height: 2px; /* Altezza 2px */
margin: 5px; /* Margine intorno all'icona */
background-color: #FFFFFF; /* Sfondo bianco per le barre icona */
}
.mostra-smartmenu {
display: block!important; /* Forza la visualizzazione di particolari elementi smartmenu */
}
}

Riassunto: Questo codice CSS utilizza le media queries per modificare il layout di una pagina web a seconda della grandezza dello schermo. Per schermi più grandi (almeno 1200px), le colonne sono allineate e dimensionate per ottimizzare l'uso dello spazio disponibile. Man mano che lo schermo si restringe, il layout cambia per adattarsi.


Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi in Excel e fogli di Google