<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fabrizio Mastrobattista &#8211; Web Developer</title>
	<atom:link href="https://www.fabriziomastrobattista.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fabriziomastrobattista.com/</link>
	<description></description>
	<lastBuildDate>Mon, 22 Apr 2024 15:36:14 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>

<image>
	<url>https://www.fabriziomastrobattista.com/wp-content/uploads/2024/02/cropped-mylogo-2-32x32.png</url>
	<title>Fabrizio Mastrobattista &#8211; Web Developer</title>
	<link>https://www.fabriziomastrobattista.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress: scegliere tra temi premade o custom</title>
		<link>https://www.fabriziomastrobattista.com/wordpress-premade-o-custom/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-premade-o-custom</link>
		
		<dc:creator><![CDATA[FabrizioM90]]></dc:creator>
		<pubDate>Mon, 22 Apr 2024 15:17:10 +0000</pubDate>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[Premade]]></category>
		<category><![CDATA[Tema]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.fabriziomastrobattista.com/?p=197</guid>

					<description><![CDATA[<p>WordPress: scegliere tra temi premade o custom Una delle prime domande di uno sviluppatore, che deve creare un sito in [&#8230;]</p>
<p>L'articolo <a href="https://www.fabriziomastrobattista.com/wordpress-premade-o-custom/">WordPress: scegliere tra temi premade o custom</a> proviene da <a href="https://www.fabriziomastrobattista.com">Fabrizio Mastrobattista - Web Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="197" class="elementor elementor-197" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-43a6301 e-flex e-con-boxed e-con e-parent" data-id="43a6301" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6d1da32 e-con-full e-flex e-con e-child" data-id="6d1da32" data-element_type="container">
				<div class="elementor-element elementor-element-20cdd19 animated-slow elementor-invisible elementor-widget elementor-widget-heading" data-id="20cdd19" data-element_type="widget" data-settings="{&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;_animation_delay&quot;:0.5}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h1 class="elementor-heading-title elementor-size-default">WordPress: scegliere tra temi premade o custom</h1>				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5d096ff6 e-flex e-con-boxed e-con e-parent" data-id="5d096ff6" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cdd18ff elementor-widget elementor-widget-image" data-id="cdd18ff" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash-1024x683.jpg" class="attachment-large size-large wp-image-156" alt="Fabrizio Mastrobattista - Web Developer" srcset="https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash-1024x683.jpg 1024w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash-300x200.jpg 300w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash-768x512.jpg 768w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash-1536x1024.jpg 1536w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/stephen-phillips-hostreviews-co-uk-zs98a0DtKL4-unsplash.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6b1397ae elementor-widget elementor-widget-text-editor" data-id="6b1397ae" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									
<p>Una delle prime domande di uno sviluppatore, che deve creare un sito in wordpress, è la seguente: meglio un tema premade o uno custom?<br />Potrebbe sembrare una domanda semplice o dalla risposta banale, tuttavia non è così. Vediamo di analizzare i pro ed i contro di entrambi per vedere se effettivamente possiamo dare una risposta definitiva.<br />Iniziamo partendo dalle basi, per poi andare a stabilire se sia meglio scegliere tra un tema premade o custom.</p>

<h3 class="wp-block-heading"><span class="has-inline-color">Cos&#8217;è un tema</span></h3>

<p> </p>
<p>Prima però, partiamo dalle basi, per poi andare a concentrarci su quella che è la domanda che ci siamo posti. Un tema è un insieme di file che definiscono il funzionamento e la grafica di un sito web. Oltre quindi ai color dei testi, dei link o delle varie sezioni, possiamo stabilire quanti, quali ed in che ordine siano i post che vogliamo far visualizzare, se deve esserci una pagina archivio per una determinata tipologia di post, se deve essere presente un portfolio e così via. Possiamo stabilire la struttura anche delle pagine oltre che il colore. Per esempio, vogliamo che la homepage abbia uno slider, una sezione con il calendario oppure gli ultimi articoli del nostro blog? Anche queste cose sono personalizzabili nel tema.</p>

<p> </p>

<p>Le customizzazioni elencate vengono definite però prima di sviluppare il sito. A definirle può essere un web designer, lo sviluppatore stesso che ovviamente si confronta con il cliente oppure è il cliente stesso che, avendo in mente un’idea di come vorrebbe essere creato il sito, la spiega allo sviluppatore. Se il tema è stato ideato dal web designer, lo sviluppatore non deve fare altro che replicare quanto esposto graficamente nei mockup. In questo caso, il web designer potrebbe aver preso come base di lavoro un tema già esistente oppure potrebbe averla ideata di suo pugno. Se è lo sviluppatore stesso a decidere la grafica (assieme al cliente), può proporgli diversi temi tra cui scegliere (generalmente due o tre), oppure realizzare la grafica lui stesso.<br />Dopo aver pensato al come ideare la grafica per il sito, e aver quantificato i tempi di consegna,si sceglie se acquistare un tema oppure svilupparlo ad hoc.</p>

<p> </p>

<p>Analizziamo i pro e i contro di entrambi, per comprendere se effettivamente è meglio acquistare un tema premade oppure svilupparne uno custom.</p>

<h3 class="wp-block-heading"><span class="has-inline-color">Temi acquistati</span></h3>

<p> </p>

<p>Per stabilire se sia meglio scegliere tra un tema premade o custom , analizziamo inanzitutto i primi. Per comprare un tema possiamo andare su uno dei tanti siti specializzati, come ad esempio <a href="https://themeforest.net/">themeforest</a>. Una volta terminato l’acquisto, basta installarlo ed il gioco è fatto.</p>

<p> </p>

<p>Ma è proprio così? In realtà no poiché molto spesso il cliente potrebbe cambiare idea sul colore, sul layout di una singola pagina, il posizionamento delle componenti che costituiscono la pagina stessa oppure è necessaria l’aggiunta di funzionalità che non sono presenti nel tema. In questo caso, pertanto, bisognerà agire sul tema stesso implementando classi css nel personalizer di wordpress. Questa soluzione tuttavia potrebbe creare qualche problema se non si pone attenzione.</p>

<h4 class="wp-block-heading"><span class="has-inline-color">Esempio</span></h4>
<p> </p>

<p>Vediamola con un esempio. Supponiamo di avere un elemento del dom che ha come margine 20px a destra in una classe chiamata <strong>.myClass</strong>. Per qualche ragione, dobbiamo cambiare questo margine ma l’elemento non offre, nel backoffice, la posssibilità di modificarlo. Potremmo pensare di ispezionare l’elemento con la console del browser, individuarne la classe e modificarla nel personalizer. Questa prima soluzione potrebbe essere valida, non fosse che la stessa classe <strong>.myClass</strong> potrebbe essere utilizzata anche in altre parti e pertando andremo questa modifica potrebbe influenzare anche altre sezioni del sito. Se è questo il risultato che vogliamo allora possiamo ritenerci soddisfatti, altrimenti dovremo trovare un altro modo, come ad esempio inserire, se possibile, una classe custom all’elemento a cui vogliamo cambiare il margine.</p>

<p><br />Questo è un esempio banale, ma potrebbe essere esteso anche a elementi estetici più complessi come, per esempio, animazioni o effetti grafici vari che portano ad avere un’implementazione più difficile se non impossibile in alcuni casi.</p>

<p> </p>

<h4 class="wp-block-heading"><span class="has-inline-color">Componenti aggiuntive</span></h4>

<p> </p>

<p>Un altro problema dei temi acquistati è che potrebbe esserci richiesta di una componente che il tema in questione non prevede. In questo caso, il metodo più semplice per risolvere questo problema è quello di installare un plugin che ci permetta di soddisfare le richieste del cliente. Questo però potrebbe comportare una maggiore pesantezza del sito oltre ad eventuali problemi di incompatibilità con i futuri aggiornamenti di wordpress per esempio.</p>

<h3 class="wp-block-heading"><span class="has-inline-color">Temi custom</span></h3>

<p> </p>

<p>Un tema custom è interamente realizzato “a mano”, partendo dall’esigenza specifica del cliente. Il tema si comporrà ovviamente dei file essenziali per il suo funzionamento, esattamente come un tema acquistato ma differirà dai temi comprati in quanto risponderà appieno alle esigenze del cliente. Il sito in questo caso sarà pensato per l’utente finale, mobile first, e soprattutto sarà progettato per convertire e ottimizzato da un punto di vista SEO. Tutto questo però, come già detto, richiede uno studio ed una progettazione di base. Pertanto, i tempi di rilascio del sito saranno sicuramente più lunghi rispetto a quelli di un sito realizzato con un tema comprato.</p>

<p><br />Ovviamente anche i costi saranno maggiori poichè dovremmo studiare il layout, la SEO e via dicendo. Indipendentemente che queste operazioni preliminari allo sviluppo siano fatte da noi stessi o da qualcuno che lavora per noi, vanno comunque stimate in termini economici ed incluse nel prezzo proposto al cliente. Questo comporterà sicuramente ad un prezzo maggiore rispetto a quello per un tema comprato. Oltre a questo, bisogna considerare la difficoltà nello sviluppo del tema, soprattutto per quel che concerne le personalizzazioni grafiche.</p>

<p><br />Di contro potremmo avere bisogno di meno plugin questo comporterà sicuramente una maggiore leggerezza ed una manutenzione che dovrà essere effettuata per meno componenti portando quindi ad una probabilità di conflitti minore rispetto ai temi comprati. Ovviamente anche la conoscenza del codice che abbiamo scritto, ci permette di modificare il tema più semplicemente e facilmente rispetto ad un tema comprato, andando ad agire anche sui file stessi che lo compongono.<br />Passiamo ora al processo creativo.</p>
<p> </p>

<h3 class="wp-block-heading"><span class="has-inline-color">Processo creativo</span></h3>

<p> </p>

<p>Fin’ora abbiamo visto solo il lato puramente tecnico, ma per scegliere tra un tema premade o custom in realtà dobbiamo considerare anche quello “creativo”. Partiamo subito da un presupposto: scegliere un tema non è facile; non basta basarsi solo sulla presenza o meno di effetti grafici che saltano all’occhio. Quello che dobbiamo tenere ben presente è questo: il tema deve adattarsi al contenuto. Non viceversa. Pertanto tutto il processo che porta a consigliare una rosa di 3/4 temi ad un cliente ha un lavoro di conoscenza, studio ed analisi dietro, non meno importante o difficile di quello che c’è dietro un tema custom.</p>

<p> </p>

<h3 class="wp-block-heading"><span class="has-inline-color">Conclusioni</span></h3>

<p> </p>

<p>Alla luce dell’analisi effettuata possiamo effettivamente stabilire se è meglio comprare un tema premade o realizzarne uno custom?</p>

<p><br />La risposta è semplice: non c’è una soluzione migliore in assoluto, ma bisogna stabilire quale scelta effettuare in base al contesto. Le domande che dovremmo porci per rispondere a questo quesito sono molteplici. Cosa deve ottenere il cliente dal sito? Quali sono i suoi contenuti? Come dobbiamo strutturare i dati che abbiamo? Qual’è il budget? C’è una tempistica specifica da rispettare? Se sì, quando è la deadline?</p>

<p><br />Pertanto, quando dobbiamo sviluppare un sito wordpress prima di scegliere tra un tema premade o custom dobbiamo rispondere alle domande che ci siamo posti. Solo dopo esserci risposti, possiamo passare alla fase di sviluppo del sito.</p>
								</div>
				</div>
					</div>
				</div>
				</div>
		<p>L'articolo <a href="https://www.fabriziomastrobattista.com/wordpress-premade-o-custom/">WordPress: scegliere tra temi premade o custom</a> proviene da <a href="https://www.fabriziomastrobattista.com">Fabrizio Mastrobattista - Web Developer</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial: come creare una sidebar</title>
		<link>https://www.fabriziomastrobattista.com/tutorial-come-creare-una-sidebar/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tutorial-come-creare-una-sidebar</link>
		
		<dc:creator><![CDATA[FabrizioM90]]></dc:creator>
		<pubDate>Thu, 18 Apr 2024 15:26:59 +0000</pubDate>
				<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[Css]]></category>
		<category><![CDATA[Html5]]></category>
		<category><![CDATA[Jquery]]></category>
		<guid isPermaLink="false">https://www.fabriziomastrobattista.com/?p=158</guid>

					<description><![CDATA[<p>Tutorial: come realizzare una sidebar In questo articolo vedremo un tutorial su come creare una sidebar. Si tratta di una [&#8230;]</p>
<p>L'articolo <a href="https://www.fabriziomastrobattista.com/tutorial-come-creare-una-sidebar/">Tutorial: come creare una sidebar</a> proviene da <a href="https://www.fabriziomastrobattista.com">Fabrizio Mastrobattista - Web Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="158" class="elementor elementor-158" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-43a6301 e-flex e-con-boxed e-con e-parent" data-id="43a6301" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6d1da32 e-con-full e-flex e-con e-child" data-id="6d1da32" data-element_type="container">
				<div class="elementor-element elementor-element-20cdd19 animated-slow elementor-invisible elementor-widget elementor-widget-heading" data-id="20cdd19" data-element_type="widget" data-settings="{&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;_animation_delay&quot;:0.5}" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h1 class="elementor-heading-title elementor-size-default">Tutorial: come realizzare una sidebar</h1>				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5d096ff6 e-flex e-con-boxed e-con e-parent" data-id="5d096ff6" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cdd18ff elementor-widget elementor-widget-image" data-id="cdd18ff" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="623" src="https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/Firefox_Screenshot_2020-11-05T12-16-36.125Z-1024x623.png" class="attachment-large size-large wp-image-160" alt="Fabrizio Mastrobattista - Web Developer" srcset="https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/Firefox_Screenshot_2020-11-05T12-16-36.125Z-1024x623.png 1024w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/Firefox_Screenshot_2020-11-05T12-16-36.125Z-300x182.png 300w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/Firefox_Screenshot_2020-11-05T12-16-36.125Z-768x467.png 768w, https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/Firefox_Screenshot_2020-11-05T12-16-36.125Z.png 1041w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6b1397ae elementor-widget elementor-widget-text-editor" data-id="6b1397ae" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									
<p id="block-1f31fe2d-e705-4114-8e2a-5cf1cf6fcb56">In questo articolo vedremo un tutorial su come creare una sidebar. Si tratta di una componente semplice da realizzare e che si rivolge, pertanto, soprattutto a chi si sta approcciando da poco alla programmazione web.<br />Per realizzare questa componente si farà uso anche di jQuery ma in misura molto limitata e di Bootstrap.</p>

<p id="block-b8965c8c-dd8a-4047-bd3b-a8c1a1c271f5">In questo tutorial realizzeremo il tutto in un unico file ma, ovviamente, è possibile suddividere le varie sezioni in diversi file.</p>

<p id="block-d836929a-133d-4ae1-892e-a6a431c070e0">Realizziamo come prima cosa la struttura di base del nostro file html.</p>

<pre id="block-f0c93e07-2329-4cf7-a9ce-fe5ee5dab18f" class="wp-block-code"><code>&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />    &lt;head&gt;<br />        &lt;title&gt;Sidebar&lt;/title&gt;<br />   &lt;/head&gt;<br />   &lt;body&gt;<br />     &lt;h2&gt;Content&lt;/h2&gt;<br />   &lt;/body&gt;<br />&lt;/html&gt;</code></pre>

<h4 id="block-b30c4e07-09e1-46f1-8985-277ce716716a" class="wp-block-heading">Importazione jquery e bootstrap</h4>

<p id="block-1e4eca5d-0f3a-43ab-baa8-5c20a2fd094f">Ora procediamo ad inserire, all&#8217;interno del tag head i link per implementare le librerie di Boostrap e di jQuery. Questi tag li possiamo reperire tranquillamente sul sito di Bootstrap ad <a href="https://getbootstrap.com">https://getbootstrap.com</a>/</p>

<pre id="block-6e7bf0af-1211-4982-bc2d-b6efee31448a" class="wp-block-code"><code>&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />    &lt;head&gt;<br />        &lt;title&gt;Sidebar&lt;/title&gt;<br />        &lt;!-- jQuery --&gt;<br />        &lt;script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"&gt;&lt;/script&gt;<br />        &lt;script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"&gt;&lt;/script&gt;<br />        &lt;script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"&gt;&lt;/script&gt;<br />        &lt;!-- FONTAWESOME --&gt;<br />        &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js" integrity="sha256-KzZiKy0DWYsnwMF+X1DvQngQ2/FxF7MF3Ff72XcpuPs=" crossorigin="anonymous"&gt;&lt;/script&gt;<br />        &lt;!-- CSS --&gt;<br />        &lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"&gt;<br />   &lt;/head&gt;<br />   &lt;body&gt;<br />     &lt;h2&gt;Content&lt;/h2&gt;<br />   &lt;/body&gt;<br />&lt;/html&gt;</code></pre>

<p id="block-aaeb0b1b-4ce4-4567-92f1-4d66b63ccacb">Nello snippet precedente abbiamo inserito anche per completezza il link alle icone della libreria fontawesome.</p>

<h4 id="block-9e59f1bc-0bb8-45d4-8fa7-499383a7c00b" class="wp-block-heading">Realizzazione wrapper</h4>

<p id="block-c0d07cd3-45f8-453e-b47d-feecf00d1352">Il prossimo passo consiste nell&#8217;inserimento dell&#8217;html. Come prima cosa dobbiamo realizzare un wrapper, ovvero un elemento che dovrà contenere sia la sidebar che il contenuto della pagina. Ovviamente questo elemento dovrà avere delle regole di stile che inseriremo all&#8217;interno del tag style. Il primo passaggio nella definizione degli stili è quello di impostare l&#8217;altezza dei tag html e body al 100%, in modo tale da avere sia la sidebar che l&#8217;elemento contenitore alti quanto la finestra del browser che abbiamo aperto. L&#8217;elemento wrapper dovrà avere come valore della proprietà display flex, altezza e larghezza pari al 100% dell&#8217;elemento padre e gli elementi contenuti sarà allineati in modo tale da adattarsi al contenitore tramite la proprietà align-items ed il valore stretch. Questa proprietà si può utilizzare unicamente in combinazione con il valore flex, che crea elementi dal layout flessibile, della proprietà display. All&#8217;interno del wrapper vi è anche un ulteriore div contenitore avente id content. Di questo parleremo più avanti però.</p>

<pre id="block-ae934c4c-e114-4a5c-93c8-92c32f0163c1" class="wp-block-code"><code>&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />    &lt;head&gt;<br />        &lt;title&gt;Sidebar&lt;/title&gt;<br />        &lt;!-- jQuery, CSS e Fontawesome --&gt;<br />        &lt;style&gt;<br />            html,body{<br />                height: 100%;<br />            }<br />            .wrapper {<br />                display: flex;<br />                width: 100%;<br />                align-items: stretch;<br />                height: 100%;<br />            }<br />        &lt;/style&gt;<br />   &lt;/head&gt;<br />   &lt;body&gt;<br />     &lt;div class="wrapper"&gt;<br />         &lt;div id="content"&gt;<br />            &lt;h2&gt;Content&lt;/h2&gt;<br />         &lt;/div&gt;<br />     &lt;/div&gt;<br />   &lt;/body&gt;<br />&lt;/html&gt;</code></pre>

<h4 id="block-dd3034e7-7403-4287-af59-6286514553dd" class="wp-block-heading">La sidebar</h4>

<p id="block-1adba359-4389-4633-bc9f-d928ab6261b7">A questo punto cominciamo a realizzare la sidebar vera e propria. Il primo tag da aprire per realizzare il nostro obiettivo è il tag nav, che dovrà avere necessariamente un id. All&#8217;interno dei questo tag andremo ad inserire le voci del nostro menù laterale come meglio vogliamo. In questo caso, ho optato per una lista non ordinata al cui interno ho messo degli elementi che sono a loro volta liste non ordinate.</p>

<pre id="block-f99be8a4-1240-465a-a8ef-7f333168fe85" class="wp-block-code"><code>&lt;nav id="sidebar" class="custom-color-sidebar"&gt;<br />    &lt;div class="sidebar-header"&gt;<br />         &lt;span class="size-font-sidebar"&gt;&lt;span class="mt-4"&gt;Sidebar&lt;/span&gt;&lt;/span&gt;<br />   &lt;/div&gt;<br />   &lt;ul class="list-unstyled components"&gt;<br />       &lt;li&gt;<br />          &lt;a href=""&gt;&lt;i class="fas fa-home mr-3"&gt;&lt;/i&gt;Voce 1&lt;/a&gt;<br />      &lt;/li&gt;<br />      &lt;li&gt;<br />         &lt;a href="#voce-2" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"&gt;&lt;i class="fas fa-cog mr-3"&gt;&lt;/i&gt;Voce 2&lt;/a&gt;<br />         &lt;ul class="collapse list-unstyled" id="voce-2"&gt;<br />                &lt;li&gt;<br />                    &lt;a href=""&gt;Sottovoce 1&lt;/a&gt;<br />                &lt;/li&gt;<br />                &lt;li&gt;<br />                    &lt;a href=""&gt;Sottovoce 2&lt;/a&gt;<br />                &lt;/li&gt;<br />            &lt;/ul&gt;<br />       &lt;/li&gt;<br />       &lt;li&gt;<br />           &lt;a href="#voce-3" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"&gt;&lt;i class="fas fa-cog mr-3"&gt;&lt;/i&gt;Voce 3&lt;/a&gt;<br />          &lt;ul class="collapse list-unstyled" id="voce-3"&gt;<br />                  &lt;li&gt;<br />                      &lt;a href=""&gt;Sottovoce 1&lt;/a&gt;<br />                  &lt;/li&gt;<br />                  &lt;li&gt;<br />                      &lt;a href=""&gt;Sottovoce 2&lt;/a&gt;<br />                  &lt;/li&gt;<br />              &lt;/ul&gt;<br />       &lt;/li&gt;<br />       &lt;li&gt;<br />          &lt;a href="#voce-4" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"&gt;&lt;i class="fas fa-cog mr-3"&gt;&lt;/i&gt;Voce 4&lt;/a&gt;<br />         &lt;ul class="collapse list-unstyled" id="voce-4"&gt;<br />             &lt;li&gt;<br />                 &lt;a href=""&gt;Sottovoce 1&lt;/a&gt;<br />             &lt;/li&gt;<br />             &lt;li&gt;<br />                 &lt;a href=""&gt;Sottovoce 2&lt;/a&gt;<br />             &lt;/li&gt;<br />             &lt;li&gt;<br />                 &lt;a href=""&gt;Sottovoce 3&lt;/a&gt;<br />             &lt;/li&gt;<br />         &lt;/ul&gt;<br />      &lt;/li&gt;<br />   &lt;/ul&gt;<br />&lt;/nav&gt;</code></pre>

<p id="block-03289d7b-abb7-438d-8d38-74352121cb2d">Come potete vedere, il menù realizzato è una lista non ordinata le cui voci sono al loro volta delle liste non ordinate. Al click su una delle voci principali si apre il menù con le sottovoci cliccabili e eseguiranno delle operazioni (tipicamente reindirizzeranno ad altre pagine ma potrebbero anche aprire modali per esempio). Per ottenere questo effetto all&#8217;interno del tag li rappresentante la macrovoce bisogna mettere i data attribute data-toggle che avrà come attributo collapse e aria-expanded con attributo false. Come valore dell&#8217;attributo href invece metto l&#8217;id della lista non ordinata che vogliamo far aprire al click. La classe dropdown-toggle è una classe di bootstrap che non fa altro che stilizzare il pulsante.</p>

<h4 id="block-9eb0a125-4a08-4956-b731-b6a7cae54fca" class="wp-block-heading">Posizioniamo il pulsante ed il contenuto</h4>

<p id="block-d9cbb71c-1c9a-4ac2-a8c0-c1d28d71b266">La sidebar appena creata dovrà essere posizionata all&#8217;interno del wrapper ma fuori il div content poichè quest&#8217;ultimo, in caso volessimo nascondere la sidebar dovrà assumere la larghezza di tutta la finestra ma anche perchè l&#8217;altro contenuto gli andrebbe sotto compreso il pulsante che serve a nasconderla e visualizzarla.</p>

<pre id="block-092979e9-b137-4598-b22e-eddfcc9409a0" class="wp-block-code"><code>&lt;div id="content"&gt;<br />    &lt;!-- TOP BAR --&gt;<br />    &lt;nav class="navbar navbar-expand-lg navbar-light bg-light"&gt;<br />        &lt;div class="container-fluid"&gt;<br />            &lt;button type="button" id="sidebarCollapse" class="btn btn-dark"&gt;<br />                &lt;i class="fas fa-align-center"&gt;&lt;/i&gt;<br />           &lt;/button&gt;<br />           &lt;button class="btn btn-dark d-inline-block d-lg-none ml-auto" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"&gt;<br />                &lt;i class="fas fa-bars"&gt;&lt;/i&gt;<br />            &lt;/button&gt;<br />        &lt;/div&gt;<br />    &lt;/nav&gt;<br />    &lt;!-- FINE TOPBAR --&gt;<br />&lt;/div&gt;</code></pre>

<p id="block-d9fb81c4-001f-42fb-ad67-da9f5681ad39">All&#8217;interno del div content dovrà essere posizionato il contenuto della pagina. In questo caso ho inserito una topbar con il pulsante per nascondere o visualizzare la sidebar. Viene pertanto aperto un nuovo tag nav al cui interno, dentro un div con la classe container-fluid di bootstrap, inseriemo il pulsante che servirà al nostro scopo. Questo pulsante dovrà avere necessariamente un id che ci servirà nelle poche linee di jquery che andremo ad implementare.</p>

<h4 id="block-e788ea9a-b09a-4e05-baf6-d4b6ea738396" class="wp-block-heading">Le regole di stile della sidebar e del content</h4>

<p id="block-4849e859-ad76-4042-9e2c-ff98ba7bfd11">Il div content dovrà avere uno stile ben preciso. Pertanto all&#8217;interno del tag style nella head, definiamo quanto segue</p>

<pre id="block-ce5b75f7-5607-4b99-8a9d-65d6357e3ee8" class="wp-block-code"><code>#content {<br />      width: 100%;<br />      padding: 20px;<br />      min-height: 100%;<br />}</code></pre>

<p id="block-0f41d2a8-ff71-4d33-ad86-c2e1e9085860">La larghezza deve sempre essere del 100% della finestra, così come l&#8217;altezza minima. Vediamo ora le regole minime che deve avere la sidebar.</p>

<pre id="block-6249269c-646e-4e9b-9bf0-f9235084151d" class="wp-block-code"><code>#sidebar {<br />    width: 250px;<br />    background: #000 !important;<br />    color: #fff;<br />    transition: all 0.3s;<br />    height: 100%;<br />}<br /><br />#sidebar.active {<br />    margin-left: -250px;<br />}<br /></code></pre>

<p id="block-ce853e64-53b9-497c-97a9-bd760017a08d">Analizziamo quanto riportato sopra. La sidebar ha una larghezza di 250px fissa, l&#8217;altezza del 100% della finestra del browser e la proprietà transition che definisce il tempo che impiegherà la sidebar a nascondersi o visualizzarsi. L&#8217;altra regola fondamentale è il margin-left in #sidebar.active. Questa permette di effettivamente nascondere la sidebar quando viene premuto l&#8217;apposito pulsante, spostandola a sinistra.</p>

<h4 id="block-46124c63-665e-4ec4-add2-96728afad5b5" class="wp-block-heading">Il codice jQuery</h4>

<pre id="block-49257fcb-280e-4a01-964d-41b666200141" class="wp-block-code"><code>&lt;script type="text/javascript"&gt;<br />   $('#sidebarCollapse').on('click', function () {<br />       $('#sidebar').toggleClass('active');<br />   });<br />&lt;/script&gt;</code></pre>

<p id="block-1597a480-8ffa-4543-b4b7-307b909ea1ab">Terminiamo questo tutorial su come creare una sidebar inserendo il jQuery che effettivamente si occupa di nascondere o far visualizzare la sidebar. Al pulsante con id sidebarCollapse viene associato l&#8217;evento click in modo tale che ad ogni pressione, all&#8217;elemento con id sidebar viene tolta o rimossa la classe active che, come abbiamo visto sopra, nasconde o visualizza la sidebar. Questa componente la mettiamo appena prima della chiusura del tag body, fuori dai div.</p>

<h4 id="block-3074545c-e12d-4d2a-890c-45a217d6b90b" class="wp-block-heading">Conclusioni</h4>

<p id="block-39d5b3f9-1d2c-4950-9690-c0807ea19772">Questi sono gli elementi che servono per realizzare la sidebar. Come detto ad inizio articolo possiamo prendere ciascun elemento e metterlo in un file a parte per rispettare il principio di modularità ed evitare, pertanto, di dover modificare, qual&#8217;ora dovesse servire, ciascuna pagina in cui viene utilizzata.</p>

<p id="block-06fa9ec8-7f11-4b15-b27b-df090bff87f9">Potete scaricare il file completo di questo tutorial su come creare una sidebar al seguente link: <a href="https://www.fabriziomastrobattista.com/wp-content/uploads/2024/04/sidebar.zip">download_sample_sidebar</a></p>

<p> </p>
								</div>
				</div>
					</div>
				</div>
				</div>
		<p>L'articolo <a href="https://www.fabriziomastrobattista.com/tutorial-come-creare-una-sidebar/">Tutorial: come creare una sidebar</a> proviene da <a href="https://www.fabriziomastrobattista.com">Fabrizio Mastrobattista - Web Developer</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
