<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Laura Albano - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Laura Albano - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:28:04 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/author/laura-albano/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ In cosa consiste il problema aritmetico dei numeri a virgola mobile? ]]>
                </title>
                <description>
                    <![CDATA[ Ti è mai capitato di lavorare con numeri come 1/3, il cui risultato è 0.33333... continuando all'infinito? Noi umani di norma arrotondiamo numeri del genere, ma ti sei mai chiesto come vengono gestiti dai computer? In questo articolo esploreremo il modo in cui i computer gestiscono i numeri decimali illimitati, ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/problema-numeri-in-virgola-mobile/</link>
                <guid isPermaLink="false">672bc34c3c328904519c89a1</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Laura Albano ]]>
                </dc:creator>
                <pubDate>Thu, 06 Feb 2025 16:13:26 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2025/02/9824633d-727a-49ce-9080-0fa3a7b18ed6.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/what-is-a-floating-point-arithmetic-problem/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">What is a Floating-Point Arithmetic Problem?</a>
      </p><p>Ti è mai capitato di lavorare con numeri come 1/3, il cui risultato è 0.33333... continuando all'infinito? Noi umani di norma arrotondiamo numeri del genere, ma ti sei mai chiesto come vengono gestiti dai computer?</p><p>In questo articolo esploreremo il modo in cui i computer gestiscono i numeri decimali illimitati, includendo il concetto degli errori di precisione. Esamineremo il problema aritmetico della virgola mobile, una problematica universale che riguarda vari linguaggi di programmazione. Ci focalizzeremo in particolare su come JavaScript affronta questo problema. </p><p>Inoltre, impareremo come funzionano le operazioni binarie dietro le quinte, il limite oltre il quale JavaScript tronca i numeri, basandosi sullo standard IEEE 754, e introdurremo <code>BigInt</code> come soluzione per gestire in maniera accurata grandi numeri senza perdere precisione. </p><p>Innanzitutto prendiamo in considerazione un esempio. Riesci ad indovinare il risultato di questa operazione?</p><pre><code class="language-javascript">console.log(0.1 + 0.2);
</code></pre><p>Potresti aver pensato che la risposta fosse 0.3, vero? Ma in realtà il risultato è:</p><pre><code class="language-javascript">Output: 0.30000000000000004
</code></pre><p>Ti starai chiedendo perché ciò accada. Perché ci sono così tanti zero in più, e perché l'ultima cifra è 4?</p><p>La risposta è semplice: i numeri 0.1 e 0.2 non possono essere rappresentati in maniera precisa in JavaScript (ovvero "esattamente" o "accuratamente")</p><p>Sembrerebbe facile, no? Ma la spiegazione è un po' più complicata.</p><p>Quindi cosa ne pensi? È un bug o una funzionalità?</p><p>Be', non è un bug. È un problema di base, che ha a che fare con il metodo in cui i computer gestiscono i numeri, in particolare i numeri a virgola mobile. &nbsp;</p><h2 id="perch-succede-questa-cosa"><strong>Perché succede questa cosa? </strong></h2><p>Capiamolo attraverso la matematica di base.</p><p>La frazione 1/3, è rappresentata in decimali da 0.33333... dove il 3 si ripete all'infinito. Non possiamo scriverlo in maniera esatta, quindi lo approssimiamo come 0.333 o 0.333333 per risparmiare tempo e spazio. </p><p>In maniera simile, con un computer, dobbiamo comunque approssimare, perché 1/3 o 0.3333... sarebbe un numero troppo grande e occuperebbe un spazio infinito (che non abbiamo). </p><p>Ciò porta a quello che noi chiamiamo il problema aritmetico della virgola mobile. </p><h2 id="il-problema-aritmetico-della-virgola-mobile">Il problema aritmetico della virgola mobile</h2><p>In parole povere, i numeri a virgola mobile sono numeri che non possono essere scritti in maniera esatta, e che quindi vengono approssimati. In un computer questo tipo di approssimazione può portare a piccoli errori di precisione, che chiamiamo il problema aritmetico della virgola mobile. </p><h2 id="spiegazione-binaria"><strong>Spiegazione binaria</strong></h2><p>Adesso che ci siamo occupati di questa semplice spiegazione, comprendiamo questo concetto anche dal punto di vista binario. JavaScript gestisce tutto in codice binario dietro le quinte. </p><p>Binario è un sistema di numeri che utilizza solo due cifre: 0 e 1.</p><h3 id="perch-0-1-e-0-2-non-possono-essere-rappresentati-accuratamente-nel-sistema-binario"><strong>Perché 0.1 e 0.2 non possono essere rappresentati accuratamente nel sistema binario? </strong></h3><p>Il problema principale è che non tutti i numeri decimali possono essere perfettamente rappresentati come frazioni binarie. </p><p>Prendiamo 0.1 come esempio: quando si prova a rappresentare 0.1 in binario, si scopre che non può essere espresso come una frazione binaria finita, invece diventa una frazione continua, proprio come 1/3 in numeri decimali diventa 0.333..., ripetuto all'infinito. </p><p>In binario, 0.1 diventa:</p><pre><code class="language-plaintext">0.0001100110011001100110011001100110011... (si ripete all'infinito)
</code></pre><p>Dato che i computer hanno una memoria limitata, non possono memorizzare questa sequenza infinita in maniera esatta, ma la devono troncare ad un certo punto, e ciò crea un piccolo errore di arrotondamento. Questo è il motivo per cui 0.1 in binario è solo una approssimazione dell'effettivo numero. </p><p>Come 0.1, 0.2 non può essere rappresentato accuratamente nel sistema binario. Diventa invece: </p><pre><code class="language-plaintext">0.00110011001100110011001100110011... (si ripete all'infinito)
</code></pre><p>Di nuovo il computer tronca questa sequenza binaria infinita, causando un piccolo errore di rappresentazione. </p><p>Quindi cosa succede quando addizioniamo 0.1 + 0.2? Quando si addizionano 0.1 + 0.2 in JavaScript, le approssimazioni binarie per 0.1 e 0.2 sono sommate. Ma, dato che entrambi i valori sono solo approssimazioni, anche il risultato è una approssimazione.</p><p>Invece di ottenere esattamente 0.3, otterremo: </p><pre><code class="language-javascript">console.log(0.1 + 0.2); // Output: 0.30000000000000004
</code></pre><p>Questo minimo errore si verifica perché né 0.1 né 0.2 possono essere rappresentati accuratamente nel sistema binario, quindi il risultato finale ha un piccolo errore di arrotondamento. </p><h2 id="come-tronca-i-numeri-javascript"><strong>Come tronca i numeri JavaScript?</strong></h2><p>Adesso sorge una domanda: come fa JavaScript a sapere quando deve troncare il valore (<strong>t<strong>r</strong>oncamento</strong> significa abbreviare un numero rimuovendo le cifre in più dopo un certo punto)?</p><p>C'è un limite massimo ed un limite minimo per farlo. </p><p>Per gestire questa operazione nel mondo dei computer, abbiamo uno standard che definisce come i numeri a virgola mobile vengono memorizzati e calcolati. </p><h2 id="standard-ieee-754"><strong><strong>Standard</strong> <strong>IEEE 754</strong></strong></h2><p>JavaScript utilizza lo standard IEEE 754 per gestire le operazioni aritmetiche con i numeri a virgola mobile. </p><p>Lo standard stabilisce dei limiti di numeri interi sicuri per il tipo <code>Number</code> in JavaScript, che evitano la perdita di precisione:</p><ul><li><strong>Massimo Numero Intero Sicuro<strong>:</strong></strong> 2^53 - 1 o 9007199254740991</li><li><strong>Minimo Numero Intero Sicuro<strong>:</strong></strong> -(2^53 - 1) o -9007199254740991</li></ul><p>Oltre questi limiti JavaScript non può rappresentare accuratamente i numeri interi, dato il modo in cui funziona l'aritmetica dei numeri a virgola mobile.</p><p>Per questa ragione, JavaScript ci fornisce due costanti per rappresentare questi limiti: &nbsp;</p><ul><li><code>Number.MAX_SAFE_INTEGER</code></li><li><code>Number.MIN_SAFE_INTEGER</code></li></ul><h3 id="nel-caso-avessi-bisogno-di-un-numero-pi-grande"><strong>Nel caso avessi bisogno di un numero più grande?</strong></h3><p>Se hai bisogno di lavorare con numeri più grandi del massimo numero intero sicuro (come quelli utilizzati nella crittografia o nelle finanze), JavaScript ha una soluzione: BigInt. </p><h3 id="bigint"><strong>BigInt</strong></h3><p><code>BigInt</code> è un oggetto integrato che ti permette di lavorare con numeri interi che vanno oltre il limite degli interi sicuri. Ti permette di rappresentare numeri più grandi di 9007199254740991 senza preoccuparti degli errori di precisione!</p><p>Per utilizzare <code>BigInt</code> bisogna semplicemente aggiungere una <code>n</code> alla fine di un numero intero: </p><pre><code class="language-javascript">const bigNumber = 1234567890123456789012345678901234567890n;
</code></pre><p>In alternativa, puoi utilizzare il costruttore <code>BigInt</code>:</p><pre><code class="language-javascript">const bigNumber = BigInt("1234567890123456789012345678901234567890");
</code></pre><h4 id="calcoli-con-bigint"><strong>Calcoli con BigInt</strong></h4><p>Si possono svolgere operazioni aritmetiche utilizzando <code>BigInt</code>, come addizione, sottrazione, moltiplicazione, e anche elevamento a potenza. Tuttavia, c'è un problema: non possiamo fare operazioni aritmetiche mescolando <code>BigInt</code> con il tipo <code>Number</code>, non senza prima fare delle conversioni esplicite tra un tipo e l'altro. </p><p>Per esempio, questo non funzionerà: </p><pre><code class="language-javascript">let result = bigNumber + 5; // Error: cannot mix BigInt and other types
</code></pre><p>C'è bisogno prima di convertire <code>Number</code> in <code>BigInt</code>:</p><pre><code class="language-javascript">let result = bigNumber + BigInt(5); // Adesso funziona!
</code></pre><h3 id="quando-utilizzare-bigint"><strong>Quando utilizzare BigInt? </strong></h3><p><code>BigInt</code> è particolarmente utile in aree in cui è richiesta precisione, come ad esempio:</p><ul><li>Algoritmi crittografici </li><li>Gestire grandi set di dati</li><li>Calcoli finanziari che richiedono precisione</li></ul><h3 id="riassumendo"><strong>Riassumendo </strong></h3><ul><li>Il limite intero sicuro in JavaScript garantisce una rappresentazione accurata dei numeri tra -(2^53 - 1) e 2^53 - 1.</li><li>Gli errori di precisione si verificano a causa dell'aritmetica dei numeri a virgola mobile, quando si lavora con particolari numeri (come 0.1 + 0.2).</li><li>Se hai bisogno di utilizzare numeri oltre del limite sicuro, <code>BigInt</code> è tuo amico. Ma ricorda che per combinare <code>BigInt</code> con il tipo <code>Number</code> bisogna prima fare delle conversioni esplicite. </li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Le istruzioni condizionali if-else e if-then in JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ Ci saranno occasioni in cui avrai bisogno di scrivere comandi che gestiscono decisioni diverse nel tuo codice.  Per esempio, se stai creando un bot, puoi fare in modo che risponda con messaggi differenti in base ai comandi che può ricevere. In questo articolo spiegherò cos'è un'istruzione if...else con esempi ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/le-istruzioni-condizionali-if-else-e-if-then-in-javascript/</link>
                <guid isPermaLink="false">6725181e9ae93404d0694789</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Laura Albano ]]>
                </dc:creator>
                <pubDate>Tue, 19 Nov 2024 19:41:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2024/11/walling-e_MdMMKrgdY-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/javascript-if-else-and-if-then-js-conditional-statements/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">JavaScript If-Else and If-Then – JS Conditional Statements</a>
      </p><p>Ci saranno occasioni in cui avrai bisogno di scrivere comandi che gestiscono decisioni diverse nel tuo codice. </p><p>Per esempio, se stai creando un bot, puoi fare in modo che risponda con messaggi differenti in base ai comandi che può ricevere.</p><p>In questo articolo spiegherò cos'è un'istruzione <code>if...else</code> con esempi di codice. Ci occuperemo anche dell'operatore condizionale ternario, che può essere utilizzato come abbreviazione delle istruzioni <code>if...else</code>. </p><h2 id="cos-un-istruzione-if-else-in-javascript"><strong>Cos'è un'istruzione if...else in JavaScript?</strong></h2><p>L'<code>if...else</code> è un tipo di istruzione condizionale (conditional statement), che esegue un blocco di codice quando la condizione contenuta nell'istruzione <code>if</code> è <code>truthy</code> (vera). Se la condizione è <code>falsy</code> (falsa), allora sarà il blocco <code>else</code> ad essere eseguito. </p><p>I valori <code>truthy</code> e <code>falsy</code> vengono convertiti in <code>true</code> (vero) o <code>false</code> (falso) nelle istruzioni <code>if</code>. </p><pre><code class="language-js">if (condizione) {
   // codice eseguito se la condizione è vera
} else {
   // codice eseguito se la condizione è falsa
}
</code></pre><p>Qualunque valore che non è definito <code>falsy</code>, verrà considerato <code>truthy</code> in JavaScript.</p><p>Ecco una lista di valori <code>falsy</code> :</p><ul><li><code>false</code> </li><li><code>0</code> (zero)</li><li><code>-0</code> (zero negativo)</li><li><code>0n</code> (BigInt zero)</li><li><code>""</code>, <code>''</code>, <code>``</code> (stringa vuota)</li><li><code>null</code></li><li><code>undefined</code></li><li><code>NaN</code> (not a number)</li></ul><h2 id="esempi-di-istruzioni-if-else-in-javascript"><strong>Esempi di istruzioni if...else in JavaScript</strong></h2><p>In questo esempio, la condizione nell'istruzione <code>if</code> &nbsp;è <code>true</code>, quindi il messaggio che verrà mostrato nella console sarà "Nick is an adult".</p><pre><code class="language-js">const age = 18;

if (age &gt;= 18) {
  console.log("Nick is an adult.");
} else {
  console.log("Nick is a child.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-3.18.12-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><p>Ma se cambio la variabile <code>age</code> in modo che sia minore di 18, allora la condizione diventerà <code>false</code>, quindi il codice questa volta eseguirà il blocco <code>else</code>.</p><pre><code class="language-js">const age = 12;

if (age &gt;= 18) {
  console.log("Nick is an adult.");
} else {
  console.log("Nick is a child.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-3.17.07-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><h2 id="esempi-con-varie-condizioni-istruzioni-if-else-if-else-in-javascript"><strong>Esempi con varie condizioni <strong>(</strong>istruzioni <strong>if...else if...else)</strong> in JavaScript </strong></h2><p>A volte potresti voler testare varie condizioni, e in questi casi entra in gioco il blocco <code>else if</code>.</p><pre><code class="language-js">if (condizione 1) {
   // codice eseguito quando condizione 1 è true
} else if (condizione 2) {
  // codice eseguito quando condizione 2 è true
} else {
   // codice eseguito quando nessuna delle condizioni precedenti è true
}
</code></pre><p>Quando la condizione dell'<code>if</code> è <code>false</code>, il computer valuta la condizione dell'<code>else if</code>. &nbsp;Se anche questa risulta <code>false</code>, allora passa al blocco <code>else</code>. </p><p>In questo esempio, il blocco <code>else if</code> sarà quello che verrà eseguito, dato che Alice ha un'età compresa tra 18 e 21 anni. </p><pre><code class="language-js">const age = 18;

if (age &lt; 18) {
  console.log("Alice is under 18 years old.");
} else if (age &gt;= 18 &amp;&amp; age &lt;= 21) {
  console.log("Alice is between the ages of 18 and 21.");
} else {
  console.log("Alice is over 21 years old.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-3.33.33-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><h2 id="quando-utilizzare-le-istruzioni-switch-invece-che-le-istruzionii-if-else"><strong>Quando utilizzare le istruzioni switch invece che le istruzionii if...else? </strong></h2><p>Ci sono occasioni in JavaScript in cui potresti considerare di utilizzare un'istruzione <a href="https://www.freecodecamp.org/news/javascript-switch-case-js-switch-statement-example/"><code>switch</code></a>, invece di un'istruzione <code>if else</code>. </p><p>Le istruzioni <code>switch</code> &nbsp;hanno una sintassi più pulita, a differenza delle complicate istruzioni <code>if else</code>.</p><p>Dai un'occhiata a questo esempio in basso – invece di utilizzare questa lunga istruzione <code>if else</code>, potresti scegliere di servirti di un'istruzione <code>switch</code> , che è molto più semplice da leggere. </p><pre><code class="language-js">const pet = "dog";

if (pet === "lizard") {
  console.log("I own a lizard");
} else if (pet === "dog") {
  console.log("I own a dog");
} else if (pet === "cat") {
  console.log("I own a cat");
} else if (pet === "snake") {
  console.log("I own a snake");
} else if (pet === "parrot") {
  console.log("I own a parrot");
} else {
  console.log("I don't own a pet");
}
</code></pre><pre><code class="language-js">const pet = "dog";

switch (pet) {
  case "lizard":
    console.log("I own a lizard");
    break;
  case "dog":
    console.log("I own a dog");
    break;
  case "cat":
    console.log("I own a cat");
    break;
  case "snake":
    console.log("I own a snake");
    break;
  case "parrot":
    console.log("I own a parrot");
    break;
  default:
    console.log("I don't own a pet");
    break;
}
</code></pre><p>Le istruzioni <code>switch</code> non sono sempre la scelta più appropriata in tutte le situazioni, ma se pensi delle istruzioni <code>if else</code> siano troppo lunghe e complicate, allora un'istruzione <code>switch</code> potrebbe essere un'opzione alternativa. </p><h2 id="l-operatore-logico-and-e-le-istruzioni-if-else-in-javascript"><strong>L'operatore logico AND (&amp;&amp;) e le istruzioni if...else in JavaScript</strong></h2><p>Con l'operatore logico AND (<code>&amp;&amp;</code>), se entrambe le condizioni sono <code>true</code>, allora verrà eseguito il &nbsp;blocco <code>if</code>. Se una o entrambe le condizioni sono <code>false</code>, allora sarà eseguito il blocco <code>else</code>.</p><p>In questo esempio, dato che l'età è maggiore di 16 e la variabile <code>ownsCar</code> è <code>true</code>, verrà eseguito il blocco <code>if</code>. Il messaggio mostrato dalla console sarà "Jerry is old enough to drive and has his own car." &nbsp;</p><pre><code class="language-js">const age = 17;
const ownsCar = true;

if (age &gt;= 16 &amp;&amp; ownsCar) {
  console.log("Jerry is old enough to drive and has his own car.");
} else {
  console.log("Jerry does not drive.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-4.22.49-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><p>Cambiando la variabile <code>age</code> in modo che sia minore di 16, entrambe le condizioni non sono più <code>true</code> e quindi verrà eseguito il blocco <code>else</code>. </p><pre><code class="language-js">const age = 13;
const ownsCar = true;

if (age &gt;= 16 &amp;&amp; ownsCar) {
  console.log("Jerry is old enough to drive and has his own car.");
} else {
  console.log("Jerry does not drive.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-4.20.19-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><h2 id="l-operatore-logico-or-e-le-istruzioni-if-else-in-javascript"><strong>L'operatore logico OR (||) e le istruzioni if...else in JavaScript</strong></h2><p>Nel caso dell'operatore logico OR (<code>||</code>), se una o entrambe le condizioni sono <code>true</code>, allora il codice nell'istruzione <code>if</code> sarà eseguito.</p><p>In questo esempio, anche se la variabile <code>isSale</code> è <code>false</code>, il codice nel blocco <code>if</code> verrà eseguito lo stesso, perché almeno la variabile <code>boyfriendIsPaying</code> è <code>true</code>. </p><pre><code class="language-js">const boyfriendIsPaying = true;
const isSale = false;

if (boyfriendIsPaying || isSale) {
  console.log("Jesse will go shopping.");
} else {
  console.log("Jesse will not go shopping.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-4.40.36-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><p>Se cambiassi il valore della variabile <code>boyfriendIsPaying</code> in <code>false</code>, allora il blocco &nbsp;<code>else</code> verrebbe eseguito, perché entrambe le condizioni sarebbero <code>false</code>.</p><pre><code class="language-js">const boyfriendIsPaying = false;
const isSale = false;

if (boyfriendIsPaying || isSale) {
  console.log("Jesse will go shopping.");
} else {
  console.log("Jesse will not go shopping.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-4.42.12-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><h2 id="l-operatore-logico-not-e-le-istruzioni-if-else-in-javascript"><strong>L'operatore logico NOT (!) e le istruzioni if...else in JavaScript</strong></h2><p>L'operatore logico NOT (<code>!</code>) cambia il valore di qualcosa da <code>true</code> a <code>false</code>, ma può anche fare il contrario, trasformandolo da <code>false</code> a <code>true</code>.</p><p>Possiamo modificare l'esempio precedente utilizzando l'operatore <code>!</code>, per rendere <code>false</code> la variabile <code>boyfriendIsPaying</code>. Dato che entrambe le condizioni adesso sono <code>false</code>, il blocco <code>else</code> verrà eseguito. </p><pre><code class="language-js">const boyfriendIsPaying = true;
const isSale = false;

if (!boyfriendIsPaying || isSale) {
  console.log("Jesse will go shopping.");
} else {
  console.log("Jesse will not go shopping.");
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-5.02.04-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><h2 id="l-operatore-condizionale-ternario-in-javascript"><strong>L'operatore condizionale (ternario) in JavaScript</strong></h2><p>Se stai utilizzando un'istruzione <code>if else</code> breve, potresti scegliere di servirti dell'operatore ternario.</p><p>Questa è la sintassi di base dell'operatore ternario: </p><pre><code class="language-js">condizione ? se condizione è true : se condizione è false</code></pre><p>La condizione è posizionata prima del simbolo <code>?</code> e se è <code>true</code>, allora il codice tra il simbolo <code>?</code> ed il simbolo <code>:</code> verrà eseguito. Se la condizione è <code>false</code>, allora sarà il codice dopo il simbolo <code>:</code> ad essere eseguito. </p><p>In questo esempio, dato che l'età è maggiore di 18, il messaggio mostrato dalla console sarà "Can vote".</p><pre><code class="language-js">const age = 32;
const citizen = age &gt;= 18 ? "Can vote" : "Cannot vote";
console.log(citizen);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-09-at-5.25.14-AM.png" class="kg-image" alt="Image" width="600" height="400" loading="lazy"></figure><p>Questo è invece lo stesso codice, ma scritto usando un'istruzione <code>if else</code>:</p><pre><code class="language-js">const age = 32;
let citizen;

if (age &gt;= 18) {
  citizen = "Can vote";
} else {
  citizen = "Cannot vote";
}

console.log(citizen);
</code></pre><h2 id="in-conclusione">In conclusione </h2><p>Le istruzioni <code>if else</code> eseguono un blocco di codice se la condizione nell'istruzione <code>if</code> è <code>truthy</code>. Se la condizione è <code>falsy</code>, allora sarà il blocco <code>else</code> ad essere eseguito. </p><p>Ci saranno occasioni in cui vorrai testare varie condizioni, e in questi casi potrai utilizzare le istruzioni <code>if...else if...else</code>.</p><p>Se pensi che un'istruzione <code>if else</code> sia lunga e complicata, allora c'è la possibilità di utilizzare un'istruzione <code>switch</code> come alternativa. </p><p>Utilizzare gli operatori logici per testare più di una condizione, può essere un'alternativa alle istruzioni <code>if else</code> annidate l'una nell'altra. </p><p>L'operatore ternario può essere utilizzato come metodo per scrivere un'istruzione <code>if else</code> in modo più sintetico. </p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ La proprietà CSS position spiegata con esempi ]]>
                </title>
                <description>
                    <![CDATA[ Per poter padroneggiare il CSS, c'è bisogno prima di comprendere i concetti base, ovvero le proprietà CSS e i loro valori.  In questo articolo ci focalizzeremo sulla proprietà CSS position. Impareremo i vari valori di questa proprietà ed il loro funzionamento. Partiamo! Cos'è la proprietà CSS position?  La ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/la-proprieta-css-position/</link>
                <guid isPermaLink="false">671b5fe5a104b2047224854e</guid>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Laura Albano ]]>
                </dc:creator>
                <pubDate>Mon, 04 Nov 2024 10:16:47 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2024/11/5f9c9a3e740569d1a4ca247b.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/learn-the-basics-the-css-position-property/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The CSS Position Property Explained with Examples</a>
      </p><p>Per poter padroneggiare il CSS, c'è bisogno prima di comprendere i concetti base, ovvero le proprietà CSS e i loro valori. </p><p>In questo articolo ci focalizzeremo sulla proprietà CSS position. Impareremo i vari valori di questa proprietà ed il loro funzionamento. Partiamo!</p><h2 id="cos-la-propriet-css-position"><strong>Cos'è la proprietà CSS position? </strong></h2><p>La proprietà CSS position determina la posizione dell'elemento all'interno del documento. Questa proprietà lavora insieme alle proprietà left, right, top, bottom e z-index, per indicare la posizione finale di un elemento all'interno di una pagina. </p><p>Ci sono cinque valori che possiamo utilizzare con la proprietà position: &nbsp;</p><ol><li>static</li><li>relative</li><li>absolute</li><li>fixed &nbsp;</li><li>sticky </li></ol><p>Analizziamoli uno alla volta. </p><h3 id="static"><strong><strong>Static</strong></strong></h3><p>Questo è il valore predefinito per un elemento. L'elemento è posizionato seguendo il normale flusso del documento. Le proprietà left, right, top, bottom e z-index non possono modificare la posizione di un elemento che ha la proprietà <code>position: static</code>.</p><p>Utilizziamo un esempio per dimostrare che <code>position: static</code> non ha effetto sulla posizione di un elemento. Abbiamo tre div posizionati in un elemento contenitore. Utilizzeremo questo esempio per tutto l'articolo. &nbsp;</p><pre><code class="language-html">&lt;html&gt;
    &lt;body&gt;
        &lt;div class="parent-element"&gt;
            &lt;div class="sibling-element"&gt;
                I'm the other sibling element.
            &lt;/div&gt;

            &lt;div class="main-element"&gt;
                All eyes on me. I am the main element.
            &lt;/div&gt;

            &lt;div class="sibling-element"&gt;
                I'm the other sibling element.
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;html&gt;
</code></pre><p>Aggiungiamo <code>position: static</code> insieme alle proprietà left e top al div con la classe <code>main-element</code>. Impostiamo anche uno stile diverso dagli altri div, in modo da distinguerli dall'elemento che abbiamo preso in considerazione.</p><pre><code class="language-css">.main-element {
    position: static;
    left: 10px;
    bottom: 10px;
    background-color: yellow;
    padding: 10px;
}

.sibling-element {
    padding: 10px;
    background-color: #f2f2f2;
}
</code></pre><p>Questo è il risultato: </p><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" src="https://jsfiddle.net/sarahchima/4vsm3o1d/5/embedded/result,css/" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 22px; vertical-align: middle;"></iframe></figure><p>Hai notato che la posizione è sempre la stessa? Ciò conferma il fatto che le proprietà left e bottom non funzionano con un elemento con <code>position: static</code>.</p><p>Passiamo al prossimo valore.</p><h3 id="relative"><strong><strong>Relative</strong> </strong></h3><p>Gli elementi con <code>position: relative</code> mantengono la loro posizione nel normale flusso del documento. In questo caso però, a differenza degli elementi con il valore static, le proprietà left, right, top, bottom e z-index possono modificare la posizione dell'elemento. Uno spostamento basato sui valori delle proprietà left, right, top e bottom, è applicato all'elemento relativamente a sé stesso. </p><p>Sostituiamo <code>position: static</code> con <code>position: relative</code> nel nostro esempio.</p><pre><code class="language-css">.main-element {
    position: relative;
    left: 10px;
    bottom: 10px;
    background-color: yellow;
    padding: 10px;
}
</code></pre><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" src="https://jsfiddle.net/sarahchima/78tbavnu/14/embedded/result,css/" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 22px; vertical-align: middle;"></iframe></figure><p>Possiamo notare che le proprietà left e bottom in questo caso modificano la posizione dell'elemento. Inoltre osserviamo il fatto che l'elemento rimanga nel normale flusso del documento, e lo spostamento si applica relativamente a sé stesso. È bene tenere a mente questa cosa nel momento in cui parleremo degli altri valori. </p><h3 id="absolute"><strong><strong>Absolute</strong> </strong></h3><p>Gli elementi con <code>position: absolute</code> hanno una posizione che dipende dal loro elemento contenitore. In questo caso, l'elemento viene rimosso dal normale flusso del documento, gli altri elementi si comporteranno come se non esistesse e per esso non viene creato alcuno spazio nella disposizione della pagina web. I valori di left, top, bottom e right determinano la posizione finale dell'elemento. </p><p>È bene notare che un elemento con <code>position: absolute</code> si posiziona relativamente al primo elemento non avente <code>position: static</code> che lo contiene. </p><p>Se l'elemento genitore più prossimo non ha una posizione specificata, &nbsp;il nostro elemento si rivolgerà al genitore successivo, fino a risalire all'elemento <code>&lt;html&gt;</code>, in caso non ci siano genitori che hanno la proprietà position specificata. </p><p>Torniamo al nostro esempio. In questo caso, cambiamo la proprietà position dell'elemento main-element in <code>position: absolute</code>. Impostiamo anche per il contenitore una posizione relativa, in modo che il nostro elemento non si disponga relativamente all'elemento <code>&lt;html&gt;</code>.</p><pre><code class="language-css">.main-element {
    position: absolute;
    left: 10px;
    bottom: 10px;
    background-color: yellow;
    padding: 10px;
}

.parent-element {
    position: relative;
    height: 100px;
    padding: 10px;
    background-color: #81adc8;
}

.sibling-element {
    background: #f2f2f2;
    padding: 10px;
    border: 1px solid #81adc8;
}
</code></pre><p>Ecco il risultato.</p><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" src="https://jsfiddle.net/sarahchima/5qyp4m2z/5/embedded/result,css/" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 22px; vertical-align: middle;"></iframe></figure><p>Puoi notare come non è stato creato alcuno spazio nel documento per l'elemento, ma adesso è posizionato relativamente al genitore. È bene prendere nota di questa cose, prima di passare al prossimo valore. </p><h3 id="fixed"><strong><strong>Fixed</strong></strong></h3><p>Elementi con la proprietà position impostata su fixed, hanno un comportamento simile agli elementi con il valore absolute ma, a differenza di quest'ultimi, la loro posizione è sempre relativa all'elemento <code>&lt;html&gt;</code>.</p><p>Si può notare che gli elementi con una posizione fissa non si muovono, anche se si scorre verso il basso nella pagina. La loro posizione è fissata sullo schermo. </p><pre><code class="language-css">.main-element {
    position: fixed;
    bottom: 10px;
    left: 10px;
    background-color: yellow;
    padding: 10px;
}

html {
    height: 800px;
}
</code></pre><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" src="https://jsfiddle.net/sarahchima/L4gsxwft/2/embedded/result,css/" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 22px; vertical-align: middle;"></iframe></figure><p>In questo caso l'elemento è posizionato relativamente all'elemento <code>&lt;html&gt;</code>. Prova a scorre in basso per osservare che l'elemento è fissato sullo schermo. </p><p>Passiamo all'ultimo valore. </p><h3 id="sticky"><strong><strong>Sticky</strong></strong></h3><p><code>position: sticky</code> è una combinazione di <code>position: relative</code> e <code>position: fixed</code>. Si comporta come un elemento posizionato relativamente fino ad un certo punto nello scorrimento della pagina, ma oltre questo punto si comporta invece come un elemento fisso. Non preoccuparti se non riesci a capire cosa ciò voglia dire, l'esempio ti aiuterà a capirlo meglio. </p><pre><code class="language-css">.main-element {
    position: sticky;
    top: 10px;
    background-color: yellow;
    padding: 10px;
}

.parent-element {
    position: relative;
    height: 800px;
    padding: 50px 10px;
    background-color: #81adc8;
}
</code></pre><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" src="https://jsfiddle.net/sarahchima/f3m0qxgn/8/embedded/result,css/" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 22px; vertical-align: middle;"></iframe></figure><p>Scorri in basso nella finestra per vedere il risultato finale. Puoi vedere che si comporta come un elemento relativo fino ad un certo punto sullo schermo, &nbsp;<code>top: 10px</code> e poi come un elemento fisso. </p><h2 id="conclusioni">Conclusioni </h2><p>Whooho! È stata proprio una bella avventura. Ma spero davvero che questo articolo ti abbia aiutato a capire la proprietà CSS position e il suo funzionamento. </p><p>Sentiti libero di sperimentare con gli esempi, in caso non riuscissi a capire qualunque di questi concetti. Puoi cambiare i valori e osservare la differenza o, ancora meglio, puoi provare a utilizzare la proprietà position in un tuo progetto personale.</p><p>Ricorda che migliorare con il CSS comporta pratica costante, quindi continua a fare pratica e migliorerai. </p><p><em>Vuoi ricevere una notifica per ogni mio nuovo articolo? <a href="https://mailchi.mp/69ea601a3f64/join-sarahs-mailing-list">Clicca qui</a>. </em></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML Button Type – Come aggiungere pulsanti al tuo sito web ]]>
                </title>
                <description>
                    <![CDATA[ I pulsanti sono una parte essenziale delle pagine web. Sono utili per vari scopi, dall'inviare di informazioni e accedere a più contenuti, fino a collegare tra loro sezioni di pagine web o altri siti web.  Il linguaggio HTML fornisce vari metodi per aggiungere pulsanti al tuo progetto: puoi usare ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/html-button-type-come-aggiungere-pulsanti-al-tuo-sito-web/</link>
                <guid isPermaLink="false">67166d92a104b20472247a81</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Laura Albano ]]>
                </dc:creator>
                <pubDate>Mon, 28 Oct 2024 09:18:09 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2024/10/button.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/html-button-type-how-to-add-buttons-to-your-website/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML Button Type – How to Add Buttons to your Website</a>
      </p><p>I pulsanti sono una parte essenziale delle pagine web. Sono utili per vari scopi, dall'inviare di informazioni e accedere a più contenuti, fino a collegare tra loro sezioni di pagine web o altri siti web. </p><p>Il linguaggio HTML fornisce vari metodi per aggiungere pulsanti al tuo progetto: puoi usare gli elementi button, &nbsp;anchor o input di tipo <code>button</code> e <code>submit</code>. </p><p>In questo articolo ti guiderò all'utilizzo di questi 4 metodi, così saprai come aggiungere pulsanti al tuo sito senza difficoltà. </p><h2 id="come-aggiungere-tasti-al-tuo-sito-con-il-tag-button">Come aggiungere tasti al tuo sito con il tag button</h2><p>Il tag button è uno dei metodi più semplici per aggiungere pulsanti al tuo sito web. Per utilizzarlo basta aggiungere il testo che il pulsante dovrà mostrare tra i tag di apertura e chiusura, in questo modo: </p><pre><code class="language-html">&lt;button&gt;Sample Button&lt;/button&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-1.png" class="kg-image" alt="ss-1" width="600" height="400" loading="lazy"></figure><p>Ho posizionato il pulsante al centro, utilizzando le proprietà flexbox, margin (margine), e height (altezza):</p><pre><code class="language-css">body {
        background-color: #8d8d8d;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 auto;
        height: 100vh;
      }
</code></pre><p>Aggiungendo queste proprietà CSS, da questo momento in poi gli elementi della pagina saranno sempre centrati.</p><p>Per poter rendere questo pulsante interattivo, bisogna aggiungere JavaScript. Attraverso le seguenti righe di codice JavaScript inline, farò in modo che il pulsante faccia comparire una finestra di dialogo nel browser, ogni qual volta verrà cliccato. </p><pre><code class="language-html">&lt;button onclick="alert('Hello Campers')"&gt;Sample Button&lt;/button&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-2.png" class="kg-image" alt="ss-2" width="600" height="400" loading="lazy"></figure><h2 id="come-aggiungere-pulsanti-al-tuo-sito-attraverso-il-tag-anchor"><strong>Come aggiungere pulsanti al tuo sito attraverso il tag anchor</strong></h2><p>I pulsanti interattivi possono essere aggiunti anche attraverso il tag anchor. Il tag anchor è utilizzato principalmente per aggiungere link ai siti web, ma utilizzando i fogli di stile CSS possiamo dargli l'aspetto di un pulsante. &nbsp;</p><p>Il vantaggio di questo metodo è che possiamo collegare il pulsante ad un'altra pagina web senza utilizzare JavaScript. </p><p>Nel seguente esempio, ho creato un pulsante con il tag anchor, collegandolo al sito ufficiale di freeCodeCamp: </p><pre><code class="language-html">&lt;a href="https://freecodecamp.org"&gt;Learn Coding for Free&lt;/a&gt;
</code></pre><p>Nel browser avrà l'aspetto di un link: </p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-3.png" class="kg-image" alt="ss-3" width="600" height="400" loading="lazy"></figure><p>Possiamo dargli l'aspetto di un pulsante utilizzando il CSS. Rimuoviamo la sottolineatura standard e il colore del testo, applichiamo un colore allo sfondo e al primo piano, e infine aggiungiamo le proprietà padding e border radius: </p><pre><code class="language-css"> a {
        text-decoration: none;
        border: 0.2px solid #000;
        color: #000;
        background: #e6e4e4;
        padding: 5px;
        border-radius: 1px;
      }
</code></pre><p>Con questo CSS non ho fatto altro che riprodurre l'aspetto standard dei tasti HTML. </p><p>Il tag anchor adesso ha questo aspetto: </p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-4.png" class="kg-image" alt="ss-4" width="600" height="400" loading="lazy"></figure><h2 id="come-aggiungere-pulsanti-al-tuo-sito-con-il-type-button-del-tag-input"><strong>Come aggiungere pulsanti al tuo sito con il type <code>button</code> del tag input</strong></h2><p>È possibile aggiungere pulsanti al tuo sito anche attraverso il type button del tag input. Si comporta esattamente come il tag button.</p><p>Il tag input è un elemento vuoto, ciò vuol dire che non ha un tag di chiusura. Quindi come si può aggiungere il testo che dovrà mostrare? Attraverso l'attributo value!</p><pre><code class="language-html">&lt;input type="button" value="Sample Button" /&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-5.png" class="kg-image" alt="ss-5" width="600" height="400" loading="lazy"></figure><h2 id="come-aggiungere-pulsanti-al-tuo-sito-attraverso-il-type-submit-del-tag-input"><strong>Come aggiungere pulsanti al tuo sito attraverso il type <code>submit</code> &nbsp;del tag input</strong></h2><p>Generalmente il type submit del tag input viene utilizzato all'interno di un elemento form, in modo che i dati inseriti dall'utente vengano inviati nel momento in cui il pulsante submit viene cliccato. &nbsp; </p><p>Così come il tag input di tipo button, si tratta di un elemento vuoto, quindi c'è bisogno dell'attributo value per aggiungere del testo che comunichi lo scopo del pulsante. </p><pre><code class="language-html">&lt;input type="submit" value="Another Button" /&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/ss-6.png" class="kg-image" alt="ss-6" width="600" height="400" loading="lazy"></figure><p>La differenza tra il tag input con type button e type submit sta nel fatto che il type submit, aggiunto in un elemento form, invia i dati inseriti senza alcun tipo di manipolazione attraverso JavaScript. </p><p>Ma nel caso del tag input con type button, c'è bisogno di utilizzare JavaScript per far in modo che funzioni. Infatti, utilizzando il type button all'interno di un elemento form, i dati non vengono inviati automaticamente quando il pulsante è cliccato. </p><h2 id="mini-progetto-come-creare-un-pulsante-con-effetto-neon-con-html-e-css"><strong>Mini progetto: come creare un pulsante con effetto neon con HTML e CSS</strong></h2><p>Il tasto a luci neon è un design molto in voga, data la sua bellezza estetica. Con le informazioni apprese in questo articolo, adesso potrai crearne uno utilizzando il tag button e del CSS. </p><p>Prima di tutto, dobbiamo cambiare gli stili standard del pulsante: </p><pre><code class="language-html">&lt;button&gt;Neon Light&lt;/button&gt;
</code></pre><pre><code class="language-css">  button {
        background-color: #000;
        border: .5px solid crimson;
        border-radius: 10px;
        color: #fff;
        padding: 8px;
      }
</code></pre><p>Per adesso il pulsante ha questo aspetto: </p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/neon.png" class="kg-image" alt="neon" width="600" height="400" loading="lazy"></figure><p>Per implementare lo stile neon, possiamo utilizzare la proprietà box-shadow, che ci permette di aggiungere diversi valori necessari per creare questo effetto. &nbsp; </p><pre><code class="language-css">button {
        background-color: #000;
        border: .5px solid crimson;
        border-radius: 10px;
        color: #fff;
        padding: 8px;
        box-shadow: 0 0 30px 0 crimson,
                    0 0 30px 0 crimson,
                    0 0 10px 0 crimson inset;
      }
</code></pre><p>Valori inseriti nella proprietà <code>box-shadow</code>:</p><ul><li>il primo valore rappresenta lo spostamento sull'asse x</li><li>il secondo valore rappresenta lo spostamento sull'asse y</li><li>il terzo valore rappresenta il raggio di sfumatura</li><li>il quarto valore rappresenta l'estensione del raggio di sfumatura </li><li>il quinto valore è il colore applicato all'ombra</li></ul><p>Mi occorrevano solo l'estensione del raggio di sfumatura e il colore, quindi ho impostato gli altri valori a zero. Successivamente, ho fatto in modo che gli ultimi valori della proprietà box-shadow venissero applicati alla parte interna al tasto, aggiungendo <code>inset</code>.</p><p>Adesso il tasto presenta un effetto neon: </p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/neon-light.png" class="kg-image" alt="neon-light" width="600" height="400" loading="lazy"></figure><h2 id="in-conclusione">In conclusione</h2><p>Questo articolo ti ha mostrato vari metodi per aggiungere pulsanti interattivi ai tuoi siti web. In HTML e CSS, ci sono sempre modalità diverse per raggiungere lo stesso scopo: questa è una delle ragioni per cui i pulsanti si possono aggiungere perfino attraverso il tag anchor. </p><p>È possibile anche creare un tasto che si comporta come un link, aggiungendo un tag anchor attorno ad un tag button. </p><p>Puoi anche aggiungere tasti attraverso qualunque altro tag, come ad esempio div, span e anche il tag p. Ma è meglio non utilizzare questi metodi per motivi di accessibilità, e per non danneggiare la SEO del tuo sito web. </p><p>Grazie per aver letto questo articolo. </p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
