<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1203305832042393130</id><updated>2026-10-22T10:53:24.668+02:00</updated><category term="guida"/><category term="come funziona"/><category term="come fare per"/><category term="facebook"/><category term="google chrome"/><category term="sigil"/><category term="creare epub"/><category term="tutorial"/><category term="javascript"/><category term="google"/><category term="e-book"/><category term="epub"/><category term="guida alle novità"/><category term="presentazione"/><category term="sicurezza in rete"/><category term="anonimato"/><category term="css"/><category term="grafica 3D"/><category term="privacy"/><category term="blender"/><category term="calibre"/><category term="windows"/><category term="epubcheck"/><category term="free software"/><category term="tor"/><category term="estensioni di firefox"/><category term="impostazioni di privacy"/><category term="java"/><category term="mediafire"/><category term="firefox"/><category term="novità"/><category term="proxy"/><category term="chat di facebook"/><category term="come funzionano"/><category term="ebook"/><category term="intelligenza artificiale"/><category term="mobi"/><category term="motore di ricerca"/><category term="roguelike"/><category term="sicurezza"/><category term="a cosa servono"/><category term="internet explorer"/><category term="malwarebytes"/><category term="p2p"/><category term="siti di condivisione"/><category term="youtube"/><category term="aggirare la censura"/><category term="antivirus"/><category term="connessione sicura"/><category term="data mining"/><category term="download"/><category term="flightcrew"/><category term="greasemonkey"/><category term="megaupload"/><category term="nuovo profilo di facebook"/><category term="programma gratuito"/><category term="sicurezza su Facebook"/><category term="aggiornamento"/><category term="ccleaner"/><category term="come convertire"/><category term="condividere file"/><category term="cosa sono"/><category term="diario"/><category term="estrarre musica da video di youtube"/><category term="foglio di stile"/><category term="html5"/><category term="incorporare font"/><category term="informazioni personali"/><category term="introduzione"/><category term="malware"/><category term="timeline"/><category term="virus"/><category term="4shared"/><category term="come proteggersi"/><category term="come scaricare"/><category term="come si usa"/><category term="creare siti anonimi"/><category term="estensione"/><category term="falsa email"/><category term="file iso"/><category term="filestube"/><category term="google analytics"/><category term="google map"/><category term="impostazioni account"/><category term="linux"/><category term="lista di amici"/><category term="openoffice"/><category term="osiris"/><category term="programmi gratuiti per mac"/><category term="ricerca per immagini"/><category term="safari"/><category term="sicurezza computer"/><category term="xhtml"/><category term="adblock plus"/><category term="algoritmi genetici"/><category term="bloccare pubblicità"/><category term="come aprire"/><category term="come difendersi"/><category term="come usare"/><category term="convalida"/><category term="conversione file"/><category term="convertire pdf"/><category term="cookie"/><category term="correggere errori"/><category term="creare copertina"/><category term="dati personali"/><category term="dosbox"/><category term="facepad"/><category term="farmville"/><category term="freeware"/><category term="google cache"/><category term="grafica"/><category term="idpf"/><category term="inserire immagini"/><category term="interfaccia grafica"/><category term="jar"/><category term="kindle"/><category term="materiali"/><category term="mesh"/><category term="microsoft security essentials"/><category term="mobipocket creator"/><category term="pagine fan"/><category term="pdf"/><category term="programmazione"/><category term="prolog"/><category term="pulizia del pc"/><category term="python"/><category term="rapidshare"/><category term="registro delle attività"/><category term="retrogaming"/><category term="riquadro aggiornamenti"/><category term="rogue"/><category term="scaricare album"/><category term="texture"/><category term="tor browser"/><category term="torrent"/><category term="trovare virus"/><category term="unetbootin"/><category term="videogioco"/><category term="viral script"/><category term="worm"/><category term="account commemorativo"/><category term="adobe digital editions"/><category term="adriano marchetti"/><category term="amazon"/><category term="antispyware"/><category term="avventure testuali"/><category term="banner"/><category term="bloccare applicazione"/><category term="bot"/><category term="bufferzone pro"/><category term="ccenhancer"/><category term="censura"/><category term="cercare file"/><category term="cityville"/><category term="come bloccare"/><category term="come rimuovere"/><category term="controllo del computer"/><category term="crittografia"/><category term="crypter"/><category term="curses"/><category term="debian"/><category term="drm"/><category term="duckduckgo"/><category term="eliminare virus"/><category term="epub3"/><category term="estrarre audio da video"/><category term="firewall"/><category term="format factory"/><category term="foto"/><category term="freenet"/><category term="gimp"/><category term="gmail"/><category term="gnu emacs"/><category term="guida ai malware"/><category term="hijackthis"/><category term="hosting"/><category term="hosting sites"/><category term="i2p"/><category term="ibooks"/><category term="impaginazione"/><category term="inform"/><category term="ingegneria sociale"/><category term="interfaccia di"/><category term="internet archive"/><category term="libreoffice"/><category term="linguaggi di programmazione"/><category term="lista di malware"/><category term="lista di proxy"/><category term="live usb"/><category term="manutenzione computer"/><category term="media player classic"/><category term="messenger"/><category term="midi"/><category term="modificare epub"/><category term="modificare mobi"/><category term="navigazione anonima"/><category term="normativa utilizzo"/><category term="noscript"/><category term="novirusthanks"/><category term="nuove funzioni"/><category term="onion routing"/><category term="pagine truffa"/><category term="phishing"/><category term="photojacker"/><category term="photoshop"/><category term="progetto gutenberg"/><category term="pubblicità mirata"/><category term="recuperare file cancellati"/><category term="registro di sistema"/><category term="reti neurali"/><category term="richard stallman"/><category term="salvare il profilo"/><category term="scantanador"/><category term="scaricare il profilo"/><category term="scaricare video"/><category term="scummvm"/><category term="simulazioni"/><category term="siti onion"/><category term="sociologia"/><category term="songr"/><category term="spam"/><category term="spyware"/><category term="storie da ricordare"/><category term="street view"/><category term="tails"/><category term="terminare programma"/><category term="ticker"/><category term="tineye"/><category term="tinyurl"/><category term="trojan"/><category term="truffe su facebook"/><category term="userscript"/><category term="vidalia"/><category term="virus nella chat"/><category term="virustotal"/><category term="vlc"/><category term="vpn"/><category term="webrtc"/><category term="windows defender"/><category term="windows media player"/><category term="winrar"/><category term="word"/><category term="zamzar"/><category term="2025"/><category term="2conv"/><category term="4k video downloader"/><category term="7-zip"/><category term="9"/><category term="IF"/><category term="LibreJS"/><category term="Schrodinger"/><category term="abandonia"/><category term="abandonware"/><category term="abissi di mandelbrot"/><category term="accorciare link"/><category term="acquistare crediti"/><category term="acsm"/><category term="ad-aware"/><category term="adblock lite"/><category term="ads"/><category term="adsense"/><category term="adventure"/><category term="adware"/><category term="agcom"/><category term="aggregatore di feed"/><category term="algoritmi"/><category term="allenatore digitale"/><category term="android"/><category term="animazioni"/><category term="anonymous"/><category term="anonymouse"/><category term="antartide"/><category term="antifurto"/><category term="app store"/><category term="applicazioni"/><category term="applicazioni web"/><category term="aprire archivi"/><category term="art of computer programming"/><category term="ascii"/><category term="atube catcher"/><category term="audacity"/><category term="audiggle"/><category term="audiotag"/><category term="autenticarsi"/><category term="avast"/><category term="avg"/><category term="avira"/><category term="backup"/><category term="barra delle applicazioni"/><category term="barra strumenti"/><category term="batch"/><category term="better facebook"/><category term="biblioteche digitali"/><category term="bignami"/><category term="bin laden"/><category term="bing"/><category term="biologia"/><category term="bittorrent"/><category term="bloccare gioco"/><category term="breve storia"/><category term="buono a sapersi"/><category term="burnbit"/><category term="cache"/><category term="cancellare file su windows"/><category term="cancellazione definitiva"/><category term="captcha"/><category term="caricare files"/><category term="casualità"/><category term="cercare persone"/><category term="chat"/><category term="checksum"/><category term="chiudere un&#39;applicazione"/><category term="chm"/><category term="cirque du soleil"/><category term="cofeebreak"/><category term="coffeebreak"/><category term="colorare oggetti"/><category term="colorzilla"/><category term="combofix"/><category term="come caricare file"/><category term="come configurare"/><category term="come correggere"/><category term="come creare un portale"/><category term="come disattivare"/><category term="come impostare"/><category term="come realizzare"/><category term="come salvare"/><category term="comma ammazzablog"/><category term="commercio armi"/><category term="computer"/><category term="confrontare file"/><category term="console"/><category term="controllo tag"/><category term="convertire audio e video"/><category term="convertire file online"/><category term="convertire video con mac"/><category term="copyright"/><category term="crack"/><category term="creare cielo"/><category term="creare collage di foto"/><category term="crediti di facebook"/><category term="cronologia"/><category term="cronologia chat facebook"/><category term="cube slam"/><category term="curve"/><category term="d-fend"/><category term="daemon tools lite"/><category term="deep search"/><category term="depositfiles"/><category term="diablo"/><category term="dialer"/><category term="didattica"/><category term="differenze"/><category term="disattivare"/><category term="djvu"/><category term="dos"/><category term="dosshell"/><category term="dove sono"/><category term="dove sono i gruppi"/><category term="downfacebook"/><category term="download video"/><category term="drew mcdermott"/><category term="drive by"/><category term="easy file locker"/><category term="eclipse"/><category term="edgerank"/><category term="editor caratteri"/><category term="editor testo"/><category term="eepsite"/><category term="egobook"/><category term="elements"/><category term="eliza"/><category term="emulatore"/><category term="emule"/><category term="epubreader"/><category term="eraser"/><category term="esplorare musei"/><category term="estrarre audio online"/><category term="estrarre file compressi"/><category term="etimologia"/><category term="eudcedit"/><category term="exif"/><category term="extrude"/><category term="facebook chat"/><category term="facebook credits"/><category term="facebook safety"/><category term="facebook viral script"/><category term="fantascienza"/><category term="fb unseen"/><category term="fbexpert"/><category term="ffixer"/><category term="fileserve"/><category term="filetram"/><category term="finlandia"/><category term="flashcontrol"/><category term="flocking"/><category term="formati audio"/><category term="frederik pohl"/><category term="free download"/><category term="frontierville"/><category term="fud"/><category term="fumetti"/><category term="geolocalizzazione"/><category term="germania"/><category term="gestione account"/><category term="gestione attività"/><category term="gestione file"/><category term="ghostscript"/><category term="github"/><category term="gnu"/><category term="google art project"/><category term="google encrypted"/><category term="google toolbar"/><category term="googleprivacy"/><category term="gradienti"/><category term="grafi"/><category term="graphviz"/><category term="gratis"/><category term="guida a GIMP"/><category term="guida al recupero"/><category term="handbrake"/><category term="hidden wiki"/><category term="hidemyass"/><category term="hjsplit"/><category term="hotfile"/><category term="hotlink"/><category term="how to"/><category term="how to remove"/><category term="html"/><category term="https everywhere"/><category term="iexpress"/><category term="igarape"/><category term="il bloggatore"/><category term="immagine disco"/><category term="immagini profilo"/><category term="incognito"/><category term="incredibile guardate cosa"/><category term="indirizzo email"/><category term="indirizzo temporaneo"/><category term="informatica"/><category term="ingv"/><category term="inprivate browsing"/><category term="inserire link"/><category term="installazione"/><category term="interfaccia"/><category term="iphone"/><category term="ipod"/><category term="iside"/><category term="isis"/><category term="italiano"/><category term="joseph weizenbaum"/><category term="keep my opt-outs"/><category term="keylogger"/><category term="kindle direct publishing"/><category term="kindlegen"/><category term="knowledge graph"/><category term="latex"/><category term="layout tastiera"/><category term="legge bavagli"/><category term="lettori multimediali gratuiti"/><category term="liberliber"/><category term="libreria"/><category term="lingua"/><category term="linguaggio dot"/><category term="link nella chat"/><category term="lisp"/><category term="lmgtfy"/><category term="localizzazione"/><category term="longomatch"/><category term="longurl"/><category term="luci"/><category term="mac"/><category term="mafia wars"/><category term="mafiaafire"/><category term="mailcure"/><category term="map maker"/><category term="marketing"/><category term="media convert"/><category term="melodycatcher"/><category term="menu contestuale"/><category term="meshlab"/><category term="messaggi"/><category term="meteo"/><category term="midomi"/><category term="miniera"/><category term="miro video converter"/><category term="mobipocket reader"/><category term="modello"/><category term="modello per nuovo profilo"/><category term="modifica video"/><category term="modificare oggetti"/><category term="modificare pagina"/><category term="mouse"/><category term="mouse lock"/><category term="movi kanti revo"/><category term="mozilla firefox"/><category term="mp3 download"/><category term="mp3\"/><category term="mpeg streamclic"/><category term="msn messenger"/><category term="muoversi"/><category term="mylockbox"/><category term="nebbia"/><category term="nel mondo della bolla"/><category term="nemesys"/><category term="neooffice"/><category term="netlogo"/><category term="node.js"/><category term="nome utente"/><category term="non conosto il titolo"/><category term="note"/><category term="notifiche di lettura"/><category term="numeri"/><category term="offuscare"/><category term="ombre"/><category term="onionland"/><category term="opanda iexif"/><category term="open graph"/><category term="openvpn"/><category term="ottimizzazione motori ricerca"/><category term="pagerank"/><category term="pagine fantasma"/><category term="pagine infette"/><category term="panda"/><category term="paragrafo"/><category term="password di cartella"/><category term="pattern-matching"/><category term="paypal"/><category term="peanuts gallery"/><category term="personalizzare il profilo"/><category term="personalizzare il profilo Facebook"/><category term="pet society"/><category term="photograbber"/><category term="picasa"/><category term="pipl"/><category term="piriform"/><category term="plug-in sociali"/><category term="plugin"/><category term="polipo"/><category term="pong"/><category term="pop-under"/><category term="pop-up"/><category term="ports of call"/><category term="privacy su facebook"/><category term="processo"/><category term="progetto manuzio"/><category term="programma video"/><category term="programmi"/><category term="programmi gratis per foto"/><category term="proguard"/><category term="proteggere file e cartelle"/><category term="proteggersi"/><category term="protezione profilo"/><category term="protezione su windows"/><category term="pseudocasuali"/><category term="pubblicare ebook"/><category term="pubblicazione"/><category term="pulicacca"/><category term="punti di ripristino"/><category term="puppy linux"/><category term="quale scegliere"/><category term="quanto costano"/><category term="rabbit"/><category term="random"/><category term="rar"/><category term="rat"/><category term="recover deleted"/><category term="recuva"/><category term="regedit"/><category term="registro opposizioni"/><category term="relay"/><category term="repl"/><category term="rete di fiducia"/><category term="rete neurale"/><category term="rete semantica"/><category term="retroshare"/><category term="richieste di aiuto"/><category term="richieste di rimozione"/><category term="riconoscimento automatico"/><category term="riconoscimento vocale"/><category term="rimuovere virus di facebook"/><category term="risultati"/><category term="riunire file"/><category term="robocode"/><category term="rogue spyware"/><category term="rome2rio"/><category term="rootkit"/><category term="rot.js"/><category term="rotjs"/><category term="salvare email"/><category term="salvare video facebook"/><category term="sandbox"/><category term="save video"/><category term="savevideo"/><category term="sbloccare applicazione"/><category term="scansione pc"/><category term="scaricare files gratis"/><category term="scaricare gratis"/><category term="scaricare video facebook"/><category term="scott"/><category term="scraper"/><category term="script per facebook"/><category term="scriptus"/><category term="secure folder"/><category term="secured connection"/><category term="selezione script"/><category term="separare voce"/><category term="shareware"/><category term="shazam"/><category term="shellexview"/><category term="significato della parola"/><category term="simple adblock"/><category term="sintassi"/><category term="sintesi partite"/><category term="sistemi complessi"/><category term="siti gratuiti di conversione"/><category term="skipscreen"/><category term="skydrive"/><category term="skype"/><category term="slime"/><category term="smart"/><category term="smartphone"/><category term="social autentication"/><category term="social engineering"/><category term="social fixer"/><category term="software"/><category term="software dimenticato"/><category term="songtapper"/><category term="sopravvivenza"/><category term="sottolineato"/><category term="sovrascrittura"/><category term="specchio"/><category term="spybot antispyware"/><category term="stalking"/><category term="stanza"/><category term="stelle"/><category term="store"/><category term="storie interattive"/><category term="strumenti sviluppatori"/><category term="struttura pagina"/><category term="stub"/><category term="sugarscapeJS"/><category term="summon it"/><category term="swi-prolog"/><category term="swoopshare"/><category term="taggatoo"/><category term="tagliare file"/><category term="tar.gz"/><category term="task manager"/><category term="tasti funzione"/><category term="telefono"/><category term="terremoto"/><category term="testo"/><category term="the unarchiver"/><category term="thepiratebay"/><category term="three.js"/><category term="thunderbird"/><category term="tipografia"/><category term="tome"/><category term="torch"/><category term="traffico"/><category term="trasparente"/><category term="traveling salesman problem"/><category term="trovare musica"/><category term="trovare vecchie pagine"/><category term="truffe"/><category term="trustware"/><category term="tunatic"/><category term="tuneup"/><category term="ultimate css"/><category term="ultrasurf"/><category term="undum"/><category term="unicode"/><category term="unreal world"/><category term="uso della cpu"/><category term="utente premium"/><category term="utorrent"/><category term="valigia blu"/><category term="video downloadhelper"/><category term="videochat"/><category term="vidtomp3"/><category term="virtual private network"/><category term="virus della chat"/><category term="virus di facebook"/><category term="virus nei messaggi"/><category term="virus su Facebook"/><category term="visitare siti bloccati"/><category term="visualizza come"/><category term="visualizzare ogni formato"/><category term="wabbit"/><category term="web of trust"/><category term="web scraping"/><category term="webgl"/><category term="webgl globe"/><category term="weka"/><category term="whois"/><category term="wikipedia"/><category term="wikitaxi"/><category term="windjview"/><category term="windows 8"/><category term="windows movie maker"/><category term="world"/><category term="world wonders"/><category term="yahoo toolbar"/><category term="youconvertit"/><category term="youtube video download"/><category term="zip"/><category term="zonealarm"/><category term="zork"/><category term="zynga"/><title type='text'>L&#39;antro del Nerd</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>309</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-7748381986729437970</id><published>2015-03-31T20:53:00.000+02:00</published><updated>2015-03-31T20:53:02.327+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intelligenza artificiale"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="programmazione"/><category scheme="http://www.blogger.com/atom/ns#" term="simulazioni"/><category scheme="http://www.blogger.com/atom/ns#" term="sociologia"/><category scheme="http://www.blogger.com/atom/ns#" term="sugarscapeJS"/><title type='text'>SugarscapeJS - Agenti artificiali per società artificiali</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Sugarscape&lt;/b&gt; è un modello multiagente di simulazione di società artificiali (per un dato valore di società), reso famoso dal libro &lt;i&gt;Growing artificial societies: social science from the bottom up&lt;/i&gt;, scritto da Joshua M. Epstein e Robert Axtell nel 1996. Da allora, ha dato origine a una discreta quantità di programmi che emulavano, in forma più o meno completa, il progetto delineato in quello studio, e ancora continua a produrne.&lt;br /&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/altro/sugarscapejs.html&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;SugarscapeJS&lt;/b&gt;&lt;/a&gt;, come il nome stesso dovrebbe suggerire, è una sua versione in &lt;b&gt;JavaScript&lt;/b&gt;, realizzata da me, in cui cerco di inserire, a mano a mano che procedo col lavoro, il maggior numero possibile degli elementi proposti nello studio originale. Al momento ho incorporato quasi tutte le regole contenute nei capitoli due, tre e nella prima metà del quattro: mancano i prestiti, ossia la seconda metà del quarto capitolo, e le malattie, che occupano il capitolo cinque. Arriveranno anche loro.&lt;br /&gt;Per chi non conosce il testo di riferimento, una breve presentazione della struttura di &lt;b&gt;Sugarscape&lt;/b&gt;, che è distinto in tre componenti di base: gli agenti, l’ambiente in cui interagiscono tra loro e le regole in base alle quali interagiscono tra loro e con l’ambiente stesso.&lt;br /&gt;Gli agenti sono gli abitanti della società artificiale. Di fatto, sono quadratini colorati che si muovono sullo schermo, ma voi potete immaginarli più o meno come preferite. Possiedono alcune proprietà, come età, sesso, durata massima della vita, campo visivo, metabolismo e così via: molte di queste proprietà possono essere regolate prima di avviare la simulazione, altre sono assegnate in modo pseudocasuale al momento della nascita. Hanno anche la capacità di muoversi nell’ambiente e interagire con altri agenti, ma di questo parlerò poi.&lt;br /&gt;L’ambiente è una griglia di 50 x 50 caselle, su cui gli agenti vivono e si muovono. Una scacchiera, insomma. Ogni casella può ospitare un solo agente alla volta e possiede una quantità determinata di risorse, rinnovabili col tempo. L’ambiente può presentare una distribuzione delle risorse molto diversa, ma qui ho scelto, per il momento, la struttura più famosa e più spesso associata con &lt;b&gt;Sugarscape&lt;/b&gt;, con le risorse concentrate in due “picchi” (o quattro, se si sceglie di usare una seconda risorsa). Le risorse sono zucchero (di base) e spezia (opzionale).&lt;br /&gt;Le regole sono un insieme di comandi che determinano il modo in cui gli agenti si comportano. La regola di base per il movimento, ad esempio, prevede che ogni agente cerchi, all’interno del proprio campo visivo, la più vicina casella libera che contiene la maggiore quantità di risorse, che si muova per occupare quella casella e raccolga tutto il contenuto. Vi sono poi regole che determinano il modo in cui le risorse ricresceranno, il modo in cui l’agente interagisce con altri agenti, sia per la riproduzione, sia per il combattimento, sia anche per la “conversione” di chi appartiene a una cultura diversa, e altre regole ancora arriveranno, per commerciare e determinare come avvenga la trasmissione di malattie all’interno di Sugarscape: in molti casi, è possibile decidere quali regole applicare e quali ignorare, così da simulare ciò che vogliamo e osservare solo i risultati che ci interessano.&lt;br /&gt;Sulla base di questi tre componenti, Sugarscape si ripropone di provare a costruire le dinamiche di una società “dal basso”, ossia impostando solo semplici regole generali e osservando poi il modo in cui si svolge l’interazione tra agenti e territorio, seguendo le suddette regole. Interazione che spesso è interessante, in effetti, e forse anche istruttiva, ma su questo punto non mi pronuncio. A ogni modo, vediamo le regole disponibili finora.&lt;br /&gt;Ogni agente può vedere fino a una certa distanza, stabilita casualmente alla nascita, e ha bisogno di consumare a ogni turno una certa quantità di zucchero (e spezia, se usiamo due risorse) per mantenersi vivo: primo obiettivo è dunque la ricerca di zone con tanto zucchero, da raccogliere e consumare. E già questo produce un notevole effetto-formicaio nella simulazione, oltre a introdurre una selezione naturale che porta alla rapida estinzione di chi ha campo visivo scarso e metabolismo elevato. Se gli agenti morti non sono sostituiti, si arriva presto a uno stallo, che ci dice quale sia la capacità di portata per quell’ambiente.&lt;br /&gt;Introducendo le stagioni, modifichiamo il modo in cui lo zucchero (e la spezia, ma ormai dovreste aver capito l’andazzo) è rigenerato nell’ambiente: se prima era uniforme su tutto il territorio, adesso l’ambiente è diviso in due zone, nord e sud, e in quelle due zone si alternano ogni X turni estate (rigenerazione massima delle risorse) e inverno (rigenerazione minima delle risorse). Gli agenti cominceranno a migrare in massa al cambiamento delle stagioni.&lt;br /&gt;Già sulla base di questo, possiamo osservare come si distribuiscano le ricchezze tra gli agenti, ossia la quantità di zucchero posseduta da ognuno. O almeno, potremmo vederlo: in realtà, per adesso ho solo un grafico con l’indice Gini, ma in futuro introdurrò anche tabelle che mostrino in modo meno tecnico e più comprensibile la tendenza generale a una disparità sociale piuttosto accentuata.&lt;br /&gt;Una vera interazione tra agenti compare solo col capitolo tre del libro. Per prima cosa, si può introdurre la riproduzione sessuale, come alternativa alla rigenerazione causale a ogni decesso: ogni agente in età fertile, e con un quantitativo minimo di risorse, a ogni turno cercherà tra i propri vicini un potenziale partner, che sia di sesso opposto, di età fertile, che abbia risorse e che non sia suo parente stretto (tecnicamente, Sugarscape non vieta l’incesto, nella sua formulazione originaria, ma io ho voluto introdurre questo limite, per renderlo più realistico e “umano”, così come il limite di una sola riproduzione per turno). Questa regola da sola cambia gli equilibri ambientali, portando a una continua oscillazione nel numero di agenti supportati. Possiamo poi introdurre anche l’eredità, ossia la possibilità che i figli ottengano una parte uguale delle risorse dei genitori, alla morte di questi: principale effetto sarà una tendenza ad accentuare le disparità sociali.&lt;br /&gt;Dopo l’eredità, arriva l’ereditarietà. Qualche centinaio di turni ci mostra come, anche senza averla espressamente introdotta, la selezione naturale porta ad avere agenti con visione sempre migliore e un metabolismo che rapidamente crolla al minimo. Una tendenza che avevamo già visto anche in assenza di riproduzione, ma che va alle stelle quando la riproduzione è presente. Curiosamente, però, l’aumento della visione non è costante e di tanto in tanto si può invertire.&lt;br /&gt;Ma una società non è solo sesso, nonostante &lt;b&gt;YouPorn&lt;/b&gt; dimostri il contrario. Assieme alla possibilità di riproduzione sessuale, esistono anche due “culture” di base, indicate col colore rosso e blu. Sono di fatto una lista di numeri binari, la cui lunghezza è regolabile a piacimento, ma è meglio che sia sempre dispari: se prevalgono gli 1, il nostro agente apparterrà a una cultura; se prevalgono gli 0, apparterrà all’altra. Le culture non sono stabili e possono cambiare nel corso della simulazione, a seconda del modo in cui gli agenti interagiscono tra loro: le culture si intrecciano al momento della nascita di nuovi agenti, ma anche solo muoversi all’interno di Sugarscape porta gli agenti in contatti con altri agenti, in un continuo influenzarsi a vicenda. Se così vogliamo.&lt;br /&gt;Dalla cultura alla guerra. Un’altra regola opzionale ci permette di decidere che le due culture non coesistano pacificamente in Sugarscape: se così vogliamo, rossi e blu cercheranno di sopraffarsi a vicenda, fino a che ne resterà uno solo, oppure fino a che non si raggiungerà un equilibrio da guerra fredda, con le due culture rinchiuse nelle proprie zone di influenza e in continuo contrasto lungo i confini.&lt;br /&gt;Col capitolo quattro arriva una seconda risorse, che affianca lo zucchero: è la spezia. Grazie alla presenza di due risorse, gli agenti possono adesso commerciare, scambiando il surplus per ottenere i beni di cui hanno maggiore scarsità. In teoria. In pratica, il raddoppiamento delle risorse comporta anche un raddoppiamento delle possibilità di morire e spesso la nostra simulazione si chiuderà con l’estinzione totale degli agenti: quando non succede, però, otteniamo un passabile commercio.&lt;br /&gt;Gli agenti, poi, sono divisi tra due categorie di commercianti: aggressivi e cauti. Un agente cauto scambia solo il proprio surplus, solo nella misura minima e punta a un profitto modesto, ma costante: tipica formica, per intenderci. Un agente aggressivo, invece, si butta negli scambi anche a rischio di perderci, non si ritira mai da una offerta e punta sempre al colpaccio. A volte gli riesce.&lt;br /&gt;I prestiti tra gli agenti costituiscono la seconda parte del capitolo quattro, ma non li ho ancora implementati, proprio come non ho ancora implementato il capitolo cinque, dedicato a malattie e sistemi immunitari. Altra cosa che manca, presente nel capitolo due, è la produzione di inquinamento, che al momento ho escluso in quanto la formulazione data dal libro non è molto interessante e non aggiunge granché alla simulazione. Magari la riesumerò in futuro.&lt;br /&gt;In breve, questo è &lt;b&gt;SugarscapeJS&lt;/b&gt;. La velocità della simulazione varia molto a seconda del browser utilizzato, ma dovrebbe comunque funzionare su ogni browser decentemente moderno, anche se non è ottimizzato per dispositivi con schermi piccoli. Raccolta e produzione di dati e grafici avrà bisogno ancora di molto lavoro, ma la simulazione è già utilizzabile e fornisce alcuni risultati. Se si è di bocca buona, almeno.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/altro/sugarscapejs.html&quot; target=&quot;_blank&quot;&gt;Prova &lt;b&gt;SugarscapeJS&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/7748381986729437970/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2015/03/sugarscapejs-agenti-artificiali-per.html#comment-form' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7748381986729437970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7748381986729437970'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2015/03/sugarscapejs-agenti-artificiali-per.html' title='SugarscapeJS - Agenti artificiali per società artificiali'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-8825306741187043717</id><published>2015-02-20T20:08:00.001+01:00</published><updated>2015-02-20T20:08:05.639+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calibre"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="ebook"/><category scheme="http://www.blogger.com/atom/ns#" term="guida alle novità"/><category scheme="http://www.blogger.com/atom/ns#" term="modificare mobi"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><title type='text'>Modificare ebook con Calibre</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Calibre&lt;/b&gt; è un programma gratuito e libero, già famoso come strumento per la conversione e in generale la gestione degli ebook, tanto da essere stato etichettato in più occasioni come lo &lt;b&gt;iTunes&lt;/b&gt; degli ebook. Che questo sia da intendersi come un complimento o un insulto è aperto alla vostre interpretazioni e mi asterrò dal proporvi la mia, che propende per al seconda.&lt;br /&gt;
Etichette a parte, Calibre è usato soprattutto per convertire un ebook da un formato all’altro, nonché per fungere da biblioteca virtuale e, se si vuole, anche per trasferire testi dal computer a un qualsiasi lettore esterno, e viceversa. Le sue funzioni, però, non si esauriscono qui. Tra quelle introdotte più di recente (anche se quanto di recente dipende dall’ultima volta che lo avete aggiornato: non è che sia proprio una novità dell’ultima ora, ecco) vi è la possibilità di modificare ebook. Alcuni formati di ebook. E per “modificare” non intendo solo convertirli, ma proprio editarne il contenuto, come si può fare con un qualsiasi documento all’interno di un elaboratore di testi come &lt;b&gt;Word&lt;/b&gt; o &lt;b&gt;Writer&lt;/b&gt;.&lt;br /&gt;
La modifica di ebook all’interno di Calibre è disponibile soltanto per due formati, che sono poi anche quelli che ha più senso modificare con questo programma: &lt;b&gt;EPUB&lt;/b&gt; e &lt;b&gt;AZW3&lt;/b&gt;. Il primo formato dovrebbe essere noto a tutti ed è quello utilizzato dalla maggior parte dei dispositivi di lettura che non siano il &lt;b&gt;Kindle&lt;/b&gt;. Il formato AZW3, invece, potrebbe suonare più esotico a molti, ma di fatto è una versione riveduta e corretta del &lt;b&gt;MOBI&lt;/b&gt;, ossia il formato base per il suddetto Kindle.&lt;br /&gt;
La nuova funzione di modifica la trovate facilmente nella barra degli strumenti di Calibre ed è la penultima voce in fondo a destra:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigs5oBIezr4aTB4VnCtGWUapZH_WlhuQPDxxAQkzMsxq8JloNBkMEkF9WzkeQ3EAIPSqYhVFxcBhiJgIROlMVHMMnAF-8W5NpGWwruj89iYPBe_slWBDjamDVSicLDpenqLX8AUnNlypc/s1600/edit1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigs5oBIezr4aTB4VnCtGWUapZH_WlhuQPDxxAQkzMsxq8JloNBkMEkF9WzkeQ3EAIPSqYhVFxcBhiJgIROlMVHMMnAF-8W5NpGWwruj89iYPBe_slWBDjamDVSicLDpenqLX8AUnNlypc/s1600/edit1.jpg&quot; height=&quot;37&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Selezionate lo ebook da modificare, cliccate sulla icona e si aprirà la finestra di modifica:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix0rCviftvjXZnRgtZfYjMPDzkBBABS1NO2RPkDyitLVf4JSHlv_P24FhAEPR1Whev9aYTwUUSkuQytiyZLhrpcCqm-Rgv32k1jru_VzDjURtTuhY7au0a1y2oOPXp-Al2607FMjevG04/s1600/edit2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix0rCviftvjXZnRgtZfYjMPDzkBBABS1NO2RPkDyitLVf4JSHlv_P24FhAEPR1Whev9aYTwUUSkuQytiyZLhrpcCqm-Rgv32k1jru_VzDjURtTuhY7au0a1y2oOPXp-Al2607FMjevG04/s1600/edit2.jpg&quot; height=&quot;165&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Come potete vedere, non è poi molto diversa da quella di &lt;b&gt;Sigil&lt;/b&gt; o da quella di un qualsiasi altro elaboratore id testi ridotto all’osso o quasi. Non aspettatevi funzioni speciali o particolari, dunque: è uno strumento che vi permette di modificare il codice di uno ebook, ma senza campanelli e lucine colorate. Almeno per adesso, poi in futuro si vedrà.&lt;br /&gt;
Non so quanti di voi lo vorranno usare per modificare un file EPUB, dato che Sigil permette già di fare la stessa cosa e in modo più completo (ebbene sì, è ancora più spartano ed essenziale di Sigil, che lo crediate oppure no), ma può essere utile per modifiche rapide e immediate, senza bisogno di uscire dal programma che state utilizzando. Ammesso che il programma che state utilizzando sia Calibre, ovviamente. Molto più interessante, invece, è la possibilità di modificare ebook per il Kindle.&lt;br /&gt;
Come ho detto, il secondo formato che potete modificare utilizzando questo strumento è lo AZW3. Il formato AZW3, anche se non proprio del tutto, è quasi completamente identico al MOBI. Da un certo punto di vista. Da un altro punto di vista è un MOBI arricchito, per permette di andare al di là di una grafica in bianco e nero e striminzita, che è la sola grafica concessa dal MOBI. Funziona col Kindle e la conversione dal MOBI è quasi indolore: molto spesso non si nota neppure la differenza, almeno sul piano grafico.&lt;br /&gt;
Cosa significa tutto questo? Significa che, se volete modificare uno ebook in formato MOBI, lo potete convertire prima in AZW3 e poi modificare all’interno di Calibre. Il che è più o meno come convertirlo in EPUB e poi modificarlo, d’accordo, ma la distanza tra i due formati è minore e molto probabilmente non avrete bisogno di una seconda conversione a lavori ultimati, per poter leggere il risultato sul vostro Kindle, dato che il Kindle apre senza problemi il formato AZW3. A meno che il vostro Kindle non sia alquanto datato, nel qual caso potrebbero anche esserci problemi.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/8825306741187043717/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2015/02/modificare-ebook-con-calibre.html#comment-form' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8825306741187043717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8825306741187043717'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2015/02/modificare-ebook-con-calibre.html' title='Modificare ebook con Calibre'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigs5oBIezr4aTB4VnCtGWUapZH_WlhuQPDxxAQkzMsxq8JloNBkMEkF9WzkeQ3EAIPSqYhVFxcBhiJgIROlMVHMMnAF-8W5NpGWwruj89iYPBe_slWBDjamDVSicLDpenqLX8AUnNlypc/s72-c/edit1.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-9141453266661247549</id><published>2015-01-31T10:03:00.001+01:00</published><updated>2015-01-31T10:03:45.213+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="presentazione"/><category scheme="http://www.blogger.com/atom/ns#" term="roguelike"/><category scheme="http://www.blogger.com/atom/ns#" term="rot.js"/><category scheme="http://www.blogger.com/atom/ns#" term="scantanador"/><category scheme="http://www.blogger.com/atom/ns#" term="videogioco"/><title type='text'>Scantanador, un roguelike &quot;in fieri&quot;</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/altro/scantanador.html&quot;&gt;Cliccate qui per provare &lt;b&gt;Scantanador 0.0.1 Alpha&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;Scantanador è il nome di un &lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/06/cosa-sono-i-roguelike.html&quot;&gt;&lt;b&gt;roguelike&lt;/b&gt;&lt;/a&gt; programmato da me, in &lt;b&gt;JavaScript&lt;/b&gt;, e basato sulla libreria &lt;a href=&quot;https://ondras.github.io/rot.js/hp/&quot;&gt;&lt;b&gt;ROT.JS&lt;/b&gt;&lt;/a&gt;, libreria JavaScript (che sorpresa!) che contiene diverse funzioni per semplificare la vita a chi, per una qualunque forma di pazzia, decida di programmare un nuovo roguelike. Come potete immaginare, io sono tra questi pazzi.&lt;br /&gt;I comandi sono semplici e sono più o meno i classici di un roguelike. Voi siete la &lt;b&gt;@&lt;/b&gt; al centro dello schermo, vi muovete coi tasti freccia, il tastierino numerico o clicando/toccando il quadrante dello schermo corrispondente alla direzione. Premendo &lt;b&gt;[Invio]&lt;/b&gt;, o cliccando/toccando l&#39;icona @, potete aprire un menu, con le azioni principali. Il tasto &lt;b&gt;[?]&lt;/b&gt; vi mostrerà una lista di tasti, coi comandi corrispondenti.&lt;br /&gt;Al momento, Scantanador è poco più di uno scheletro, ancora in ampia fase di lavorazione e con ponteggi e impalcature sparsi più o meno ovunque. Se il mio obiettivo fosse stato quello di creare un 7DRL, ossia un roguelike programmato in sette giorni, il lavoro sarebbe ormai molto vicino alla conclusione: basterebbe annodare un paio di fili, infilarci un mostro finale, magari due o tre oggetti in più e stop, il gioco è fatto. In tutti i sensi. Siccome però, nella mia pazzia o incoscienza, progetto di realizzare qualcosa di molto più ampio, la conclusione è rinviata a un futuro più o meno lontano, ma che prima o poi arriverà. Almeno, è quanto spero.&lt;br /&gt;Il modello a cui più mi sono ispirato, nella progettazione, è stato &lt;a href=&quot;http://te4.org/&quot;&gt;&lt;b&gt;ToME&lt;/b&gt;&lt;/a&gt;, storico roguelike degli anni ‘90 e oltre, nonché uno dei pilastri del genere. Per essere precisi, il mio modello è stato la vecchia versione di ToME, ossia quella che ancora si chiamava &lt;b&gt;Troubles of Middle Earth&lt;/b&gt; e che ha chiuso i battenti con la versione &lt;b&gt;2.3.5&lt;/b&gt;, per rinascere poi sotto altro nome, ma identica sigla. Perché una versione così vecchia? Perché è la versione che ho giocato e amato di più, e che mi ha fatto perdere piacevolmente una montagna di ore, ai tempi dell’università: il gioco più recente è senza dubbio migliorato e più ampio, ma alla nostalgia non si comanda. E poi tutti i gusti sono guasti, no?&lt;br /&gt;Nella versione definitiva, quando arriverà, Scantanador presenterà più dungeon, collegati tra loro da un mondo di superficie, oppure un solo, lunghissimo dungeon: ancora non ho deciso, ma il tempo per scegliere non mi manca, con tutto il lavoro ancora in corso. Per il momento, questa versione di prova, versione alpha che più alpha non si può, presenta un solo dungeon, di dieci livelli, e senza mostro finale. Insoddisfacente? Certo, ma è anche una versione di base, che serve a me più che altro come palestra in cui provare le funzionalità che vado via via aggiungendo: potete considerarlo una demo, in altri termini, almeno per il momento.&lt;br /&gt;Trattandosi di un roguelike in JavaScript, è quindi destinato a essere utilizzato soprattutto in un browser e da dispositivi di ogni tipo e dimensione, finora mi sono concentrato principalmente sul supporto vari tipi di input: in pratica, può essere giocato utilizzando la tastiera, nella migliore tradizione dei roguelike, ma può anche essere giocato utilizzando il mouse, oppure le ditate sullo schermo. In teoria. In pratica l’ho potuto collaudare soltanto su un ristretto numero di dispositivi, per adesso, per cui ogni segnalazione di malfunzionamento sarà gradita.&lt;br /&gt;Altro aspetto su cui ho lavorato molto, aspirando a un gioco di lunga durata, è il salvataggio delle partite. Il salvataggio utilizza il &lt;b&gt;localStorage&lt;/b&gt;, per cui la partita è salvata all’interno del browser che state utilizzando: se riaprite il gioco con lo stesso browser, dovreste pote ripartire dal punto in cui avevate salvato. A meno che non siate morti dopo il salvataggio, ovviamente: come ogni roguelike che si rispetti, Scantanador abbraccia la filosofia del permadeath, ossia “si muore una volta soltanto”. Quando il vostro personaggio muore, i salvataggi sono cancellati. Punto. Ovviamente, utilizzando il localStorage voi potete imbrogliare quanto volete, se avete una minima conoscenza del JavaScript, perché i dati del salvataggio sono nelle vostre mani, facilmente accessibili.&lt;br /&gt;Riassumendo, vediamo di elencare in breve ciò che è già presente in questa prima versione del gioco, (chiamiamola Scantanador 0.0.1) e ciò che sarà introdotto più avanti.&lt;br /&gt;&lt;b&gt;Già sviluppato:&lt;/b&gt;&lt;br /&gt;-supporto per tastiera, mouse, touch;&lt;br /&gt;-salvataggio e caricamento delle partite;&lt;br /&gt;-combattimento corpo a corpo, più alcune armi;&lt;br /&gt;-alcune armature, utilizzabili da player e mostri;&lt;br /&gt;-combattimento a distanza (semplificato), più alcune armi;&lt;br /&gt;-pozioni con effetti immediati o prolungati (alcune);&lt;br /&gt;-oggetti con poteri speciali (alcuni);&lt;br /&gt;-player e mostri possono raccogliere, gettare e utilizzare (alcuni) oggetti;&lt;br /&gt;-mostri con poteri speciali (alcuni);&lt;br /&gt;-meccanismo di combattimento riadattato dal d20 system.&lt;br /&gt;&lt;b&gt;Da sviluppare:&lt;/b&gt;&lt;br /&gt;-migliorare il combattimento a distanza;&lt;br /&gt;-nuovi mostri, nuovi oggetti, nuovi poteri;&lt;br /&gt;-mostri più intelligenti (o meno stupidi);&lt;br /&gt;-esperienza e passaggio di livello;&lt;br /&gt;-classi per il player;&lt;br /&gt;-abilità speciali per player e mostri;&lt;br /&gt;-nuovi dungeon/ampliamento dungeon;&lt;br /&gt;-mostro finale;&lt;br /&gt;-magia;&lt;br /&gt;-trappole;&lt;br /&gt;-oggetti da identificare;&lt;br /&gt;-correggere singolari/plurali;&lt;br /&gt;-PNG?&lt;br /&gt;E molto altro, al primo posto la correzione di tutti gli errori che troverò strada facendo. In pratica, come dicevo all’inizio, per adesso ho posto le basi: il resto consiste nell’edificare sopra queste basi. Sperando che reggano.&lt;br /&gt;Ah, la grafica è ovviamente in ASCII: sono tradizionalista, ma soprattutto possiedo le capacità artistiche di un merluzzo. Inserire immagini e trasformarlo in un gioco contemporaneo non sarebbe difficile; realizzare immagini decenti lo è, almeno per me. Che poi in realtà non è proprio definibile come ASCII; dato che utilizzo caratteri Unicode, ma non importa.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/9141453266661247549/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2015/01/scantanador-un-roguelike-in-fieri.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/9141453266661247549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/9141453266661247549'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2015/01/scantanador-un-roguelike-in-fieri.html' title='Scantanador, un roguelike &quot;in fieri&quot;'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-9202887167686629859</id><published>2015-01-31T09:57:00.002+01:00</published><updated>2015-02-01T10:15:46.804+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="roguelike"/><category scheme="http://www.blogger.com/atom/ns#" term="rotjs"/><category scheme="http://www.blogger.com/atom/ns#" term="scantanador"/><category scheme="http://www.blogger.com/atom/ns#" term="tome"/><category scheme="http://www.blogger.com/atom/ns#" term="videogioco"/><title type='text'>Scantanador - A roguelike &quot;in fieri&quot;</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/altro/scantanador.html&quot; target=&quot;_blank&quot;&gt;Click here to try &lt;b&gt;Scantanador 0.0.1 Alpha&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;
Scantanador is the name of a &lt;a href=&quot;http://www.roguebasin.com/index.php?title=Main_Page&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;roguelike&lt;/b&gt;&lt;/a&gt; in &lt;b&gt;JavaScript&lt;/b&gt;, which I’m programming. It utilizes the library &lt;a href=&quot;https://ondras.github.io/rot.js/hp/&quot;&gt;&lt;b&gt;ROT.JS&lt;/b&gt;&lt;/a&gt;, which is a very nice tool to help a poor, distressed programmer, who is working on a roguelike: its author seems to have a difficult relationship with semicolon and suchlike, but that’s another matter. It’s a good library, if you are crazy enough to program a roguelike. I am.&lt;br /&gt;
Command keys are quite easy and are, more or less, those you find in any roguelike. You are the @ in the centre of the screen and you can walk around by using arrow keys, numpad, or clicking/tapping the portion of the screen corresponding to a given direction. Pressing [Enter], or clicking/tapping on the @ icon, you can access to the menu, which lists all the main commands. The ? key will show you a list of all the keys used in the game.&lt;br /&gt;
Right now, Scantanador is little more than a skeleton, a bare-bone structure on which I am still working and a lot of work is still needed. A lot. If I were aiming for a 7DRL, which is to say a roguelike wrote and concluded within 7 days, I would be almost there: add a little more stuff, a final boss, maybe another pair of objects and the game would be ready. But not. Since I am crazy enough to think about a bigger game (way bigger), I still have a long way to go, before having a game which, somehow, can be seen as completed. Some day I’ll get there, for sure. Or, at least, I hope.&lt;br /&gt;
My model is &lt;b&gt;ToME&lt;/b&gt;, mainly, which is a historical roguelike from ‘90s, but still alive and kicking. More or less. In truth, the version I’m using as an inspiration is not exactly alive and kicking, being the old &lt;b&gt;2.3.5&lt;/b&gt; version, which was still called “Troubles of Middle Earth”, before kicking the bucket and being reborn with a different name and quite a different world. Why am I looking and the old version, if there is a new one, which is richer and probably better in every aspect? Because ToME 2.3.5 (and all the previous versions) is the one I played and loved the most, the game on which I wasted away many and many hours, when I was in college. It’s nostalgia, pure and simple, and I know it, but... it’s a matter of tastes, right? And all tastes are a waste, in the end. More or less. Let’s say so, okay?&lt;br /&gt;
Ina distant day, Scantanador will posses many dungeons, all connected by a wilderness or maybe just one dungeon, but extremely deep: I’ m not sure, yet, but I still have plenty of time, to make up my mind about it. There is still an awful lot of work, for me. Anyway, this demo version (which is really an Alpha release, but very alpha) has only one dungeon, with 10 levels, and without a final boss. Not satisfying? I know, I know, but it’s a first release, which manly serves to me as a playground, where I can test new stuff and see if everything works correctly, any time I add some new object, monster or power. It’s just a demo, as I said.&lt;br /&gt;
Being a JavaScript game, it should work on a very wide range of browsers and devices, and work fine everywhere. Or at least fine enough. This is the reason why I concentrated on supporting many kind of input: you can play it with your keyboard, with a mouse, tapping on a touchscreen and so on. Or, at least, you should be able to: I could only test it on a limited number of devices and browsers, so I’m not sure that it will really work everywhere. If you find something wrong, just tell me and I’ll fix it.&lt;br /&gt;
Given that I’m trying to program a game, which could last many hours, I also spent quite some time on the save and load process. The game is saved inside the browser you’re using to play it, in its &lt;b&gt;localStorage&lt;/b&gt; object: if you open Scantanador with the same browser, you should be able to restart a previously saved game. Unless you died after the last save, of course: as a true roguelike, at least in spirit, Scantanador follows the philosophy of permadeath, which is to say “you can only die once”. Once you die, your character and all the saved game are deleted. That’s all. Of course, since it utilizes the localStorage, you can cheat the living shit out of a saved game, if you really want and if you have a minimal working knowledge of JavaScript: all the data are in you browser and very easy to access.&lt;br /&gt;
In short, let’s see what has already been implemented in Scantanador (version 0.0.1) and what is still waiting in line.&lt;br /&gt;
&lt;b&gt;Already here:&lt;/b&gt;&lt;br /&gt;
-keyboard, mouse, touch support;&lt;br /&gt;
-saving and loading of a game;&lt;br /&gt;
-melee fight, plus some weapons;&lt;br /&gt;
-some armours, which can be equipped by player and monsters;&lt;br /&gt;
-ranged fights (simplified), plus some ranged weapons;&lt;br /&gt;
-potions with immediate and prolonged effects (some);&lt;br /&gt;
-items with special powers (some);&lt;br /&gt;
-player and monsters can pick up, drop and use (some) items;&lt;br /&gt;
-monsters with special powers (some);&lt;br /&gt;
-slightly changed d20 system rules;&lt;br /&gt;
&lt;b&gt;Still waiting:&lt;/b&gt;&lt;br /&gt;
-improving the ranged fight;&lt;br /&gt;
-new monsters, items, powers;&lt;br /&gt;
-smarter monsters (or at least less stupid);&lt;br /&gt;
-experience points and level-ups;&lt;br /&gt;
-classes for the player;&lt;br /&gt;
-special abilities for player and monsters;&lt;br /&gt;
-new dungeons/bigger dungeon;&lt;br /&gt;
-last boss;&lt;br /&gt;
-magic system;&lt;br /&gt;
-traps;&lt;br /&gt;
-unidentified items;&lt;br /&gt;
-fix singular/plural;&lt;br /&gt;
-NPC?&lt;br /&gt;
And much more, starting from all the bugs I will surely have to squash. Put another way, as I said at the very beginning, I only put the basis for a game: now I must build over it, hoping that everything will be solid enough to hold.&lt;br /&gt;
Ah, graphics are obviously in ASCII: I’m quite the traditionalist, but I am also as artistic as a cod. It would be easy to add graphical tiles to the game and turn it into something more modern, but it’s not easy to make decent graphical tiles, at least for me. And, by the way, it’s not really ASCII, since I’m using Unicode characters, but never mind.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/9202887167686629859/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2015/01/scantanador-roguelike-in-fieri.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/9202887167686629859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/9202887167686629859'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2015/01/scantanador-roguelike-in-fieri.html' title='Scantanador - A roguelike &quot;in fieri&quot;'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-2167073791714391485</id><published>2014-09-29T13:24:00.000+02:00</published><updated>2014-09-29T13:24:16.124+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calibre"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="github"/><category scheme="http://www.blogger.com/atom/ns#" term="guida alle novità"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><title type='text'>Sigil 0.8.0, cosa cambia</title><content type='html'>


&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
&lt;b&gt;Sigil&lt;/b&gt;,
il programma per creare e modificare e-book in formato &lt;b&gt;EPUB&lt;/b&gt;, è
ancora vivo e, dopo quasi un anno di silenzio, finalmente ne abbiamo
una nuova versione, la &lt;b&gt;0.8.0&lt;/b&gt;, per l’appunto. Non che ci siano stati
grandi cambiamenti, almeno in superficie, ed è probabile che grandi
cambiamenti non ci saranno neppure in un futuro prossimo, dato il
ritmo con cui il suo sviluppo procede: al momento, Sigil è un
programma sviluppato e mantenuto, di fatto, da una sola persona, il
che non offre grandi prospettive di aggiornamenti rapidi. Ma vediamo
cosa sia cambiato.&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Prima
di tutto, è cambiato il sito da cui poter scaricare gratuitamente
Sigil. Le nuove versioni, per &lt;b&gt;Windows&lt;/b&gt;, &lt;b&gt;GNU-Linux&lt;/b&gt; e &lt;b&gt;Macintosh&lt;/b&gt;, sono
scaricabili da &lt;b&gt;GitHub&lt;/b&gt;, &lt;a href=&quot;https://github.com/user-none/Sigil/releases&quot; target=&quot;_blank&quot;&gt;ossia da questa pagina&lt;/a&gt;, invece
che dal vecchio sito di &lt;b&gt;Google Code&lt;/b&gt;. Non proprio un cambiamento
radicale, ma la scelta della versione giusta potrebbe risultare meno
chiara del passato, considerata la discutibile grafica della pagina.
Leggete con cura il testo biancastro, sullo sfondo verde dei
pulsanti, e dovreste poter reperire la versione che vi serve. Dopo
aver visto come procurarci il programma, passiamo alle novità nel
suo funzionamento. Che di fatto è una sola.&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Lasciano
da parte le correzioni di alcuni errori, presenti nella precedente
versione &lt;b&gt;0.7.4&lt;/b&gt;, la grande novità di &lt;b&gt;Sigil 0.8.0&lt;/b&gt; è la introduzione
di una infrastruttura, che supporta l’utilizzo di &lt;i&gt;plugin&lt;/i&gt; in questo
programma. Più o meno come quella che ha &lt;b&gt;Calibre&lt;/b&gt;, giusto per dare
una idea. In altri termini, è possibile programma re e aggiungere
nuove funzioni a Sigil, attraverso un sano fai-da-te informatico. Per
chiunque abbia le competenze necessarie, è ovvio.&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Al
momento, il supporto di plugin è ancora parecchio limitato, sia
perché di fatto è disponibile un solo linguaggio di programmazione,
per realizzare i plugin, sia perché i plugin stessi non esistono: se
li volete, dovete programmarveli voi, oppure modificare plugin già
esistenti per programmi analoghi. Piuttosto che niente, è pur sempre
meglio piuttosto.&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Nello
specifico, l’unico linguaggio di programmazione supportato, per
realizzare plugin, è il &lt;a href=&quot;https://www.python.org/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Python&lt;/b&gt;&lt;/a&gt;, sia nella versione &lt;b&gt;2&lt;/b&gt; che nella
versione &lt;b&gt;3&lt;/b&gt; del linguaggio. Una
scelta che mi entusiasma moltissimo, dato che trovo la programmazione
in Python piacevole come una colonscopia, ma questo è solo un parere
personale. In apparenza, molti altri apprezzano invece il linguaggio:
buon per loro.&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Gusti a parte, la scelta è motivata dal fatto che il
Python è un linguaggio già ampiamente usato per realizzare plugin
in altri programmi, per cui non dovrebbe essere troppo difficile
riciclare e modificare plugin già esistenti, adattandoli alle
necessità di Sigil. In particolare, pare che i plugin di Calibre
siano riciclabili in Sigil con poche modifiche, dato che la struttura
di base è la stessa per i due programmi. O almeno, così sostiene la
persona che si occupa dello sviluppo di Sigil e chi sono io per
contraddirlo?&lt;/div&gt;
&lt;div align=&quot;justify&quot; style=&quot;line-height: 100%; margin-bottom: 0cm;&quot;&gt;
Plugin
a parte, per il resto non ci sono cambiamenti nel funzionamento di
Sigil: tutto ciò che avevo detto per la precedente versione rimane
valido anche per questa. Anche la sua interfaccia non è cambiata, a
parte l’aggiunta di una nuova voce di menu: Plugin, per l’appunto,
e dovreste poter immaginare a cosa serva. Vedremo se, dopo questa
versione, altre ne arriveranno, con novità più consistenti e,
magari, miglioramenti più consistenti. Considerato il ritmo, non la
aspetterei prima della prossima estate, ma spero di esserne smentito.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/2167073791714391485/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2014/09/sigil-080-cosa-cambia.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2167073791714391485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2167073791714391485'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2014/09/sigil-080-cosa-cambia.html' title='Sigil 0.8.0, cosa cambia'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-5710921902890150095</id><published>2014-03-11T16:37:00.001+01:00</published><updated>2014-07-10T21:42:27.231+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="e-book"/><category scheme="http://www.blogger.com/atom/ns#" term="grafica"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><title type='text'>Guida al CSS per e-book</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Il &lt;b&gt;CSS&lt;/b&gt; è il principale linguaggio di programmazione, per realizzare la grafica di siti e applicazioni web, ma è anche la prima scelta quando si tratta di impaginare un ampio settore di formati e-book. Dopo aver parlato in più occasioni delle regole del CSS più comunemente utilizzate, per impaginare uno e-book, mi sono infine deciso a scrivere anche &lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss.php&quot; target=&quot;_blank&quot;&gt;una guida in merito&lt;/a&gt;, in cui raccolgo, riorganizzo ed estendo quanto già si poteva trovare nei singoli post. La si può considerare una presentazione di un sottoinsieme del CSS, ossia quello che trova spazio (o che ha senso applicare) in uno e-book: altre proprietà che non ho toccato sono di uso più comune in un sito web e, sebbene non impossibile, il loro utilizzo in un libro sarebbe quantomeno discutibile. In altri termini, se vi accorgete di avere spesso bisogno di proprietà più complesse, è probabile che il vostro progetto funzionerà meglio sotto forma di app, piuttosto che di e-book.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa è la lista degli argomenti trattati, capitolo per capitolo:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss0.php&quot; target=&quot;_blank&quot;&gt;0 - Presentazione&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss1.php&quot; target=&quot;_blank&quot;&gt;1 - Introduzione: CSS e HTML&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss2.php&quot; target=&quot;_blank&quot;&gt;2 - Il foglio di stile CSS&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss3.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;3 - Selezionare gli elementi&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss4.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;4 - Ereditarietà e stili a cascata&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss5.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;5 - Impostare i margini&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss6.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;6 - Formattare il paragrafo&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss7.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;7 - Formattare il testo&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss8.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;8 - Liste e tabelle&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se i titoli non sono sufficienti, ecco anche una brevissima presentazione di ogni capitolo e del relativo contenuto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss1.php&quot; target=&quot;_blank&quot;&gt;1 - Introduzione: CSS e HTML&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato a una presentazione generale del CSS e dello HTML, con uno excursus su come strutturare un capitolo di e-book e quali tag siano utilizzati più di frequente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss2.php&quot; target=&quot;_blank&quot;&gt;2 - Il foglio di stile CSS&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato al foglio di stile: la sua anatomia, la struttura di una regola, come assegnare un foglio di stile a una pagina e così via.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss3.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;3 - Selezionare gli elementi&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato ai selettori: come selezionare un tag, per poi modificarlo con una apposita regola CSS, ma anche come creare e selezionare una classe di stile, come funzionano i selettori discendenti e quali sono le pseudoclassi e gli pseudoelementi usati più di frequente in uno e-book.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss4.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;4 - Ereditarietà e stili a cascata&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato al funzionamento della ereditarietà nelle regole del CSS: come si tramandano le proprietà CSS da un tag all&#39;altro, ma anche come funziona la &quot;cascata&quot;, ossia il processo per cui una proprietà, assegnata a un tag, è valida anche per i tag che sono contenuti in quel primo tag.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss5.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;5 - Impostare i margini&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato alle regole più generali, per impaginare un capitolo: come impostare i margini tra i vari elementi di una pagina, come impostare il margine tra l&#39;inizio del contenuto e il bordo dello schermo, come racchiudere un elemento in una cornice, come decorare lo sfondo di un elemento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss6.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;6 - Formattare il paragrafo&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato alla impaginazione dei singoli paragrafi: come allineare il contenuto del paragrafo, come formattare soltanto la prima lettera o la prima riga di un paragrafo, impostare i rientri iniziali e così via.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss7.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;7 - Formattare il testo&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato al testo e ai caratteri: come impostare e incorporare font, come regolare le dimensioni del testo, lo spazio tra le linee, il colore del testo e altre decorazioni più o meno decorative.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss8.php&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;8 - Liste e tabelle&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Capitolo dedicato alla formattazione e alla impaginazione di liste e tabelle: contiene una descrizione dei tag utilizzati per realizzarle e delle proprietà che possono essere loro assegnate, specifiche per questi due tipi di struttura.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A titolo di esempio, i capitoli sono consultabili liberamente anche qui, cliccando sui link corrispondenti. Per tutto il resto, &lt;a href=&quot;http://www.adrianomarchetti.it/ebooks/guidacss.php&quot; target=&quot;_blank&quot;&gt;potete procurarvi la Guida&lt;/a&gt;: la sua versione in EPUB, peraltro, è liberamente vivisezionabile con &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/02/sigil-070-verso-lo-epub-3.html&quot; target=&quot;_blank&quot;&gt;Sigil&lt;/a&gt;&lt;/b&gt; (o anche solo con un qualsiasi programma per aprire cartelle compresse), così da studiarne in concreto la struttura, e può essere convertita facilmente in qualsiasi altro formato con &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2012/08/leggere-e-creare-ebook-con-calibre.html&quot; target=&quot;_blank&quot;&gt;Calibre&lt;/a&gt;&lt;/b&gt;, così da adattarsi al lettore di vostra preferenza, ma può anche essere modificata, se qualcosa non vi dovesse piacere. La versione per &lt;b&gt;Kindle&lt;/b&gt; è inevitabilmente meno malleabile, per i limiti insiti nel formato utilizzato dal Kindle. In entrambi i casi, a ogni modo, non sono presenti &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/08/cosa-sono-i-drm.html&quot; target=&quot;_blank&quot;&gt;DRM&lt;/a&gt;&lt;/b&gt; o accidenti simili.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/5710921902890150095/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2014/03/guida-al-css-per-e-book.html#comment-form' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/5710921902890150095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/5710921902890150095'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2014/03/guida-al-css-per-e-book.html' title='Guida al CSS per e-book'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-779172793161175599</id><published>2014-02-11T10:50:00.002+01:00</published><updated>2014-02-11T10:50:38.222+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="e-book"/><category scheme="http://www.blogger.com/atom/ns#" term="epub"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="impaginazione"/><category scheme="http://www.blogger.com/atom/ns#" term="modello"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><title type='text'>Un semplice modello di EPUB per romanzi</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Avevo già scritto, in passato, una guida su &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/04/creare-un-epub-da-zero-con-sigil.html&quot; target=&quot;_blank&quot;&gt;come realizzare un e-book utilizzando solo &lt;b&gt;Sigil&lt;/b&gt;&lt;/a&gt; e tanta buona volontà. Ricollegandomi in parte a quanto dicevo in quella occasione, e alla luce di diversi commenti ricevuti in vari articoli su EPUB e problemi di impaginazione, ho preparato un &lt;a href=&quot;http://www.mediafire.com/download/l4ph9jjp48jc2bc/modello.epub&quot; target=&quot;_blank&quot;&gt;semplice e basilare modello di EPUB&lt;/a&gt;, che può essere liberamente utilizzato sia come fonte di ispirazione, sia come scheletro per un vostro lavoro. Il modello mostra un modo molto spartano, in cui il contenuto di un e-book può essere diviso, fornendo anche un esempio di foglio di stile con alcune formattazioni di base, che si ritrovano spesso in romanzi e altri tipi di testo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come usarlo? Dipende da cosa ne volete fare. Potete aprirlo con Sigil e osservarne la struttura, alternando la &lt;b&gt;Vista Libro&lt;/b&gt; e la &lt;b&gt;Vista Codice&lt;/b&gt;, così da avere una idea sia del modo in cui il testo apparirà, sia di come sia composto il suo scheletro, oppure potete utilizzarlo come punto di partenza per il vostro lavoro, incollando il vostro testo all&#39;interno delle pagine, assegnando alle varie parti le classi &lt;b&gt;CSS&lt;/b&gt; più indicate, modificando gli attributi e i valori delle suddette classi CSS, e così via. Con un consiglio: se scegliete di copiare il testo da un documento &lt;b&gt;DOC&lt;/b&gt; o &lt;b&gt;DOCX&lt;/b&gt;, ossia da un documento scritto con &lt;b&gt;Word&lt;/b&gt;, non copiatelo direttamente nello EPUB, altrimenti porterà con sé tutte le sozzerie aggiunte da Word. Copiate il testo dal documento di Word, incollatelo in una pagina del &lt;b&gt;Blocco Note&lt;/b&gt;, copiatelo di nuovo dal Blocco Note e incollatelo nello EPUB: in questo modo il testo sarà filtrato a dovere e potrete ricostruirne l’impaginazione attraverso il CSS, senza dovervi preoccupare delle spiacevoli eredità lasciate da Word. Si perderanno anche corsivi e grassetti, è vero, e li dovrete aggiungere di nuovo con Sigil, ma il risultato finale sarà complessivamente migliore.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A ogni modo, guardiamo cosa ci sia in questo modello di EPUB.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se lo apriamo con Sigil, vedremo che le cartelle contenenti materiale sono solo due: la cartella &lt;b&gt;Text&lt;/b&gt; e la cartella &lt;b&gt;Styles&lt;/b&gt;. Nessuno vi vieta di utilizzare anche le altre cartelle, ma queste sono le uniche due &amp;nbsp;indispensabili, se vogliamo creare uno e-book: text è la cartella che contiene il testo del libro, come suggerisce il nome, e Styles è la cartella che contiene le regole della sua impaginazione. Immagini, font e altro possono essere aggiunti a piacimento, ma non li considero elementi basilari.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La cartella Text contiene cinque files, così disposti:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Cover.xhtml&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Titolo.xhtml&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Copyright.xhtml&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Testo.xhtml&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Biografia.xhtml&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Tutti questi files possono essere rinominati a piacimento: il nome attuale serve soltanto a fornire una indicazione dei rispettivi ruoli. Anche l’ordine con cui appaiono può essere modificato a piacimento, se quello attuale non è adatto o soddisfacente. Infine, ognuno di essi può essere rimosso, se lo e-book che stiamo preparando non possiederà quel componente; se invece lo e-book possiederà componenti extra come note e bibliografia (probabile), sarà sufficiente aggiungere un file html vuoto, usando l’apposita voce di Sigil, e trascinarlo in alto o in basso nella lista delle pagine, per posizionarlo dove lo vogliamo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Cover.xhtml&lt;/b&gt; è al momento una pagina bianca. Come suggerisce il nome, è qui che inseriremo l’immagine di copertina del nostro e-book, se abbiamo in programma di metterne una. Con Sigil, è sufficiente cliccare sul pulsante Inserisci File, selezionare la nostra immagine e dare un Ok. Opzionalmente, possiamo anche cliccare col tasto destro del mouse su questo file, nel Navigatore della colonna sinistra di Sigil, e scegliere dal menu contestuale &lt;b&gt;Aggiungi Semantica -&amp;gt; Copertina&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Titolo.xhtml&lt;/b&gt; è la pagina in cui possiamo inserire il titolo del nostro e-book, il nome del suo autore e, opzionalmente, il logo della casa editrice o cose simili. Se non abbiamo inserito una copertina, sarà questa pagina a farne le veci.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Copyright.xhtml&lt;/b&gt; è una pagina in cui inserire le note di copyright (come suggerisce il nome) e altri elementi simili. In questo caso, a titolo di esempio, io ho inserito un modello di nota di copyright, una nota sulla copertina (titolo della immagine di copertina, se esistente, ed eventuali credits) e, in coda, una tipica nota che accompagna molte opere di narrativa, cioè il tipico “ogni riferimento a cose, fatti o persone realmente esistenti” eccetera eccetera.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Testo.xhtml&lt;/b&gt; è la pagina che contiene il grosso del nostro e-book. Indicativamente, per semplificare sia la scrittura che la lettura &amp;nbsp;sui vari dispositivi,è utile spezzettarla in tante pagine quanti sono i capitoli del libro (avremo quindi Testo1, Testo2, Testo3, eccetera), ma non è obbligatorio: se a voi piace di più, potete usare un solo file monolitico, in cui travasare tutta la vostra opera. Nel foglio di stile CSS che accompagna lo e-book ho inserito alcune formattazioni di base: rientro per tutti i paragrafi a eccezione del primo, testo giustificato, primo paragrafo del capitolo con lettera ingrandita, eccetera. Uno sguardo alla Vista Codice vi dirà subito come utilizzare le classi CSS che ho inserito.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Biografia.xhtml&lt;/b&gt;, infine, è la pagina che conterrà la biografia dell’autore, una sezione su cui non mi pare ci sia molto altro da aggiungere.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come vedete, non ho inserito una pagina con l’indice dello e-book, perché di questo si occupa già Sigil: la tavola dei contenuti (ToC) può essere creata in un paio di secondi, purché vi siate ricordati di utilizzare correttamente i tag di intestazione (i tag da &amp;lt;h1&amp;gt; a &amp;lt;h6&amp;gt;, per intenderci) per i titoli delle varie parti del libro.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il foglio di stile CSS è Stile.css, contenuto nella cartella Styles: contiene alcune formattazioni di base, che hanno valore di semplici linee guida. Ho impostato ad esempi un colore per lo sfondo di tutte le pagine e un font di base per il testo, ho azzerato i margini per il tag &amp;lt;p&amp;gt;, così da rimuovere gli spazi vuoti tra un paragrafo e l’altro, ho inserito un certo spazio tra le varie sezioni, eccetera. Niente di particolare, insomma, ma può essere di aiuto come punto di partenza per qualsiasi tipo di impaginazione abbiate in mente. Per una discussione generale sull&#39;uso del CSS in uno e-book, vi rimando alla &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-introduzione.html&quot; target=&quot;_blank&quot;&gt;serie di articoli che avevo scritto mesi fa&lt;/a&gt;: prima o poi troverò forse sia il tempo che la voglia di scrivere qualcosa di più completo, come un manuale specifico per le regole di CSS usate normalmente in un e-book, ma qualsiasi manuale generico di CSS può andare bene, se volete sapere come fare qualcosa di particolare, non contenuto nei miei articoli.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In questo modello di EPUB sono utilizzati soltanto font di base, che dovrebbero essere presenti su ogni tipo di dispositivo; se preferite utilizzare font originali e/o insoliti, li dovrete incorporare nel vostro e-book, ma anche di questo &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/01/come-incorporare-font-in-uno-epub.html&quot; target=&quot;_blank&quot;&gt;ho già parlato in precedenza&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per finire, i metadati dello EPUB non sono stati inseriti, ma a questo dovrete eventualmente provvedere voi (premete F8 e si aprirà la finestra dei metadati). Il nome dell’autore, il titolo del libro e la lingua in cui è stato scritto sono gli unici metadati obbligatori, se volete superare il test di convalida, ma potete aggiungere qualsiasi altro metadato vogliate (codice ISBN, editore, data di pubblicazione, eccetera).&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/779172793161175599/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2014/02/un-semplice-modello-di-epub-per-romanzi.html#comment-form' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/779172793161175599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/779172793161175599'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2014/02/un-semplice-modello-di-epub-per-romanzi.html' title='Un semplice modello di EPUB per romanzi'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-1204018062313526647</id><published>2013-09-08T13:06:00.001+02:00</published><updated>2013-09-08T13:06:17.461+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="animazioni"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="grafica"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Realizzare semplici animazioni in CSS</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Già in precedenza avevo dedicato &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-introduzione.html&quot;&gt;una serie di post al CSS&lt;/a&gt; e al suo utilizzo, per curare la impaginazione e in generale la grafica di uno &lt;b&gt;EPUB&lt;/b&gt;. Tornerò oggi nei paraggi, parlando di una delle principali novità introdotte col cosiddetto &lt;b&gt;CSS3&lt;/b&gt; (etichetta di comodo, sotto cui sono raccolte svariate cose), ossia le animazioni. Dubito che potranno essere di qualche utilità, per realizzare uno e-book (o almeno io lo spero, dato che un libro con immagini animate, che si spostano qui e là nella pagina, non è proprio di mio gusto), ma può comunque essere vantaggioso tenere in considerazione questa possibilità.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quando si pensa ad animazioni più o meno belle e sensate, in una pagina web, di solito il primo strumento a cui le si collega è il &lt;b&gt;JavaScript&lt;/b&gt;. Niente di strano: dopotutto, il JavaScript è nato proprio per dare vita ai siti, che agli albori del web erano alquanto statici, e la manipolazione degli elementi di una pagina è tuttora uno dei suoi principali usi, almeno a livello di web design. La possibilità di creare e gestire animazioni utilizzando il &lt;b&gt;CSS&lt;/b&gt;, però, ci offre in alcuni casi una valida alternativa, soprattutto in termini di consumo di risorse e di velocità: se tutto ciò che dobbiamo fare è muovere una immagine o modificarne la visibilità, il CSS è la soluzione migliore.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le animazioni, dunque. Ciò che ci è offerto da questa recente funzione del CSS è la possibilità di animare il passaggio da un insieme di proprietà a un altro, una sola volta o ripetutamente, usando animazioni lineari o con effetti particolari. Ad esempio, se fissiamo come punto di inizio un valore di &lt;b&gt;opacity: 0&lt;/b&gt; e come punto di arrivo un valore di &lt;b&gt;opacity: 1&lt;/b&gt;, l&#39;elemento a cui è assegnata questa animazione diventerà visibile a poco a poco, nel tempo di durata della animazione. Se fissiamo invece due diversi valori di &lt;b&gt;color&lt;/b&gt;, uno come inizio e uno come fine, sarà il colore dell&#39;elemento a cambiare a poco a poco. In breve, possiamo animare il passaggio da (più o meno) qualsiasi proprietà del CSS a qualunque altra proprietà, per gli elementi che scegliamo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I passaggi necessari per utilizzare una animazione sono due: creare l&#39;animazione e assegnarla a uno o più elementi della pagina. La prima cosa da fare, dunque, è definire la regola nel nostro foglio di stile CSS; la regola per una animazione è leggermente diversa da una normale regola del CSS, ma non troppo. Questa è la struttura di base.&lt;/div&gt;
&lt;code&gt;&lt;span style=&quot;color: red;&quot;&gt;@keyframes&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;nome&lt;/span&gt; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: lime;&quot;&gt;from&lt;/span&gt; {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: lime;&quot;&gt;to&lt;/span&gt; {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La parte più insolita è probabilmente costituita dallo &lt;b&gt;@&lt;/b&gt; iniziale, che contraddistingue questo e altri tipi di nuove regole, ma non è niente per cui perdere il sonno: possiamo considerare il blocco &lt;b&gt;@keyframes&lt;/b&gt; come una formula, per introdurre la sequenza di operazioni che compongono la nostra animazione, e vivere serenamente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ciò che ho indicato come &quot;nome&quot; può essere un nome qualunque, che caratterizzerà la nostra animazione: scegliete quello che preferite, purché ogni animazione abbia un nome diverso dalle altre. Il nome ci servirà più avanti, per assegnare questa animazione agli elementi che animeremo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
All&#39;interno della prima coppia di parentesi graffe dovremo elencare le varie tappe della nostra animazione; come è ovvio, le tappe dovranno essere almeno due, ossia un inizio e una fine. Dopo la parola &lt;b&gt;from&lt;/b&gt;, elenchiamo le proprietà di partenza: il colore che un elemento possiede all&#39;inizio della nostra animazione, oppure le sue dimensioni iniziali, o qualsiasi altra cosa cambierà nel corso del processo. Dopo la parola &lt;b&gt;to&lt;/b&gt;, invece, elenchiamo le proprietà che l&#39;elemento possiederà alla fine del processo. Una volta fissato inizio e fine, la transizione sarà gestita automaticamente dalla animazione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se la nostra animazione non dovrà passare direttamente dallo stato iniziale a quello finale, ma vogliamo che attraversi particolari fasi intermedie, le possiamo specificare utilizzando un valore in percentuale. Ad esempio,&lt;/div&gt;
&lt;code&gt;
from {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; color: red;&lt;br /&gt;
}&lt;br /&gt;
50% {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; color: white;&lt;br /&gt;
}&lt;br /&gt;
to {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; color: blue;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
descrive una animazione che modifica il colore di un elemento: si parte dal rosso, si arriva al bianco a metà dell&#39;animazione (ossia al 50%) e si conclude con un colore blu. Se vogliamo, poi, possiamo esprimere in percentuale anche from e to, invece di usare le parole: non farà alcuna differenza. Se ci piacciono particolarmente i numeri, dunque, potremo scrivere 0% al posto di &lt;i&gt;from&lt;/i&gt; e 100% al posto di &lt;i&gt;to&lt;/i&gt;, il che renderà forse più chiare le fasi intermedie della nostra animazione. Per ogni tappa, come è ovvio, possiamo inserire tutte le proprietà CSS che vogliamo, in base a ciò che è necessario per la nostra animazione: se vogliamo modificare contemporaneamente la posizione, il colore e la dimensione di un elemento, basterà elencare tutte le rispettive proprietà CSS dentro le varie tappe, una dopo l&#39;altra. Ad esempio,&lt;/div&gt;
&lt;code&gt;from {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; width: 200px;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; background-color: red;&lt;br /&gt;
}&lt;br /&gt;
to {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; width: 400px;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; background-color: blue;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
porterà il nostro elemento da una larghezza di 200 pixel a una larghezza di 400 pixel, modificando nel frattempo il suo colore di sfondo da rosso a blu.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una volta costruita la regola, dovremo assegnarla a un elemento. Operazione molto semplice: basta aggiungere alcune proprietà alla normale regola CSS, che abbiamo creato per quell&#39;elemento. Le proprietà obbligatorie sono due: &lt;b&gt;animation-name&lt;/b&gt;, che avrà come valore il nome della nostra animazione, e &lt;b&gt;animation-duration&lt;/b&gt;, che avrà come valore la durata dell&#39;animazione. Se ad esempio vogliamo applicare agli elementi di classe &lt;i&gt;.invisibili&lt;/i&gt; una animazione di nome &lt;i&gt;fantasma&lt;/i&gt;, che avrà una durata di 3 secondi, scriveremo&lt;/div&gt;
&lt;code&gt;.invisibili {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; animation-name: fantasma;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; animation-duration: 3s;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questo è il minimo indispensabile. Ci sono poi altre proprietà, che ci permettono un maggiore controllo sulla nostra animazione, e che probabilmente vorremo usare, ma le uniche strettamente necessarie sono il nome e la durata. Vediamo rapidamente le altre proprietà.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;animation-timing-function&lt;/b&gt; ci permette di controllare il ritmo con cui la nostra animazione è eseguita. Se le assegniamo un valore &lt;b&gt;linear&lt;/b&gt;, il ritmo sarà regolare dall&#39;inizio alla fine; se assegniamo un valore &lt;b&gt;ease&lt;/b&gt;, la nostra animazione partirà lentamente, si velocizzerà al centro e rallenterà verso la fine. Esistono diversi valori che possiamo assegnare ed è meglio testarli sul campo, per decidere il più adatto alle nostre esigenze.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;animation-delay&lt;/b&gt; ci permette di eseguire la nostra animazione con un certo ritardo, espresso in secondi: con un valore di 2s, ad esempio, l&#39;animazione partirà dopo due secondi, invece di partire subito.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;animation-iteration-count&lt;/b&gt; ci permette di stabilire quante volte dovrà essere ripetuta la nostra animazione (se la vogliamo ripetere): basta assegnare come valore il numero di ripetizioni da eseguire, oppure la parola &lt;b&gt;infinite&lt;/b&gt;, se vogliamo eseguirla ininterrottamente, per tutto il tempo in cui la pagina è aperta (attenzione: può diventare molto fastidioso per i visitatori).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;animation-direction&lt;/b&gt; può essere usata per modificare la direzione in cui sarà eseguita la nostra animazione: assegnandole il valore &lt;b&gt;alternate&lt;/b&gt;, l&#39;animazione sarà eseguita alternatamente da from a to e da to a from, se abbiamo scelto di ripetere la nostra animazione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;animation-fill-mode&lt;/b&gt;, infine, ci permette di controllare l&#39;aspetto finale del nostro elemento: se le assegniamo il valore &lt;b&gt;forward&lt;/b&gt;, l&#39;elemento manterrà l&#39;aspetto che possiede alla fine della nostra animazione; in caso contrario, a fine animazione tornerà al suo aspetto iniziale.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se non abbiamo voglia di scrivere una sfilza di proprietà extra, possiamo usare la formula abbreviata, proprio come accade per le proprietà &lt;b&gt;font&lt;/b&gt;, &lt;b&gt;margin&lt;/b&gt;, &lt;b&gt;padding&lt;/b&gt; e altre. In questo caso, useremo la proprietà &lt;b&gt;animation&lt;/b&gt;, seguita dalla lista di tutti i valori. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;animation: prova 3s linear 4 alternate 2s forward;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
è una comoda abbreviazione per questa sfilza di proprietà:&lt;/div&gt;
&lt;code&gt;
animation-name: prova;&lt;br /&gt;
animation-duration: 3s;&lt;br /&gt;
animation-timing-function: linear;&lt;br /&gt;
animation-iteration-count: 4;&lt;br /&gt;
animation-direction: alternate;&lt;br /&gt;
animation-delay: 2s;&lt;br /&gt;
animation-fill-mode: forward;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ovviamente non è necessario utilizzare tutte le proprietà, nella forma abbreviate, ma è utile rispettare questo ordine: nome, durata, timing, numero di ripetizioni, direzione, ritardo, fill mode.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Siccome poi questa funzione CSS non è ancora standardizzata su tutti i browser, è molto probabile che vi ritroverete costretti a utilizzare i vari prefissi, per alcuni o per tutti i browser: sperimentate prima le animazioni nella forma senza prefissi, come abbiamo visto sopra e poi, se necessario, aggiungete via via le alternative ci prefissi: &lt;b&gt;-webkit-&lt;/b&gt; per Chrome e Safari, &lt;b&gt;-moz-&lt;/b&gt; per Firefox, &lt;b&gt;-o-&lt;/b&gt; per Opera. Con Internet Explorer, le animazioni funzionano soltanto dalla versione 10 in poi, ma almeno non richiedono prefissi. Lo so, è un lavoraccio, ma per adesso è necessario.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/1204018062313526647/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/09/realizzare-semplici-animazioni-in-css.html#comment-form' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/1204018062313526647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/1204018062313526647'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/09/realizzare-semplici-animazioni-in-css.html' title='Realizzare semplici animazioni in CSS'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-8104559414083870016</id><published>2013-07-03T09:02:00.001+02:00</published><updated>2013-07-03T09:02:29.714+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="console"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="elements"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="html"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="modificare pagina"/><category scheme="http://www.blogger.com/atom/ns#" term="strumenti sviluppatori"/><title type='text'>Gli strumenti per sviluppatori di Google Chrome</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Tra gli strumenti disponibili nel menu di &lt;b&gt;Google Chrome&lt;/b&gt;, la voce &lt;b&gt;Strumenti per sviluppatori&lt;/b&gt; è probabilmente la più importante e utile, almeno per chiunque sia interessato anche al “dietro le quinte” di una pagina. Come il nome stesso suggerisce, questa voce raccoglie una serie di strumenti, pensati principalmente per chi si occupa di produrre pagine o applicazioni web, ma in linea generale possono essere utili e interessanti anche per chi non si sognerebbe mai di diventare uno sviluppatore, ma vuole solo saperne un po’ di più e vedere come funzionano le cose.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Gli strumenti disponibili sono otto e descriverli tutti quanti in un colpo solo occuperebbe troppo spazio: per semplificare il mio lavoro, dunque, li dividerò arbitrariamente e li descriverò un poco alla volta. Partirò oggi dalle due schede che, probabilmente, saranno usate più spesso: &lt;b&gt;Elements&lt;/b&gt; e &lt;b&gt;Console&lt;/b&gt;, ossia la prima e l’ultima nell&#39;ordine in cui Google Chrome ce le offre.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiihB53JCb6IIQcGt_PaPC9mmLTX_qwWqmHQkLSk27EyRS95Xkwpi9-QvOJ7WZcMHRe2cyKrALF4_mKl2cCCUEXSsa5dRG34e_4x7cdNh5OkcmkgMbACDdpSJuAmuzh8uC6dihy8N0nBH8/s1365/Chrome+a.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;129&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiihB53JCb6IIQcGt_PaPC9mmLTX_qwWqmHQkLSk27EyRS95Xkwpi9-QvOJ7WZcMHRe2cyKrALF4_mKl2cCCUEXSsa5dRG34e_4x7cdNh5OkcmkgMbACDdpSJuAmuzh8uC6dihy8N0nBH8/s320/Chrome+a.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Elements&lt;/b&gt; è la scheda in cui possiamo esaminare il contenuto effettivo della pagina che abbiamo davanti: più precisamente, ne possiamo esaminare il contenuto finale. Nel menu di Chrome esiste già una funzione “&lt;b&gt;Visualizza sorgente&lt;/b&gt;”, che ci mostra il codice di una pagina: la scheda Elements è simile, ma non identica. Visualizzando il codice sorgente, infatti, noi vediamo il contenuto del file &lt;b&gt;HTML&lt;/b&gt; originario, senza le modifiche che possono essere state effettuate utilizzando il JavaScript; la scheda Elements, invece, ci mostra il codice della pagina finale, dopo che tutte le modifiche tramite JavaScript sono state applicate. Inoltre, sempre da qui possiamo anche esaminare il &lt;b&gt;CSS&lt;/b&gt; per ogni componente della pagina, nella colonna di destra della scheda.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una buona norma della programmazione web prescrive che il contenuto di una pagina sia sempre e comunque accessibile, anche per chi ha disabilitato il JavaScript: se questa norma fosse sempre rispettata, la visualizzazione del codice sorgente dovrebbe mostrarci già tutto il testo, tutte le immagini e tutti gli altri elementi contenuti in una pagina. Come la maggior parte delle buone norme, però, non sempre è rispettata alla lettera; di conseguenza, una parte più o meno cospicua del contenuto, in molti siti, è aggiunta successivamente col JavaScript. Sempre attraverso il JavaScript, parti della pagina possono essere nascoste o mostrate, modificando il CSS corrispondente, col risultato che la pagina davanti a noi è spesso molto diversa, rispetto al contenuto descritto nel file HTML iniziale.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Elements ci mostra dunque un file HTML virtuale, che descrive la pagina così come ci appare sullo schermo in questo momento. Se una immagine è stata aggiunta col JavaScript, Elements ce la mostrerà nel punto in cui è stata aggiunta, con tutti i tag HTML e tutte le regole di stile che le sono state assegnate, proprio come se avesse fatto parte fin dall’inizio della pagina. Se una parte della pagina è stata invece nascosta, in seguito a una qualche nostra azione, non la vedremo apparire in questa sezione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come è facile da intuire, Elements è molto utile per esaminare il contenuto della pagina, sia mentre noi ci stiamo lavorando, sia quando siamo curiosi di studiare il lavoro altrui, ma questa è solo una parte delle sue funzioni. Oltre a guardare, infatti, in questa scheda possiamo anche modificare il contenuto di una pagina, in modo molto semplice. O almeno, molto semplice se sappiamo orientarci tra i nodi di una pagina HTML e se conosciamo HTML e CSS: dopotutto, questi si chiamano “strumenti per sviluppatori” e la conoscenza dei linguaggi per la programmazione web è data per scontata, essendo rivolti agli sviluppatori di pagine e siti. Non ci piace il colore dello sfondo, oppure il colore dei caratteri? Da qui lo possiamo modificare. Clicchiamo prima col tasto sinistro del mouse sul nodo da modificare e poi, nella colonna di sinistra, cerchiamo la proprietà CSS che ci interessa e clicchiamola col tasto sinistro: in questo modo, la potremo modificare a nostro piacimento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se invece clicchiamo su un elemento HTML col tasto destro del mouse, si aprirà un menu contestuale, in cui ci saranno offerte altre possibilità di intervento: ad esempio, potremo modificare lo HTML, selezionando la voce “&lt;b&gt;Edit as HTML&lt;/b&gt;”, oppure rimuovere quel particolare nodo dalla pagina, selezionando “&lt;b&gt;Delete node&lt;/b&gt;” (se un banner vi ha rotto le scatole, potrete cancellarlo da qui). Eliminare un nodo, ad esempio, può essere un sistema rapido, per levarsi dai piedi quei fastidiosi avvisi, che impediscono di leggere una pagina fino a che non avete cliccato “Mi piace” su una pagina Facebook, oppure fino a che non vi siete registrati e cose simili.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ovviamente, ogni modifica apportata alla pagina varrà soltanto per noi: ciò che modifichiamo è la copia locale, caricata nel nostro browser, e non la pagina originale, contenuta nel sito. Nonostante questo, è pur sempre uno strumento valido, per adattare le pagine ai nostri gusti o per rapidi interventi di correzione, oltre alle sue normali funzioni di studio ed esame della pagina.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Console&lt;/b&gt; è la scheda di chi ama smanettare col &lt;b&gt;JavaScript&lt;/b&gt;. Può essere utilizzata per eseguire brevi porzioni di codice nella pagina (sempre sul lato cliente, sia chiaro), ma è molto più importante il suo ruolo di semplice ambiente di sviluppo per JavaScript. Di fatto, la console è uno spartano (ma poi neanche tanto spartano, nel caso di Google Chrome) &lt;b&gt;REPL&lt;/b&gt;, ossia uno spazio in cui possiamo dialogare col JavaScript, direttamente nel nostro browser: scriviamo un comando o una funzione, premiamo Invio, e la console ci restituirà subito il risultato del comando o della funzione. Se stiamo studiando o imparando il JavaScript, possiamo trascorrere ore in perfetta letizia, dialogando col nostro linguaggio di programmazione; se invece stiamo lavorando alla realizzazione di una pagina e qualcosa va storto, è qui che ci saranno segnalati gli errori relativi al JavaScript.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Chiunque abbia mai utilizzato un REPL in vita propria, magari trastullandosi col &lt;b&gt;Lisp&lt;/b&gt; o altri linguaggi di programmazione affini (anche &lt;b&gt;Scala&lt;/b&gt; va bene), non dovrebbe avere problemi con la Console. Un REPL è un Read-Eval-Print-Loop, ossia un ciclo continuo di lettura, esecuzione e stampa del codice: noi scriviamo un comando, una funzione o qualsiasi altra cosa, premiamo &lt;b&gt;Invio&lt;/b&gt;, e il comando (o funzione, o altro) sarà eseguito e poi scritto sullo schermo, dopodiché la console sarà pronta per il comando successivo. Ovviamente, comandi e funzioni dovranno essere in JavaScript, per poter funzionare, ma nel peggiore dei casi potete sempre utilizzarla come calcolatrice alternativa.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come dicevo all’inizio, la console può essere utilizzata fondamentalmente in due modi: come ambiente di sviluppo per il JavaScript, oppure per alterare il contenuto della pagina che abbiamo davanti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come ambiente di sviluppo, è spartano ma funzionale, nonché molto utile se stiamo imparando (o se vogliamo imparare) la programmazione in JavaScript. Possiamo usarla per scrivere ed eseguire funzioni, ad esempio, ma con un’avvertenza: se vogliamo andare a capo, non dobbiamo premere &lt;b&gt;Invio&lt;/b&gt;, ma &lt;b&gt;Shift+Invio&lt;/b&gt;. Se premiamo &lt;b&gt;Invio&lt;/b&gt; da solo, il codice sarà eseguito e ci ritroveremo con un messaggio di errore, se la nostra funzione era a metà. Dettagli a parte, ha il vantaggio considerevole di suggerirci i nomi di variabili, metodi, oggetti e funzioni a nostra disposizione: se cominciamo a scrivere qualcosa, la console ci mostrerà tutti i modi validi in cui possiamo concludere quella parola, proprio come accade in ambienti di sviluppo più raffinati. Ad esempio,&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUGwsieEVRXrMMKZ2OCVtcnFOEuueSxG3ulcMraCM71UIT5hQcJDJUXMeMDPytT4HR1j2E_hh2-PaFG2Vf03NORGXic01tfTmwUP_Beek4WndpDbpKn1_f_kj2zcM8d-NtoicPliZvx8/s1365/Chrome+b.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;129&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUGwsieEVRXrMMKZ2OCVtcnFOEuueSxG3ulcMraCM71UIT5hQcJDJUXMeMDPytT4HR1j2E_hh2-PaFG2Vf03NORGXic01tfTmwUP_Beek4WndpDbpKn1_f_kj2zcM8d-NtoicPliZvx8/s320/Chrome+b.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La console ricorda anche tutto ciò che abbiamo già fatto, durante la nostra sessione di lavoro: se abbiamo creato nuove variabili globali, oppure nuove funzioni, o nuovi oggetti, anche i loro nomi appariranno tra i suggerimenti, accanto a funzioni, metodi e oggetti già inclusi nel motore JavaScript di Google Chrome. Di fatto, la console offre tutto ciò che è strettamente indispensabile, per programmare in JavaScript.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se invece vogliamo utilizzarla per alterare la pagina corrente, il principio di base è lo stesso, ma cambia il contesto: dalla console avremo accesso a tutto il JavaScript della pagina su cui l’abbiamo aperta, incluse eventuali altre librerie importate (&lt;b&gt;jQuery&lt;/b&gt;, ad esempio, che è spesso presente). Se stiamo allegramente sprecando tempo con un gioco in JavaScript e vogliamo barare, possiamo farlo da qui, modificando ad esempio il numero assegnato alla variabile che contiene il punteggio. Ogni modifica avrà effetto a livello locale, ossia nella pagina aperta sul nostro browser: se dunque abbiamo usato la console, per truccare il nostro punteggio in un gioco, il nostro punteggio truccato non avrò effetto su una eventuale classifica dei migliori punteggi, ospitata nel sito del videogioco. O almeno, non dovrebbe avere effetto, a meno che il gioco non sia stato progettato molto male e abbia un livello di sicurezza pari a zero, ma questo è un altro paio di maniche.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/8104559414083870016/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/07/gli-strumenti-per-sviluppatori-di.html#comment-form' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8104559414083870016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8104559414083870016'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/07/gli-strumenti-per-sviluppatori-di.html' title='Gli strumenti per sviluppatori di Google Chrome'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiihB53JCb6IIQcGt_PaPC9mmLTX_qwWqmHQkLSk27EyRS95Xkwpi9-QvOJ7WZcMHRe2cyKrALF4_mKl2cCCUEXSsa5dRG34e_4x7cdNh5OkcmkgMbACDdpSJuAmuzh8uC6dihy8N0nBH8/s72-c/Chrome+a.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-8019973447800223155</id><published>2013-06-27T15:59:00.001+02:00</published><updated>2013-06-27T15:59:21.158+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blender"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="grafica 3D"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="libreria"/><category scheme="http://www.blogger.com/atom/ns#" term="mesh"/><category scheme="http://www.blogger.com/atom/ns#" term="pong"/><category scheme="http://www.blogger.com/atom/ns#" term="presentazione"/><category scheme="http://www.blogger.com/atom/ns#" term="webgl"/><title type='text'>Three.js – Una libreria per un WebGL semplificato</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;WebGL&lt;/b&gt; è una nuova tecnologia, incorporata nei browser (o almeno in buona parte dei browser), che permette di creare e disegnare immagini e animazioni 3D su una pagina web, senza bisogno di utilizzare plugin o programmi esterni, come il Flash, ma basandosi soltanto sul buon vecchio &lt;b&gt;JavaScript&lt;/b&gt;. Questo per dirla in modo molto semplice, sorvolando sulla storia e tutto il resto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per visualizzare una grafica prodotta con WebGL, o per utilizzare un videogioco basato su WebGL, è sufficiente avere un browser che supporti questa tecnologia: in pratica, più o meno tutti i browser, a parte &lt;b&gt;Internet Explorer&lt;/b&gt;, almeno per il momento. per utilizzare WebGL in modo attivo, ossia per programmare grafiche o videogiochi in 3D, gli strumenti necessari sono sempre un browser che lo supporti, una discreta conoscenza del JavaScript e una buona conoscenza di algebra lineare, se siete così pazzi o determinati, da voler programmare a mano le matrici. Se non siete così pazzi o così determinati, non preoccupatevi: praticamente nessuno lo fa, se non in fase di apprendimento. Di solito, la parte più algebricamente hardcore è affidata a librerie JavaScript, che si occupano per noi dei calcoli più complicati, lasciandoci il piacere e il privilegio di lavorare sul risultato dei calcoli. La più usata di queste librerie è &lt;b&gt;&lt;a href=&quot;http://threejs.org/&quot;&gt;Three.js&lt;/a&gt;&lt;/b&gt;, di cui parlerò oggi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se ricordate &lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/06/esperimenti-di-chrome-cube-slam-e-webrtc.html&quot;&gt;la versione 3D di &lt;b&gt;Pong&lt;/b&gt;&lt;/a&gt;, presentata come uno degli ultimi esperimenti su Chrome, la parte grafica è stata realizzata proprio con la libreria Three.js, come accennavo nel relativo articolo: questo per dare un esempio concreto del suo utilizzo. Niente di strano: si possono scrivere a mano le matrici e ci si può occupare personalmente di tutti i calcoli necessari, ma questo va bene solo in fase di apprendimento, quando è necessario capire i meccanismi della grafica 3D. Quando però si passa dall&#39;apprendimento alla produzione, librerie ausiliarie come Three.js sono fondamentali, per ridurre il lavoro e il tempo da spendere sul progetto. In linea generale, usare Three.js per lavorare col WebGL è come usare &lt;b&gt;jQuery&lt;/b&gt; per lavorare col JavaScript: entrambe le librerie costituiscono un modo per interagire a un livello più alto di astrazione con la materia grezza che si trova sotto di esse. Esattamente come jQuery, poi, Three.js non è l’unica libreria esistente, per lavorare col WebGL, ma solo una delle più diffuse e più usate.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le caratteristiche di Three.js, dunque. Prima e principale caratteristica, comune anche alle altre librerie della stessa famiglia, è di occuparsi per conto nostro della matematica necessaria: significa che ci risparmieremo parecchie linee di codice, ad alto tasso di errori e basso tasso di divertimento (soprattutto se non amiamo la matematica). Sempre per conto nostro, Three.js si occupa anche della fase di &lt;i&gt;rendering&lt;/i&gt; per ogni oggetto presente in scena: noi dovremo soltanto indicarle cosa fare e la libreria saprà come farlo, senza bisogno di nostre istruzioni. Inoltre, al puro WebGL unisce anche altri elementi, che spesso lo accompagnano ma che non sono parte diretta di quella tecnologia: ad esempio, il supporto per il mouse, così da poter interagire direttamente con la scena, spostando e trascinando oggetti e così via. Infine, ma non meno importante, Three.js permette facilmente di introdurre una soluzione alternativa, anche per quei browser che non supportano il WebGL: se non è presente il supporto per il 3D, possiamo sostituirlo col normale canvas 2D. Come è ovvio, il risultato estetico non sarà identico, ma la grafica o il videogioco funzioneranno ugualmente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Three.js, poi, è orientata verso una programmazione a oggetti, il che può essere sia un vantaggio, sia uno svantaggio, a seconda dei punti di vista e delle abitudini di lavoro col JavaScript: se decidete di usare questa libreria, preparatevi a dover ricorrere spesso a &lt;b&gt;new&lt;/b&gt;, per creare nuovi oggetti, che possono essere figure geometriche, luci, videocamere, la scena che contiene tutta la grafica e così via. Così ha deciso il suo autore.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una caratteristica curiosa di Three.js, poi, è la presenza di un grande numero di esempi, abbinata a una documentazione alquanto scarna, sul piano dei manuali: quando scaricate la libreria, non aspettatevi niente di più elaborato di un basilare “&lt;i&gt;Hello World&lt;/i&gt;”, incluso nel pacchetto. È possibile però trovare altrove guide e tutorial, principalmente in inglese, e anche accenni o capitoli dedicati a questa libreria, nei testi generali sul WebGL. Chi preferisce imparare smanettando col codice, però, avrà appunto oltre cento esempi con cui divertirsi, vivisezionandoli e sperimentando varie modifiche, per capire con la pratica il loro funzionamento. Tra parentesi, molti di questi esempi richiedono la presenza di un server, per funzionare: se ne avete uno installato sul vostro computer, apriteli da lì e ne guadagneranno anche le prestazioni.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I passaggi fondamentali, per creare e popolare una scena, non sono poi molto diversi da quelli che avevamo già visto, parlando di &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2012/10/blender-per-realizzare-grafiche-3d.html&quot;&gt;Blender&lt;/a&gt;&lt;/b&gt;: siamo sempre nel campo della grafica 3D, dopotutto, e a cambiare sono solo il linguaggio e il tipo di ambiente. Per un qualsiasi tipo di progetto con Three.js, avremo bisogno di inserire un &lt;b&gt;renderer&lt;/b&gt;, una camera e una scena, al cui interno potremo poi sistemare oggetti (o &lt;i&gt;mesh&lt;/i&gt;, per sembrare più professionali), luci e quant&#39;altro. In altri termini, gli oggetti fondamentali che dovremo creare con &lt;b&gt;new&lt;/b&gt;, nella funzione iniziale, sono:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;THREE.Renderer&lt;/b&gt; - un oggetto che si occupa di disegnare la scena sullo schermo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;THREE.Scene&lt;/b&gt; - il contenitore di tutto ciò che apparirà sullo schermo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;THREE.Camera&lt;/b&gt; - la videocamera virtuale, attraverso cui vedremo la scena.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A questi tre oggetti, indispensabili, potremo poi aggiungerne altri, per avere anche qualcosa da vedere sullo schermo. Questi oggetti supplementari sono&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;THREE.Light&lt;/b&gt; - una sorgente di luce, di un colore a nostra scelta, indispensabile se vogliamo che sia resa la illusione di tridimensionalità degli oggetti (senza luce, appariranno bidimensionali).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;THREE.Object3D&lt;/b&gt; - la classe base degli oggetti raffigurabili: alcuni tipi sono già definiti e pronti all&#39;uso, altri li possiamo creare noi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La tipologia base di oggetti, come già abbiamo visto con Blender, è &lt;b&gt;Mesh&lt;/b&gt; e a ogni mesh dovremo assegnare due altri oggetti, nel momento della creazione: &lt;b&gt;THREE.Geometry&lt;/b&gt;, che contiene la forma dell’oggetto (cubo, sfera, prisma eccetera) e &lt;b&gt;THREE.Material&lt;/b&gt;, che contiene informazioni sulle qualità dell’oggetto, come il colore. In un qualsiasi progetto con Three.js, dunque, la funzione iniziale creerà un renderer, una scena, una camera, aggiungerà alla scena i vari oggetti presenti e la camera, infine passerà la mano al loop, che continuerà a ridisegnare lo schermo,a &amp;nbsp;intervalli regolari. Un esempio di come fare tutto questo lo troviamo già nel pacchetto della libreria, sotto forma di breve tutorial nella cartella &quot;&lt;b&gt;docs&lt;/b&gt;&quot;; per il resto, potremo divertirci a squartare la caterva di esempi disponibili.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/8019973447800223155/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/threejs-una-libreria-per-un-webgl.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8019973447800223155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/8019973447800223155'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/threejs-una-libreria-per-un-webgl.html' title='Three.js – Una libreria per un WebGL semplificato'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-7313881039375413123</id><published>2013-06-20T09:13:00.001+02:00</published><updated>2013-06-27T15:59:56.246+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="cube slam"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="grafica 3D"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="p2p"/><category scheme="http://www.blogger.com/atom/ns#" term="three.js"/><category scheme="http://www.blogger.com/atom/ns#" term="webrtc"/><title type='text'>Esperimenti di Chrome: Cube Slam e WebRTC</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Una quarantina di anni fa, quando i computer vivevano la loro età del rame e i videogiochi erano ancora in piena età della pietra, compariva sulla scena &lt;b&gt;Pong&lt;/b&gt;, uno dei primi esemplari di gioco. Pong aveva una struttura molto semplice: due lineette verticali, una a destra e una a sinistra, si rilanciavano a vicenda un quadratino, potendosi muovere solo verso l’alto o verso il basso. Con una certa dose di fantasia, era una simulazione di ping-pong.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Curiosamente, proprio questo videogioco “preistorico” è stato scelto da Google, per essere utilizzato come cavia con cui testare e mostrare una nuova tecnologia per la comunicazione web: ne è nato così &lt;b&gt;&lt;a href=&quot;https://www.cubeslam.com/&quot;&gt;Cube Slam&lt;/a&gt;&lt;/b&gt;, uno degli ultimi esemplari appartenenti alla categoria dei &lt;b&gt;&lt;a href=&quot;http://www.chromeexperiments.com/&quot;&gt;Chrome Experiments&lt;/a&gt;&lt;/b&gt;, ossia applicazioni web sviluppate per mostrare quale sia il supporto offerto da &lt;b&gt;Google Chrome&lt;/b&gt; a vari tipi di tecnologie sperimentali. Nel caso di Cube Slam, la tecnologia in questione è il &lt;b&gt;WebRTC&lt;/b&gt;, che consente una comunicazione diretta da browser a browser, usando soltanto elementi nativi del browser stesso: niente Flash o altri tipi di plugin esterni, insomma. Ma guardiamo meglio cosa sia Cube Slam.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVU64-TEy5MsW8Vzj0gd5Yd2yYnAgXVI3cHr3-60ixAWNjteYDkzBuKCvxLHJ-nG1KuirL7Fi75aKVRiwitVTdiNEuXRsSzqCH60F9et-0vy5qBYQc95Mr-xYGUpHu_P6pY3Ed67S7Bo/s1600/Cube-Slam.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVU64-TEy5MsW8Vzj0gd5Yd2yYnAgXVI3cHr3-60ixAWNjteYDkzBuKCvxLHJ-nG1KuirL7Fi75aKVRiwitVTdiNEuXRsSzqCH60F9et-0vy5qBYQc95Mr-xYGUpHu_P6pY3Ed67S7Bo/s320/Cube-Slam.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa è la schermata introduttiva, che apparirà se ci colleghiamo alla pagina con Google Chrome. Altri tipi di browser, come &lt;b&gt;Firefox&lt;/b&gt; o &lt;b&gt;Safari&lt;/b&gt;, potrebbero funzionare, ma non è garantito: dopotutto, è un progetto che serve a mostrare le funzionalità di Chrome e non ci si può aspettare che sia anche ottimizzato per funzionare altrettanto bene su altri browser.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come possiamo vedere al centro, il campo di gioco è più o meno identico a quello del vecchio Pong, con una notevole variante: Cube Slam è tridimensionale, di conseguenza le due lineette sono sostituite da due parallelepipedi e il quadratino è adesso un cubo. Differenze marginali, si potrebbe dire. Una differenza più notevole è data dal contenuto del gioco, dove il semplice tic toc delle due lineette che si rilanciano l’un l’altra un quadratino è stato arricchito da svariati elementi extra, come campi gravitazionali, ostacoli, bombe e più o meno tutto l’armamentario che si può immaginare in un videogioco di questo tipo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sempre dalla schermata introduttiva, possiamo notare un altro particolare, cioè le due modalità di gioco offerte: contro un amico, oppure contro un orso. La seconda, per quanto possa suonare bizzarra, è soltanto un modo per dire che giocheremo contro il computer, ossia contro una tipica AI da videogioco, in questo caso impersonata da un orso. La prima opzione è invece molto più interessante, perché ci conduce al cuore dell’esperimento: la comunicazione diretta via browser, nel caso specifico tra il nostro browser e quello di un amico, contro il quale giocheremo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
WebRTC, ossia &lt;i&gt;Web Real Time Communication&lt;/i&gt;, è una nuova tecnologia, per introdurre una comunicazione diretta tra browser, utilizzando solo le risorse a disposizione dei browser, senza appoggiarsi a programmi esterni. In particolare, il fine di WebRTC è quello di rendere la comunicazione audio e video, attraverso i browser, semplice e immediata quando la comunicazione testuale. Cube Slam utilizza WebRTC per collegarci direttamente col browser di un nostro amico, se scegliamo di giocare contro un amico e se l’amico è in linea (ovviamente), gestendo in modo diretto la comunicazione tra noi e lui: noi vedremo sullo schermo il nostro amico e lui vedrà noi. Niente di diverso da una normale video chat, da un certo punto di vista, ma la differenza sta nel modo in cui la comunicazione è realizzata: direttamente dal browser e non utilizzando un plugin di &lt;b&gt;Skype&lt;/b&gt;, come ad esempio fa &lt;b&gt;Facebook&lt;/b&gt;. peraltro, lo scopo stesso del gioco è proprio quello di abbattere lo schermo del nostro avversario, cosa che avverrà dopo che lo avremo colpito per tre volte.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per essere giocato contro un amico, quindi, Cube Slam richiede la presenza di webcam e microfono (sì, oltre a vederci, possiamo anche insultarci in diretta, mentre giochiamo): se non utilizziamo un firewall (pessima abitudine), i dati saranno trasmessi direttamente dal nostro browser al browser del nostro amico, senza bisogno di un server, in un modo simile a quanto avviene con programmi P2P, come &lt;b&gt;eMule&lt;/b&gt; o &lt;b&gt;BitTorrent&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per quanto riguarda la grafica, che è in 3D, può essere visualizzata in due modi: se il nostro browser supporta il &lt;b&gt;WebGL&lt;/b&gt;, che è una grafica 3D nativa dei browser, il gioco sarà visualizzato utilizzando quella, dato che è stato prodotto con &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/06/threejs-una-libreria-per-un-webgl.html&quot;&gt;three.js&lt;/a&gt;&lt;/b&gt;, una libreria JavaScript per semplificare il ricorso alla grafica 3D; in assenza di WebGL, invece, ripiegherà sulla simulazione del 3D attraverso il &lt;b&gt;CSS&lt;/b&gt;, così da garantire un risultato simile, anche se non proprio identico, anche su altri browser.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/7313881039375413123/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/esperimenti-di-chrome-cube-slam-e-webrtc.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7313881039375413123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7313881039375413123'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/esperimenti-di-chrome-cube-slam-e-webrtc.html' title='Esperimenti di Chrome: Cube Slam e WebRTC'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVU64-TEy5MsW8Vzj0gd5Yd2yYnAgXVI3cHr3-60ixAWNjteYDkzBuKCvxLHJ-nG1KuirL7Fi75aKVRiwitVTdiNEuXRsSzqCH60F9et-0vy5qBYQc95Mr-xYGUpHu_P6pY3Ed67S7Bo/s72-c/Cube-Slam.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-4579002294404313013</id><published>2013-06-15T09:06:00.002+02:00</published><updated>2013-06-15T09:06:33.150+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare copertina"/><category scheme="http://www.blogger.com/atom/ns#" term="free software"/><category scheme="http://www.blogger.com/atom/ns#" term="ghostscript"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="impaginazione"/><category scheme="http://www.blogger.com/atom/ns#" term="scriptus"/><title type='text'>Scribus, alternativa libera a InDesign</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.scribus.net/&quot;&gt;Scribus&lt;/a&gt;&lt;/b&gt; è un programma di impaginazione libero e open source, disponibile per tutti i principali sistemi operativi: &lt;b&gt;Windows&lt;/b&gt;, &lt;b&gt;Macintosh&lt;/b&gt;, &lt;b&gt;Linux/UNIX&lt;/b&gt; e così via. Meglio ancora, è disponibile in lingua italiana e corredato da una valida guida interna (anche questa in gran parte in italiano), che ne descrive la struttura, le funzioni principali e fornisce anche un breve tutorial, con un esempio concreto di creazione di un documento. È un buon punto di partenza e vale la pena cominciare da lì il proprio studio di Scribus.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’installazione del programma non dovrebbe presentare particolari problemi, ma per gli utenti Windows c’è un’avvertenza: al termine della procedura di installazione, se decidete di aprire il file &lt;i&gt;readme&lt;/i&gt;, Scribus vi segnalerà che avreste dovuto installare un altro programma, prima di Scribus, e cioè &lt;b&gt;&lt;a href=&quot;http://www.ghostscript.com/&quot;&gt;Ghostscript&lt;/a&gt;&lt;/b&gt;. Se non lo avete installato, a ogni successivo avvio Scribus si lamenterà di non riuscire a trovarlo: è bene dunque scaricare e installare Ghostscript, prima di installare Scribus. A ogni modo, è anche possibile utilizzare Scribus, senza aver installato Ghostscript, ma alcune funzioni non saranno disponibili, ossia le funzioni per cui è richiesto Ghostscript: nello specifico, non potrete importare file in formato &lt;b&gt;EPS&lt;/b&gt;, utilizzare l’anteprima di stampa, o generare codici a barre. Nei sistemi operativi Linux/UNIX, invece, Ghostscript è di solito già installato, per cui il problema non si pone, anche se potrebbe essere necessario aggiornarlo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una volta installato, al primo avvio vi troverete molto probabilmente davanti a questa finestra,&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Bh3hHZS0C2PE9MpDAhX9uB31vyZO9nGmysbhdp15Y-UaOW-nWw4eMrtvORipS2iYs0Z0hZCAJKZ52Hg0Hv7nxOo_p4EE8va_uJ8Mzhm650NoqeEkpax8jRhUFyWQGyFNSU1Q9afbmdw/s1600/Scribus+a.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Bh3hHZS0C2PE9MpDAhX9uB31vyZO9nGmysbhdp15Y-UaOW-nWw4eMrtvORipS2iYs0Z0hZCAJKZ52Hg0Hv7nxOo_p4EE8va_uJ8Mzhm650NoqeEkpax8jRhUFyWQGyFNSU1Q9afbmdw/s320/Scribus+a.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
cioè la finestra per la creazione di un nuovo documento. A differenza di un elaboratore di testi, come ad esempio &lt;b&gt;Word&lt;/b&gt; o &lt;b&gt;Writer&lt;/b&gt;, o anche il semplice &lt;b&gt;Blocco Note&lt;/b&gt;, non ci sarà già una pagina bianca standard ad aspettarvi, pronta a essere profanata dai vostri scritti: dovrete crearla voi stessi, in base alle vostre esigenze per quel particolare lavoro. per facilitarvi le cose, ma anche per darvi un primo suggerimento su come cominciare, Scribus vi proporrà subito la finestra per la creazione di un nuovo documento. Se lo trovate troppo invasivo, o se non amate in generale essere imboccati con le operazioni da svolgere, potete sempre selezionare “&lt;b&gt;Non mostrare più questa finestra di dialogo&lt;/b&gt;”, in basso a sinistra: in questo caso, all&#39;avvio vi troverete davanti il programma nudo e crudo, in attesa che voi apriate un file già esistente, oppure creiate un nuovo documento.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYkaqARjlVARfooNFIPwmtoeve7beej2Hr0h4IYDmHzPDYngpJOpQ6B_4e5Y2jZg7KhkJS-I6zNCf9eFYRxDZS1JAfKKovIawTEdvh7KgcS-E33J6hT3pOmIK4wirnc43HGeAjV-eEtYU/s1600/Scribus+b.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYkaqARjlVARfooNFIPwmtoeve7beej2Hr0h4IYDmHzPDYngpJOpQ6B_4e5Y2jZg7KhkJS-I6zNCf9eFYRxDZS1JAfKKovIawTEdvh7KgcS-E33J6hT3pOmIK4wirnc43HGeAjV-eEtYU/s320/Scribus+b.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come ho detto in precedenza, nella guida di Scribus è presente un tutorial in italiano, che vi mostrerà le principali funzioni del programma: se decidete di seguirlo, lo troverete nella sezione &lt;b&gt;Documentazione -&amp;gt; Le basi di Scribus&lt;/b&gt;, col titolo “&lt;b&gt;Iniziare subito a lavorare con Scribus&lt;/b&gt;”. Un altro possibile punto di partenza è il tutorial online, che potete raggiungere dal menu &lt;b&gt;Aiuto -&amp;gt; Guide online&lt;/b&gt;, sotto il nome di “&lt;b&gt;Primi passi con Scribus&lt;/b&gt;”.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Più in generale, è utile leggere tutti gli articoli presenti nella sezione “&lt;b&gt;Le basi di Scribus&lt;/b&gt;”, nella guida interna, se non avete mai utilizzato un programma di questo genere. È opportuno ripetere, infatti, che Scribus non è un programma per la creazione o la scrittura di testo, ma per la sua impaginazione: anche se contiene un elaboratore di testo molto semplice (poco più di un Blocco Note), il suo utilizzo fondamentale consiste nell&#39;importare documenti e poi impaginarli, non crearli da zero. In altri termini, se volete creare un semplice volantino, con due righe di testo, potete farlo direttamente con Scribus, senza problemi; se invece lo volete usare per impaginare un libro o una rivista, scrivete prima di tutto il testo col vostro editor preferito, salvatelo in un formato &lt;b&gt;TXT&lt;/b&gt; o &lt;b&gt;ODT&lt;/b&gt; e poi utilizzate pure Scribus per impaginarlo, aggiungere le immagini e così via. Una volta concluso il lavoro, il risultato finale potrà essere esportato come PDF, come immagine, oppure stampato (o anche tutte e tre le cose assieme, volendo).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le funzioni di base di Scriptus possono poi essere semplificate, utilizzando script per automatizzare diversi tipi di operazioni: alcuni sono preinstallati e li potete trovare elencati nel menu &lt;b&gt;Script&lt;/b&gt;, ma potete aggiungerne quanti volete, in base alle vostre esigenze. L’unico requisito necessario è saper programmare in &lt;b&gt;Python&lt;/b&gt;, cioè il linguaggio in cui gli script sono realizzati; inoltre, è anche possibile aggiungere plugin, in questo caso realizzati in &lt;b&gt;C++&lt;/b&gt;. La guida di Scribus fornisce qualche informazione in proposito, nella sezione &lt;b&gt;For Developers&lt;/b&gt;, assieme a una introduzione alla creazione di plugin in C++, ma non è stata tradotta in italiano: nulla vi vieta di leggerla, se siete interessati all&#39;argomento.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/4579002294404313013/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/scribus-alternativa-libera-indesign.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4579002294404313013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4579002294404313013'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/scribus-alternativa-libera-indesign.html' title='Scribus, alternativa libera a InDesign'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Bh3hHZS0C2PE9MpDAhX9uB31vyZO9nGmysbhdp15Y-UaOW-nWw4eMrtvORipS2iYs0Z0hZCAJKZ52Hg0Hv7nxOo_p4EE8va_uJ8Mzhm650NoqeEkpax8jRhUFyWQGyFNSU1Q9afbmdw/s72-c/Scribus+a.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-6004565442939784132</id><published>2013-06-08T16:08:00.001+02:00</published><updated>2013-10-12T14:05:31.890+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="e-book"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="modificare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB – Come lavorare</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/06/guida-al-css-per-epub-impostare-i.html&quot;&gt;Nella puntata precedente&lt;/a&gt; abbiamo parlato di bordi, margini e di come impostare (o annullare) la distanza tra gli elementi all&#39;interno di una pagina. Con questo non abbiamo certo esaurito il discorso sul &lt;b&gt;CSS&lt;/b&gt;, che include svariate altre funzioni per impaginare gli elementi su più colonne, animarli e così via, ma tutto ciò che poco o nulla a che fare con gli &lt;b&gt;EPUB&lt;/b&gt;: se vogliamo che un nostro e-book sia leggibile senza problemi anche su uno smartphone, dobbiamo limitarci a una sola colonna e il ricorso ad animazioni, oltre ad avere poca attinenza coi libri in generale, potrebbe non essere supportato da tutti i lettori in circolazione. Volendo, il problema relativo alla dimensione dello schermo può essere risolto, ricorrendo a un layout adattabile (come accade su molti siti web), ma è un argomento che va ben al di là sella semplice introduzione al CSS e, semmai, lo affronterò in futuro. Per adesso, vediamo invece di riassumere il discorso, con un esempio più concreto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Supponiamo di dover lavorare su una pagina strutturata in questo modo:&lt;/div&gt;
&lt;code&gt;&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div class=”titolo”&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Capitolo 1&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=”testo”&amp;gt;&lt;br /&gt;
&amp;lt;p class=”primo”&amp;gt;Testo del primo paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Testo del paragrafo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Corrisponde più o meno a una struttura ideale, per lavorare col CSS. Come ho accennato in precedenza, diversi tag HTML possiedono una formattazione di base, inserita automaticamente dal browser o dal dispositivo di lettura: il tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt;, ad esempio, sarà quasi sempre seguito da una riga vuota, a separarlo dal paragrafo successivo, mentre i vari tag usati per i titolo, come &lt;b&gt;&amp;lt;h1&amp;gt;&lt;/b&gt;, &lt;b&gt;&amp;lt;h2&amp;gt;&lt;/b&gt; e così via, avranno già in partenza una dimensione differente, rispetto al testo normale, e spesso saranno anche visualizzati in grassetto. Queste impostazioni automatiche possono andarci bene, ma possono anche essere una seccatura, se vogliamo avere un controllo totale sulla grafica della pagina. Se le consideriamo una seccatura, nella prima parte del foglio di stile possiamo inserire alcune regole per annullarle: le ho riassunte nel &lt;a href=&quot;http://www.mediafire.com/download/0w60axiieqvar9x/resetta.css&quot; target=&quot;_blank&quot;&gt;file CSS che potete scaricare da qui&lt;/a&gt;. Per usarle, copiate il contenuto e incollatelo all&#39;inizio del vostro foglio di stile, così da fare piazza pulita di tutto, prima di cominciare il lavoro.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per scrivere il nostro foglio di stile, ricordiamo sempre il principio di base del CSS: partiamo dalle regole più generali, che costituiranno la base del nostro stile, e procediamo poi verso le regole più specifiche, che riguarderanno soltanto piccole porzioni di testo. Nella nostra pagina di esempio, il tag di base è &lt;b&gt;&amp;lt;body&amp;gt;&lt;/b&gt;, che li include tutto. È il capofamiglia, se ricordiamo la struttura gerarchica dello HTML. Subito dopo di lui, vengono i tag &lt;b&gt;&amp;lt;div class=”titolo”&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;div class=”testo”&amp;gt;&lt;/b&gt;, alla pari: sono tag fratelli (oppure sorelle, come preferite), nonché figli del tag &amp;lt;body&amp;gt;. Il tag &amp;lt;div class=”titolo”&amp;gt; ha un solo figlio, ossia il tag &amp;lt;h2&amp;gt;, e il suo ramo si conclude lì; il fratello &amp;lt;div class=”testo”&amp;gt;, invece, ha diversi figli, tutti i tag &amp;lt;p&amp;gt;, e ognuno di essi avrà probabilmente altri figli, se abbiamo usato qualche corsivo o grassetto, oppure se abbiamo inserito link, immagini o altro. È una famiglia molto ramificata, ma dobbiamo sempre ricordare la sua struttura: i figli ereditano lo stile del padre, a meno che questo stile non sia modificato in una delle loro regole.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se vogliamo impostare uno sfondo che valga per tutto il capitolo, impostiamolo come regola per il tag &amp;lt;body&amp;gt;. Scriveremo ad esempio:&lt;/div&gt;
&lt;code&gt;body{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; color: yellow;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
se vogliamo che il capitolo abbia uno sfondo giallo. Potremo poi cambiare il colore dello sfondo per un tag specifico, ma il giallo sarà il colore di base per lo sfondo di tutti gli elementi della pagina. Se vogliamo impostare un font di base, modificandolo eventualmente per i titoli, il tag body è sempre un buon punto in cui impostarlo. Unendolo alla regola precedente, otterremo&lt;/div&gt;
body{&lt;br /&gt;
&lt;code&gt;
&amp;nbsp; color: yellow;&lt;br /&gt;
&amp;nbsp; font-family: “Times New Roman”, Times, serif;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
che assegnerà uno sfondo giallo alla pagina e imposterà il font di base per tutto il testo. Per modificare il font del titolo, poi, basterà scrivere&lt;/div&gt;
.titolo{&lt;br /&gt;
&lt;code&gt;&amp;nbsp; font-family: &quot;Arial Black&quot;, Arial, sans-serif;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In questo modo, il tag &amp;lt;div class=”titolo”&amp;gt; utilizzerà un font diverso, che sarà ereditato dai suoi figli (il solo tag &amp;lt;h2&amp;gt;, in questo esempio). Il contenuto di &amp;lt;div class=”testo”&amp;gt;, invece, erediterà il font impostato per &amp;lt;body&amp;gt;, che è suo padre. Se la catena di genitori, figli e fratelli ci confonde, può essere utile tracciare un breve schema della rete di rapporti, così da averla sempre a portata di occhio, mentre scriviamo il foglio di stile: può aiutare a chiarire perché un determinato elemento abbia un certo colore, oppure utilizzi un certo font.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il tag body è un ottimo posto anche per inserire tutte le regole che determineranno i margini della pagina, quando spazio vuoto dovrà essere lasciato sui bordi, eccetera. Ad esempio, se al tag body aggiungiamo anche una regola&lt;/div&gt;
&lt;code&gt;padding: 7px 10px 5px 10px;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
tutta la pagina presenterà un margine alto di sette pixel, laterale di dieci pixel e basso di cinque pixel: avremo insomma creato una piccola cornice bianca attorno al contenuto della pagina.&lt;/div&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;Titolo e testo, nel nostro esempio e nella maggior parte delle pagine ben strutturate, sono due elementi fratelli: le regole che assegniamo a uno non influiscono sull&#39;altro ed è bene così. Per separarli, inserendo un certo spazio tra il titolo e il primo paragrafo del testo, non premiamo tre o quattro volte il tasto “Invio”, perché il risultato non è garantito. Il modo migliore per separarli è usare i margini, come già abbiamo visto. ad esempio, se scriviamo la regola&lt;/span&gt;&lt;br /&gt;
&lt;code&gt;.titolo{&lt;br /&gt;&amp;nbsp; margin-bottom: 30px;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
avremo la garanzia che il titolo e il primo paragrafo saranno separati da uno spazio vuoto di trenta pixel. Possiamo assegnare qualsiasi valore, a seconda delle nostre preferenze, ma la cosa importante è assegnarlo alla proprietà margin-bottom, che determina la distanza tra la fine di questo elemento e l’inizio del successivo.&lt;/div&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;Venendo al testo, molti libri scelgono di rientrare la prima riga di ogni paragrafo. Se vogliamo adottare questo stile per il nostro EPUB, basterà una regola del tipo&lt;/span&gt;&lt;br /&gt;
&lt;code&gt;p{&lt;br /&gt;&amp;nbsp; text-indent: 2em;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
che produrrà un rientro pari a due caratteri nella prima riga di ogni tag &amp;lt;p&amp;gt;. Il primo paragrafo di un capitolo, a volte, riceve un trattamento particolare: per questo gli abbiamo assegnato una classe “primo”, che useremo nel CSS per modificare soltanto quel paragrafo. Ad esempio,&lt;br /&gt;
&lt;code&gt;p.primo{&lt;br /&gt;&amp;nbsp; text-indent: 0;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
azzera il rientro per il tag &amp;lt;p&amp;gt; che possiede un attributo class=”primo”, ossia il primo paragrafo del nostro capitolo. Essendo poi una regola più specifica, è meglio inserirla dopo la regola generale, che abbiamo scritto per il tag &amp;lt;p&amp;gt;. Se poi vogliamo davvero sbizzarrirci e dare un aspetto particolare alla prima lettera del capitolo, in memoria degli antichi testi miniati medievali, possiamo ricorrere a una regola ancora più specifica, ossia&lt;br /&gt;
&lt;code&gt;p.primo:first-letter{&lt;br /&gt;
&amp;nbsp; position: relative;&lt;br /&gt;
&amp;nbsp; display: block;&lt;br /&gt;
&amp;nbsp; float: left;&lt;br /&gt;
&amp;nbsp; font-weight: bold;&lt;br /&gt;
&amp;nbsp; font-size: 4.4em;&lt;br /&gt;
&amp;nbsp; line-height: 0.8em;&lt;br /&gt;
&amp;nbsp; color: rgb(40,40,40);&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
che potrete divertirvi a decifrare, sulla base delle puntate precedenti. In linea di massima, la regola di rivolge alla prima lettera del paragrafo con classe “primo”: ingrandisce la lettera, la colora, la rende in grassetto e la allinea al resto del paragrafo. Questa regola, che è specifica al massimo grado (riguarda solo una lettera di un paragrafo), la collocheremo alla fine della parte del foglio CSS dedicata ai paragrafi.&lt;br /&gt;
Tutte le regole che modificano elementi interni a un tag &amp;lt;p&amp;gt;, come possono esserlo i tag &amp;lt;b&amp;gt;, &amp;lt;i&amp;gt; e così via, li sistemeremo subito dopo la sezione dedicata al paragrafo: una buona organizzazione del foglio di stile ci aiuterà a vedere meglio i rapporti di parentela tra gli elementi. Il foglio di stile, dunque, potrebbe avere una struttura finale di questo tipo:&lt;br /&gt;
&lt;code&gt;body{&lt;br /&gt;
&amp;nbsp; //regole globali&lt;br /&gt;
}&lt;br /&gt;
.titolo{&lt;br /&gt;&amp;nbsp; //regole per la sezione “titolo”&lt;br /&gt;
}&lt;br /&gt;
.titolo h2{&lt;br /&gt;&amp;nbsp; //regole specifiche per il tag &amp;lt;h2&amp;gt;, quando si trova in un elemento con class”titolo”&lt;br /&gt;
}&lt;br /&gt;
.testo{&lt;br /&gt;&amp;nbsp; //regole generali per il corpo del capitolo&lt;br /&gt;
}&lt;br /&gt;
p{&lt;br /&gt;&amp;nbsp; //regole specifiche per i paragrafi&lt;br /&gt;
}&lt;br /&gt;
p.primo{&lt;br /&gt;&amp;nbsp; //regole specifiche per il paragrafo con classe “primo”&lt;br /&gt;
}&lt;br /&gt;
p.primo:first-letter{&lt;br /&gt;&amp;nbsp; //regole specifiche per la prima lettera del paragrafo con classe “primo”&lt;br /&gt;
}&lt;br /&gt;
b{&lt;br /&gt;&amp;nbsp; //regole specifiche per il tag &amp;lt;b&amp;gt;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
e così via. Combinando i tag, possiamo ottenere regole sempre più specifiche e precise, ad esempio la regola&lt;br /&gt;
&lt;code&gt;p b{&lt;br /&gt;
//regole per i tag &amp;lt;b&amp;gt; all’interno di un tag &amp;lt;p&amp;gt;&lt;br /&gt;
}&lt;/code&gt;&lt;br /&gt;
che si rivolge soltanto a un sottogruppo dei tag &amp;lt;b&amp;gt;, ossia quelli che sono figli di un tag &amp;lt;p&amp;gt;. Il principio di base, che dobbiamo sempre ricordare per risparmiarci fatica inutile è: partiamo dal generale e scendiamo sempre più verso il particolare. Ricordarlo e applicarlo non ci metterà al sicuro dagli errori, ma ci aiuterà a ridurli e a localizzarli più facilmente.</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/6004565442939784132/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-come-lavorare.html#comment-form' title='6 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/6004565442939784132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/6004565442939784132'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-come-lavorare.html' title='Guida al CSS per EPUB – Come lavorare'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-2751937694492236808</id><published>2013-06-04T09:19:00.001+02:00</published><updated>2013-06-08T16:09:11.014+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="ebook"/><category scheme="http://www.blogger.com/atom/ns#" term="foglio di stile"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB – Impostare i margini</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/05/guida-al-css-per-epub-formattare-il_31.html&quot;&gt;Nella puntata precedente&lt;/a&gt; abbiamo visto alcune delle proprietà che dobbiamo modificare, per cambiare l’aspetto di un paragrafo o della pagina: è un buon inizio, per posizionare correttamente un elemento, ma ancora non basta, soprattutto se siamo interessati a controllare gli spazi tra un elemento e l’altro (le famigerate righe vuote tra i paragrafi, insomma, contro cui spesso ci si trova a dover combattere). Se convertiamo un documento con &lt;b&gt;Calibre&lt;/b&gt;, e non prestiamo attenzione a tutti i valori da impostare, molto spesso ci troveremo coi paragrafi separati tra loro da fastidiose linee bianche, proprio come accade quando scriviamo qualcosa in &lt;b&gt;Sigil&lt;/b&gt;. Per capire cosa siano e imparare a evitarle o eliminarle, dobbiamo prima osservare come il &lt;b&gt;CSS&lt;/b&gt; gestisca lo spazio nello &lt;b&gt;HTML&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Pensiamo a un tag HTML (e al suo contenuto) come a una porzione di spazio, uno dei mattoncini LEGO che formano la pagina. Ognuno di questi tag, in linea di massima, è rappresentato come un rettangolo, più o meno grande a seconda dei casi: il tag &lt;b&gt;&amp;lt;body&amp;gt;&lt;/b&gt; è un rettangolo grande quanto la pagina intera, il tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt; è grande quanto il paragrafo contenuto, il tag &lt;b&gt;&amp;lt;h1&amp;gt;&lt;/b&gt; sarà grande invece quando la riga di titolo corrispondente, e così via. Una pagina è dunque un muro, composto da tanti mattoni, di dimensione diversa: ogni tag è un mattone e il contenuto del tag determina la grandezza del mattone.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il CSS ci permette di impostare e controllare tre proprietà spaziali, per ogni mattone: &lt;b&gt;margin&lt;/b&gt;, &lt;b&gt;padding&lt;/b&gt; e &lt;b&gt;border&lt;/b&gt;. &lt;b&gt;Border&lt;/b&gt; è il più semplice di tutti: è il perimetro del rettangolo e possiamo usarla per disegnare una “cornice” attorno a un elemento. &lt;b&gt;Padding&lt;/b&gt; è lo spazio vuoto tra il bordo e il contenuto interno: se abbiamo deciso di racchiudere un paragrafo in una cornice, usando border, padding ci dirà quanto spazio bianco vedremo tra la cornice e il testo del paragrafo. &lt;b&gt;Margin&lt;/b&gt;, infine, è lo spazio che separa il bordo di un tag dal bordo dei tag che lo circondano: è lo spazio che fa da cuscinetto tra un mattone e l’altro, separandoli. L’insieme di questi tre elementi forma il cosiddetto “modello a box”, nel CSS.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-3fu6pt7PqkMX8Pqsgf4rGFi5xz7h1RSvGVtzo9Unlk3X9dMz3Q-7PEaMF_KUcwWQ3UMoo0wvIsyVn8eJCmUxwUpPJ00zOB507GK2W4tY2ZsVblE0XvObWmpD_E0-SCjaWgNN9hXmb2k/s1600/modello.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-3fu6pt7PqkMX8Pqsgf4rGFi5xz7h1RSvGVtzo9Unlk3X9dMz3Q-7PEaMF_KUcwWQ3UMoo0wvIsyVn8eJCmUxwUpPJ00zOB507GK2W4tY2ZsVblE0XvObWmpD_E0-SCjaWgNN9hXmb2k/s320/modello.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In breve, border segna il confine di un elemento, padding è lo spazio interno tra il confine e il contenuto dell’elemento, margin è lo spazio esterno tra il confine e gli altri elementi che lo circondano. Ognuna di queste tre proprietà può essere impostata individualmente, per ognuna delle quattro direzioni, oppure può essere impostata con un comando solo per tutti e quattro i lati. Inoltre, ognuna può essere impostata a zero, se vogliamo eliminare le formattazioni automatiche di alcuni tag (tipo &amp;lt;p&amp;gt;).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
padding&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come detto, è lo spazio che separa il contenuto di un elemento dal suo bordo: se vogliamo disegnare una cornice attorno al testo, padding è la proprietà che dovremo impostare, per lasciare un certo spazio tra il bordo e il testo. Se un elemento utilizza la proprietà &lt;b&gt;background-color&lt;/b&gt;, per colorare lo sfondo, allora anche la fascia di padding sarà colorata, in quanto è interno all&#39;elemento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A seconda dei casi, possiamo utilizzare una delle quattro varianti “locali” di padding, per impostarlo solo su un lato, oppure possiamo usare direttamente padding, per impostarlo in una volta sola su tutti e quattro i lati. Le quattro varianti sono &lt;b&gt;padding-top&lt;/b&gt;, &lt;b&gt;padding-right&lt;/b&gt;, &lt;b&gt;padding-bottom&lt;/b&gt;, &lt;b&gt;padding-left&lt;/b&gt;, sistemate come nella immagine soprastante: per ognuna possiamo indicare una delle unità di misura permesse dal CSS, per indicare quanto spazio lasciare. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;padding-top: 5px;&lt;br /&gt;
padding-left: 10px;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
lasciano rispettivamente uno spazio vuoto di cinque pixel sopra il contenuto dell’elemento, e uno spazio vuoto di dieci pixel a sinistra del contenuto. Se invece scriviamo&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;padding: 5px 10px 5px 10px;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
possiamo impostare in una volta sola la distanza per tutte e quattro le direzioni: in questo caso, il primo numero sarà la distanza in alto, il secondo la distanza a destra, il terzo la distanza in basso e il quarto la distanza a sinistra. Se vogliamo usare questa proprietà “unica”, è importante ricordare il corretto ordine: alto-destra-basso-sinistra, ossia &lt;i&gt;top-right-bottom-left&lt;/i&gt;. Per memorizzare la sequenza, partite da sopra e muovetevi in senso orario. Se invece li impostiamo individualmente, non è importante seguire un ordine.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Infine, se vogliamo assegnare lo stesso valore a tutti e quattro i lati, possiamo utilizzare una formula ancora più breve, ossia&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;padding: 10px;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In questo modo, tutti e quattro i lati avranno un margine interno di dieci pixel (o di qualsiasi altro numero indicheremo).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
margin&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come detto, è lo spazio che separa questo elemento dagli altri elementi che lo circondano: il suo “spazio vitale”, se preferite pensarla così. Funziona esattamente come padding, in tutto e per tutto, ma non sarà colorato, se abbiamo impostato un valore per background-color, in quanto lo spazio di &lt;b&gt;margin&lt;/b&gt; non fa parte del nostro elemento, ma è esterno. Avremo dunque &lt;b&gt;margin-top&lt;/b&gt;, &lt;b&gt;margin-right&lt;/b&gt;, &lt;b&gt;margin-bottom&lt;/b&gt; e &lt;b&gt;margin-left&lt;/b&gt;, come proprietà individuali, e margin come proprietà unica, che le riassume tutte quante. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;margin-top: 12px;&lt;br /&gt;
margin-right: 8px;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
imposteranno il margine esterno a dodici pixel in alto (margin-top) e a otto pixel sulla sinistra (margin-left). Utilizzando invece la formula abbreviata, possiamo scrivere&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;margin: 4px 5px 10px 6px;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
così imposteremo un margine in alto di quattro pixel, a destra di cinque pixel, in basso di dieci pixel e a sinistra di sei pixel. Se vogliamo usare lo stesso numero per tutti e quattro i lati, la formula abbreviata resta sempre&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;margin: 5px;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
proprio come abbiamo già visto per padding. Queste due proprietà funzionano allo stesso modo e cambia solo il luogo in cui collocano lo spazio vuoto nell&#39;elemento: margin lo colloca all&#39;esterno del bordo, padding lo colloca all&#39;interno del bordo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
border&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Concludiamo proprio col bordo. La proprietà &lt;b&gt;border&lt;/b&gt; disegna una cornice attorno a un elemento e, può essere utilizzata sia per tracciare questa cornice attorno a tutto l’elemento, sia per tracciarla solo su alcuni dei quattro lati. Come i suoi colleghi, dunque, anche border ha le versioni specifiche, ossia &lt;b&gt;border-top&lt;/b&gt;, &lt;b&gt;border-right&lt;/b&gt;, &lt;b&gt;border-bottom&lt;/b&gt; e &lt;b&gt;border-left&lt;/b&gt;, che tracciano il bordo soltanto sul rispettivo lato del nostro elemento, ma i valori da attribuire a queste proprietà sono alquanto diversi: per disegnare un bordo, infatti, dovremo assegnare valori come il colore, lo spessore e lo stile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il primo valore che indichiamo, di solito, è lo spessore del bordo, espresso in pixel. Il secondo valore indica lo stile con cui sarà disegnato il bordo e lo possiamo scegliere tra i seguenti: &lt;b&gt;solid&lt;/b&gt;, &lt;b&gt;dotted&lt;/b&gt;, &lt;b&gt;dashed&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, &lt;b&gt;groove&lt;/b&gt;, &lt;b&gt;ridge&lt;/b&gt;, &lt;b&gt;inset&lt;/b&gt;, &lt;b&gt;outset&lt;/b&gt;, &lt;b&gt;none&lt;/b&gt;, &lt;b&gt;hidden&lt;/b&gt;. &lt;b&gt;Solid&lt;/b&gt; è una normale linea chiusa, &lt;b&gt;dotted&lt;/b&gt; è una linea punteggiata, &lt;b&gt;dashed&lt;/b&gt; una linea tratteggiata, &lt;b&gt;double&lt;/b&gt; una linea doppia, &lt;b&gt;none&lt;/b&gt; elimina il bordo, &lt;b&gt;hidden&lt;/b&gt; lo nasconde (di fatto ottiene lo stesso risultato di none, cioè il bordo non si vedrà, ma nascondere una cosa è diverso da eliminarla), mentre gli altri quattro producono particolari effetti grafici, più semplici da vedere che da descrivere. Infine, il terzo valore è il colore che il bordo dovrà avere e lo possiamo impostare seguendo le regole già viste prima, parlando degli attributi &lt;b&gt;color&lt;/b&gt; e &lt;b&gt;background-color&lt;/b&gt;. Qualche esempio:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;border: 2px dotted red;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;border-bottom: 1px solid rgb(0, 0, 255);&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
nel primo caso, tracceremo su tutti e quattro i lati un bordo punteggiato, dallo spessore di due pixel e di colore rosso; nel secondo caso, tracceremo sotto l’elemento un bordo solido, dallo spessore di un pixel e di colore blu (una sottolineatura blu, insomma).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Possiamo utilizzare la forma abbreviata border, soltanto se vogliamo che il bordo sia identico su tutti e quattro i lati; se vogliamo disegnare bordi di spessore o di colore diverso, dovremo utilizzare le proprietà individuali per i quattro lati, ossia &lt;b&gt;border-top&lt;/b&gt;, &lt;b&gt;border-right&lt;/b&gt;, &lt;b&gt;border-bottom&lt;/b&gt; e &lt;b&gt;border-left&lt;/b&gt;. Non so perché qualcuno dovrebbe desiderare un bordo arlecchino e di dimensioni diverse, per una parte del proprio &lt;b&gt;EPUB&lt;/b&gt;, ma questo è un altro paio di maniche: se il vostro senso estetico vi spinge in questa direzione, usate le quattro proprietà individuali; se siete tradizionalisti e volete un bordo uniforme su ogni lato, usate pure la formula abbreviata.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ovviamente, border, margin e padding possono essere utilizzati su qualsiasi tipo di tag, ma non sempre otterremo il risultato previsto da noi. Lo HTML distingue infatti tra due tipi di tag, ossia quelli che creano un blocco nel testo e quelli che coabitano su una stessa linea. I tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;div&amp;gt;&lt;/b&gt; sono esempi tipici di tag che creano blocchi (servono proprio a dividere la pagina in sezioni logiche) e sono spesso accompagnati da una separazione grafica sullo schermo; i tag &lt;b&gt;&amp;lt;b&amp;gt;&lt;/b&gt;, &lt;b&gt;&amp;lt;span&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;a&amp;gt;&lt;/b&gt; sono esempi tipici di tag che coabitano su una stesa linea, senza dividere la pagina in blocchi. In caso di tag “in linea”, assegnare margini in alto e in basso non funzionerà come previsto, mentre i margini laterali non daranno problemi: non possiamo insomma usare padding-top o margin-bottom per aumentare lo spazio tra le linee. O almeno, non normalmente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Esiste infatti una proprietà particolare, che ci permette di decidere se un tag dovrà comportarsi come un blocco, oppure come un tag “in linea”: è la proprietà display. Se a un tag assegniamo il valore&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;display: inline;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
quel tag coabiterà pacificamente sulla stessa linea con altri tag, a prescindere da quale sia il suo tipo; se invece gli assegniamo il valore&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;display: block;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
quel tag creerà un blocco indipendente all&#39;interno della pagina, proprio come il tag &amp;lt;p&amp;gt;, e potremo controllare i sui margini su tutti e quattro i lati.&lt;br /&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-come-lavorare.html&quot;&gt;Nella prossima puntata, tireremo le somme&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/2751937694492236808/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-impostare-i.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2751937694492236808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2751937694492236808'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-impostare-i.html' title='Guida al CSS per EPUB – Impostare i margini'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-3fu6pt7PqkMX8Pqsgf4rGFi5xz7h1RSvGVtzo9Unlk3X9dMz3Q-7PEaMF_KUcwWQ3UMoo0wvIsyVn8eJCmUxwUpPJ00zOB507GK2W4tY2ZsVblE0XvObWmpD_E0-SCjaWgNN9hXmb2k/s72-c/modello.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-3525984117721942867</id><published>2013-05-31T12:52:00.001+02:00</published><updated>2013-06-04T09:19:44.130+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="foglio di stile"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB - Formattare il paragrafo</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/05/guida-al-css-per-epub-formattare-il.html&quot;&gt;Nella puntata precedente&lt;/a&gt; abbiamo visto una serie di regole per la modifica del testo: come impostare il font, scegliere la dimensione del testo, il suo colore e applicare alcuni tipi di decorazione a una o più parole. Proseguendo col discorso, vedremo oggi le regole per modificare interi blocchi di testo, ossia i singoli paragrafi o l’intera pagina del nostro &lt;b&gt;EPUB&lt;/b&gt;: regole che normalmente applicheremo al tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt;, oppure alla classe attribuita al tag &amp;lt;p&amp;gt;, ma anche regole che si possono applicare alla classe del tag &lt;b&gt;&amp;lt;div&amp;gt;&lt;/b&gt;, che racchiude il contenuto dell’intero capitolo, se abbiamo seguito la struttura proposta in precedenza.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
line-height&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come forse si potrà intuire già dal nome questa proprietà ci permette di impostare l’altezza delle linee nel nostro paragrafo o nella nostra pagina: maggiore è il valore che assegneremo a questa proprietà, maggiore sarà lo spazio tra una linea e l’altra (la famosa interlinea, insomma). Le unità di misura utilizzabili sono quelle che abbiamo già visto, ma in linea di massima è meglio usare solo le percentuali, oppure gli em, assieme a questa proprietà, così da rendere più dinamico lo spazio tra le linee: se è espresso in percentuale o in em, si adatterà di volta in volta alla dimensione del carattere, invece di rimanere fisso, come accadrebbe usando i pixel. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;line-height: 150%;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;line-height: 2em;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Impostando una interlinea pari a due caratteri, questa dimensione si manterrà costante, qualunque sia la dimensione del carattere. Nei browser e in buona parte dei dispositivi, il valore base di questa proprietà è 120%.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
text-align&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa proprietà permette di formattare il testo di un paragrafo o di una pagina, allineandolo a destra, a sinistra, al centro, oppure giustificandolo: una proprietà che avremo utilizzato migliaia di volte, lavorando con &lt;b&gt;Word&lt;/b&gt; o &lt;b&gt;Writer&lt;/b&gt;. I valori che possiamo assegnare sono quattro e corrispondono ai quattro possibili stili di formattazione: &lt;b&gt;right&lt;/b&gt;, &lt;b&gt;left&lt;/b&gt;, &lt;b&gt;center&lt;/b&gt;, &lt;b&gt;justify&lt;/b&gt;. Questo è un tipico attributo, che vorremo assegnare all&#39;intero testo e non a ogni singolo paragrafo, ed è di conseguenza un buon candidato per essere utilizzato con la classe di un eventuale &amp;lt;div&amp;gt;, che racchiude l’intero contenuto del capitolo. Esempi di utilizzo:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-align: left;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-align: justify;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
il primo allineerà il testo a sinistra, il secondo lo giustificherà su entrambi i margini.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
text-indent&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa proprietà la utilizzeremo solitamente assieme al tag &amp;lt;p&amp;gt;, per assegnarla in modo uniforme a tutti i nostro paragrafi: è infatti una proprietà che ci permette di impostare il rientro della prima riga di testo in un paragrafo (e solo la prima riga). Tipicamente, attribuiremo a questa proprietà un valore espresso in pixel o in em, con una preferenza per la seconda soluzione: un rientro di 3em, pari a tre caratteri, resterà costante anche variando la dimensione del carattere, mentre un rientro di 10 pixel non si adatterà a un eventuale ingrandimento del testo (ricordiamo che praticamente tutti i dispositivi di lettura danno la possibilità di ingrandire o rimpicciolire il testo). Una regola&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;p{&lt;/b&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; text-indent: 4em;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
}&lt;/div&gt;
&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
assegnerà un rientro pari a quattro caratteri alla prima riga di tutti i paragrafi (se ci siamo ricordati di racchiudere ciascuno di essi in un tag &amp;lt;p&amp;gt;).&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
:first-letter&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa è una pseudoclasse &lt;b&gt;CSS&lt;/b&gt;, che può essere abbinata a un tag e ci permette di assegnare uno stile speciale alla prima lettera di ogni paragrafo. Un suo uso tipico è&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;p:fist-letter{&lt;/b&gt;&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; //regole da attribuire alla prima lettera&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e all&#39;interno delle parentesi graffe inseriremo poi le proprietà che la prima lettera del paragrafo dovrà possedere. Se vogliamo essere ancora più specifici, e sogniamo uno EPUB con la prima lettera di ogni capitolo miniata, come un manoscritto medievale, dovremo prima di tutto assegnare una classe particolare al primo paragrafo, ad esempio &lt;b&gt;&amp;lt;p class=”primo”&amp;gt;&lt;/b&gt;, e poi useremo una struttura del tipo&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;.primo:first-letter{&lt;/b&gt;&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; //regole da assegnare alla prima lettera&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
così da modificare soltanto la prima lettera dei paragrafi che possiedono la classe “primo”. Una cosa da ricordare è che non dovremo lasciare spazi vuoti tra il nome del tag (o della classe) e i due punti di &lt;b&gt;:first-letter&lt;/b&gt;. Fra le parentesi graffe, poi, potremo utilizzare qualsiasi regola già vista per il testo: assegnare font particolari, ingrandire il testo, renderlo in grassetto, colorarlo, ma anche colorare il suo sfondo (lo vedremo a breve) e così via.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
:first-line&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Identico al precedente, ma si applica alla prima riga del testo nel tag con cui lo stimo utilizzando. Ad esempio,&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;p:first-line{&lt;/b&gt;&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; //regole da assegnare alla prima riga&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
ci permetterà di assegnare uno stile particolare alla prima riga di ogni paragrafo. Vale quanto già detto in precedenza, con un avvertimento supplementare: se vogliamo attribuire più stili a uno stesso paragrafo (ad esempio uno stile generale per il paragrafo, uno per la prima riga e un terzo stile per la prima parola), è importante scrivere le varie regole in ordine, dalla più generale alla più particolare. Nel foglio di stile, per prima scriveremo la regola da applicate a tutti i paragrafi, poi scriveremo le regole da applicare solo ad alcuni paragrafi, poi quelle da applicare alla prima linea di alcuni paragrafi, infine quelle da applicare alla prima lettera. Questo vale per qualsiasi tag ed è un principio che è sempre bene ripetere.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
background-color&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa proprietà è utilizzata per assegnare un colore allo sfondo del tag, come è possibile intuire dal nome stesso della proprietà: se color serviva a colorare il testo, questa serve a colorare la superficie su cui il testo si trova. Possiamo assegnarla a una singola riga, per ricreare un effetto da evidenziatore, ma molto più spesso ci troveremo a utilizzarla per l’intera pagina, oppure per singoli paragrafi o blocchi della pagina: ad esempio, per assegnare un colore particolare allo sfondo del titolo del paragrafo, così da marcarne la differenza rispetto al contenuto, ma possiamo anche assegnare un colore particolare allo sfondo della prima lettera del paragrafo, oppure della prima riga.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Qualunque sia il modo in cui deciderete di utilizzarla, le regole sono le stesse che abbiamo già visto per color: il colore può essere espresso con un nome in inglese (se è uno dei colori principali), oppure con un numero esadecimale, o infine con un blocco &lt;b&gt;rgb()&lt;/b&gt; o &lt;b&gt;rgba()&lt;/b&gt;, al cui interno indicheremo le quote dei tre colori fondamentali (rosso, verde e blu) da miscelare, per ottenere il colore che ci serve. Niente di nuovo, insomma. Di conseguenza,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-color: red;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-color: #FF0000;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-color: rgb(255, 0, 0);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
sono tre modi per indicare il colore rosso, da attribuire allo sfondo di un elemento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
background-image&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per chi non si accontenta dei colori, è possibile anche inserire una immagine come sfondo per un elemento, oppure per tutta la pagina: la proprietà background-image ci permette di fare proprio questo. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-image: url(../Images/sfondo.jpg);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
ci permetterà di inserire l’immagine “&lt;b&gt;sfondo.jpg&lt;/b&gt;” come sfondo per il tag a cui avremo assegnato questa proprietà. Tra la parentesi di url(), ovviamente, dovremo indicare il punto in cui si trova la nostra immagine, che di solito dovrebbe essere la cartella Images del nostro EPUB: se si trova in un altro posto, modificheremo l’indirizzo di conseguenza.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Utilizzare una immagine come sfondo, però, presenta alcune complicazioni, che è bene tenere presente. Se l’immagine è più piccola della superficie da coprire, normalmente sarà riprodotta a scacchiera, da sinistra verso destra e dall’altro verso il basso, fino a riempire tutto lo spazio disponibile. Se state utilizzando una piccola immagine, che simula la superficie di una pergamena o di un foglio di carta, questo comportamento potrebbe andarvi bene; in altri casi, però, potrebbe risultare alquanto molesto. Per controllare (o impedire) la ripetizione della nostra immagine, dobbiamo utilizzare una seconda proprietà, subito dopo &lt;b&gt;background-image&lt;/b&gt;, ossia&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-repeat&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A questa proprietà possiamo assegnare quattro valori: &lt;b&gt;no-repeat&lt;/b&gt;, &lt;b&gt;repeat&lt;/b&gt;, &lt;b&gt;repeat-x&lt;/b&gt;, &lt;b&gt;repeat-y&lt;/b&gt;. Il valore &lt;b&gt;repeat&lt;/b&gt; è quello che possiede in partenza e prevede che l’immagine sia ripetuta su tutto lo schermo; il valore &lt;b&gt;no-repeat&lt;/b&gt; impedisce che l’immagine sia ripetuta; &lt;b&gt;repeat-x&lt;/b&gt; ripete l’immagine soltanto da sinistra verso destra, cioè in orizzontale; &lt;b&gt;repeat-y&lt;/b&gt; la ripete soltanto in verticale. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-image: url(../Images/sfondo.jpg);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-repeat: repeat-x;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
è una combinazione che ci permette di inserire come sfondo l’immagine “sfondo.jpg”, ripetendola a oltranza da sinistra verso destra.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-position&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dopo aver caricato una immagine come sfondo e aver deciso se e come ripeterla, per coprire la superficie a disposizione, ci resta da vedere ancora una cosa, prima di chiudere il capitolo-immagini, e cioè come posizionarla all&#39;interno di un elemento. La proprietà background-position si occupa proprio di questo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Background-position richiede due valori: il primo è il punto di partenza orizzontale, il secondo è il punto di partenza verticale. Questi due valori possono essere espressi usando parole-chiave o unità di misura: in teoria si potrebbero usare anche le percentuali, ma è una soluzione che richiede calcoli troppo complicati e solitamente non ne vale la pena. Le parole-chiave, per il primo valore, sono &lt;b&gt;left&lt;/b&gt;, &lt;b&gt;center&lt;/b&gt; e &lt;b&gt;right&lt;/b&gt;, mentre per il secondo valore sono &lt;b&gt;top&lt;/b&gt;, &lt;b&gt;center&lt;/b&gt; e &lt;b&gt;bottom&lt;/b&gt;. Scrivendo ad esempio&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-position: left top;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
il punto di partenza della nostra immagine sarà l’angolo in alto a sinistra dell’elemento. Scrivendo invece&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-position: center center;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
il punto di partenza della nostra immagine sarà il centro esatto dell’elemento. E così via, per tutte e altre combinazioni. Se abbiamo scelto una immagine ripetuta, il punto indicato da background-position è il punto di partenza della ripetizione; se non dovrà essere ripetuta, invece, sarà il punto in cui si troverà l’immagine.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Utilizzando unità di misura, il principio è lo stesso, ma esprimeremo la posizione di una immagine indicando la sua distanza dall&#39;angolo in alto a sinistra dell’elemento. Di conseguenza,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-position: 5px 10px;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
inserirà la nostra immagine a cinque pixel dal bordo sinistro e a dieci pixel dal bordo superiore del nostro elemento: in pratica, sarà spostata di cinque pixel verso destra e di dieci verso il basso, rispetto ai margini dell’elemento. Un numero negativo, invece, la sposterà nella direzione opposta:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;background-position: -5px -10px;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
collocherà il punto di partenza di una immagine cinque pixel sulla sinistra e dieci in alto, rispetto al suo elemento; in pratica, comincerà all&#39;esterno dell’elemento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Proseguiremo &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/06/guida-al-css-per-epub-impostare-i.html&quot;&gt;nella prossima puntata&lt;/a&gt;, parlando di margini e bordi della pagina.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/3525984117721942867/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il_31.html#comment-form' title='7 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/3525984117721942867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/3525984117721942867'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il_31.html' title='Guida al CSS per EPUB - Formattare il paragrafo'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-4233936177172339997</id><published>2013-05-27T12:39:00.001+02:00</published><updated>2013-10-12T14:02:13.707+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="foglio di stile"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="incorporare font"/><category scheme="http://www.blogger.com/atom/ns#" term="tipografia"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB – Formattare il testo</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/05/guida-al-css-per-epub-il-foglio-di-stile.html&quot;&gt;Nella puntata precedente&lt;/a&gt; abbiamo visto la struttura generale di una regola &lt;b&gt;CSS&lt;/b&gt;: prima di tutto indichiamo il nome del tag e/o della classe a cui la regola si applicherà, poi apriamo una parentesi graffa, elenchiamo una serie di coppie formate da una proprietà e l’attributo da assegnare a quella proprietà, infine chiudiamo la parentesi graffa. Le proprietà che possiamo impostare sono parecchie, soprattutto quando stiamo lavorando sulla pagina di un normale sito web; nel caso di uno &lt;b&gt;EPUB&lt;/b&gt;, però, diverse di queste proprietà avrebbero poco senso o poca utilità, per cui possiamo concentrarci su un numero ristretto di esse, cioè quelle che normalmente ci serviranno per formattare la nostra pagina e il nostro testo. Oggi partiremo dal testo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Premessa generale. Il CSS utilizza più unità di misura, per definire la dimensione del testo, della pagina, i margini, eccetera, e non tutte queste unità di misura sono intuitive, come significato. Il pixel è probabilmente la più comune e la più semplice: se assegnate a qualcosa un valore di &lt;b&gt;20px&lt;/b&gt; (venti pixel), quell&#39;elemento avrà sempre e comunque una dimensione di venti pixel, a prescindere da tutto il resto. A titolo di esempio, la dimensione base dei caratteri in un qualsiasi browser è di 16px, cioè sedici pixel (non lasciate spazi vuoti tra il numero e &lt;b&gt;px&lt;/b&gt;, la sigla di pixel) e molti lettori di e-book seguono questa convenzione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Lo &lt;b&gt;em&lt;/b&gt; è una unità di misura più esotica ed equivale alla dimensione base dei caratteri che, come abbiamo appena visto, di solito è &lt;b&gt;16px&lt;/b&gt;, ossia sedici pixel. Questa unità è usata spesso per indicare la dimensione del rientro alla prima riga (se lo utilizziamo): un rientro di 3em, ad esempio, imposterà un rientro di tre caratteri, mentre 5em sarà cinque caratteri. Se a un titolo assegniamo una dimensione di 2em, lo renderemo grande il doppio rispetto ai caratteri normali, mentre un valore di 0.5em renderà il nostro testo grande la metà del normale.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La percentuale funziona come lo em, cioè determina la dimensione dell’elemento in rapporto a un altro valore, ma con una differenza: nel caso dello em, il valore di riferimento è sempre la grandezza del carattere, mentre nel caso della percentuale il riferimento varia, a seconda dei casi. Se stiamo impostando la dimensione di un carattere, e lo facciamo in percentuale, dicendo ad esempio che il testo deve essere il 150%, allora il risultato sarà equivalente a 1.5em; se però usiamo la percentuale per determinare la larghezza della pagina, il valore di riferimento non sarà il carattere, ma la grandezza dello schermo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Abbandoniamo adesso il discorso in astratto sulle unità di misura e guardiamo come assegnare stili al testo, che è poi l&#39;argomento principale di oggi: le unità di misura ritorneranno, ma inserite in un contesto più preciso. La prima cosa che probabilmente vorremo impostare, nel nostro EPUB, è il font, ossia il tipo di carattere da utilizzare (utilizzo la parola font al maschile, perché mi riferisco al file in cui sono contenuti i caratteri; il file, per l’appunto).&lt;/div&gt;
&lt;h3&gt;
font-family&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Normalmente, possiamo utilizzare nel nostro EPUB qualsiasi font preferiamo, più o meno come accade quando lavoriamo con un programma quale &lt;b&gt;Word&lt;/b&gt; o &lt;b&gt;Writer&lt;/b&gt;. Per assegnare il font nel foglio di stile, useremo la proprietà font-family, a cui assegneremo il nome del font come valore. Ad esempio,&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; font-family: “Times New Roman”;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
assegnerà il font “Times New Roman” a tutto il testo racchiuso in un tag &amp;lt;p&amp;gt;. Il nome del font deve essere racchiuso tra virgolette, se è composto da più di una parola, ma non è obbligatorio se il suo nome è di una sola parola: Times New Roman dovrà quindi essere racchiuso tra virgolette, mentre Verdana può essere scritto senza virgolette.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Possiamo specificare un solo tipo di font, come abbiamo fatto in questo caso, ma è più prudente indicarne almeno due o tre, in ordine di preferenza: al primo posto metteremo il font che preferiamo e poi, in ordine, le opzioni di riserva, separate da una virgola. Questo è importante, perché non tutti i dispositivi di lettura possiedono tutti i tipi di font: il Times New Roman è dappertutto, ma font più insoliti potrebbero non essere disponibili su un determinato dispositivo. Per limitare i danni, è bene dunque offrire una serie di font di riserva, via via più generici, che saranno utilizzati se i font più specifici mancheranno. Ad esempio, la regola&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; font-family: Arial, Helvetica, sans-serif;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
darà al lettore un ordine di questo tipo: “per visualizzare il testo contenuto nel tag &amp;lt;p&amp;gt;, usa il font Arial; se non è disponibile, usa il font Helvetica; se non hai neppure quello, usa un qualsiasi font di tipo sans-serif”. &lt;b&gt;Serif&lt;/b&gt;, &lt;b&gt;sans-serif&lt;/b&gt; e &lt;b&gt;monospaced&lt;/b&gt; sono tre famiglie base di font e rappresentano la soluzione più generica possibile: è bene indicarle come ultima alternativa, in una lista di font. &lt;b&gt;Serif&lt;/b&gt; è un font con piccole decorazioni alla fine della lettera ed è usato normalmente per il testo di una pagina: esempi di questa famiglia sono Times New Roman, Georgia, Garamond, Baskerville e così via. &lt;b&gt;Sans-serif&lt;/b&gt; è un font più semplice, senza decorazioni, ed è solitamente usato per i titoli: esempi sono Arial, Helvetica, Verdana, Tahoma, eccetera. &lt;b&gt;Monospaced&lt;/b&gt; è un font in cui tutti i caratteri occupano lo stesso spazio e conferisce al testo un aspetto da “vecchia macchina da scrivere”: esempi sono Courier, Lucida Console, Monaco, eccetera.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se è fondamentale che il nostro testo sia riprodotto con un particolare tipo di font e vogliamo essere sicuri che sia disponibile su ogni dispositivo, dovremo incorporarlo nel nostro e-book. Ho già parlato altrove di &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/01/come-incorporare-font-in-uno-epub.html&quot;&gt;come incorporare font in uno EPUB&lt;/a&gt;, per cui vi rimando a quell&#39;articolo.&lt;/div&gt;
&lt;h3&gt;
color&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una volta stabilito il font, potremmo aver voglia di colorare il nostro testo, invece di lasciarlo nel solito nero. La proprietà da modificare, in questo caso, è &lt;b&gt;color&lt;/b&gt;, a cui dovremo assegnare un valore corrispondente al colore che ci interessa, il che potrebbe essere un poco complicato. Il colore, nel CSS, può essere indicato in almeno tre modi: per i colori base, è di solito disponibile un nome (in inglese); per colori più particolari, sfumature, o per essere sicuri che il colore sia compreso ovunque, possiamo utilizzare il suo valore esadecimale, oppure indicare la combinazione di rosso, verde &amp;nbsp;blu che lo producono. Vediamo come funziona.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per alcuni colori, il nome è sufficiente: possiamo così scrivere&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: red;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: blue;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: green;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e all&#39;elemento corrispondente sarà assegnato il colore che vogliamo. In altri casi, però, la vita non è così semplice e dovremo utilizzare sistemi più complicati, per indicare il colore.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il numero esadecimale è la forma più vecchia, utilizzata fin dai primordi del web per indicare il colore di un elemento HTML: il colore è così rappresentato da sei numeri in base sedici, che corrispondono alla quantità di rosso, verde e blu da mischiare, per ottenere il colore corrispondente. Alcuni esempi sono:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: #6600FF;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: #3E8988;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In questi casi, il simbolo &lt;b&gt;#&lt;/b&gt; indica che il valore seguente è un esadecimale, il numero seguente esprime la miscela di colori necessari. Potete utilizzare un qualsiasi programma di grafica, come &lt;b&gt;Photoshop&lt;/b&gt;, &lt;b&gt;GIMP&lt;/b&gt; o altri, per scoprire quale sia il numero esadecimale corrispondente al colore che vi interessa.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Altra possibilità è indicare in modo più normale i valori di rosso, verde e blu, utilizzando per ciascuno di essi una percentuale, oppure un numero compreso tra 0 e 255. Ad esempio:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: rgb(255, 255, 255);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: rgb(100%, 100%, 100%);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
rappresentano lo stesso colore, ma con due formule diverse. In entrambi i casi, dovremo utilizzare la struttura &lt;b&gt;rgb()&lt;/b&gt; come base e scrivere, al suo interno, i tre valori, divisi da una virgola. È la soluzione migliore, per inserire un colore, perché ci permette il massimo controllo sul risultato, ma soprattutto può essere facilmente estesa, per aggiungere un quarto valore, ossia la trasparenza. Dubito che vorrete mai scrivere un capitolo del vostro libro, utilizzando colori trasparenti, ma sappiate che è possibile: basta utilizzare &lt;b&gt;rgba()&lt;/b&gt; e inserire, come quarto attributo, un numero decimale da 0 a 1, dove 0 indica trasparenza completa (invisibilità, insomma) e 1 indica opacità completa. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;color: rgba(255, 0, 0, .5);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
produrrà un colore rosso che è per metà trasparente. Anche in questo caso, chiedete aiuto al vostro programma di grafica preferito, per conoscere i valori da assegnare a ogni colore.&lt;/div&gt;
&lt;h3&gt;
font-size&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per modificare la dimensione del font, possiamo utilizzare la proprietà font-size, che è molto semplice da usare: tutto ciò che dobbiamo fare è indicare la dimensione da assegnare al font, usando una delle unità di misura già menzionate. Ad esempio&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-size: 1.2em;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-size: 120%;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-size: 20px;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e così via. C’è solo un avvertimento, riguardo al corretto utilizzo di questa proprietà, se esprimiamo la dimensione in percentuale o in em: se modifichiamo per la prima volta la dimensione del font, allora il valore di riferimento sarà quello base (di solito 16 pixel); se abbiamo già modificato la dimensione, allora il valore di riferimento sarà quello che abbiamo assegnato all&#39;ultimo tag “padre”, secondo l’albero genealogico che abbiamo visto alla fine della precedente.&lt;/div&gt;
&lt;h3&gt;
font-style&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una proprietà opzionale è &lt;b&gt;font-style&lt;/b&gt;, che può essere utilizzata per rendere corsivo il testo, oppure per annullare lo stile corsivo in un tag figlio, se lo avevamo assegnato al tag padre. Questa proprietà ha tre possibili valori: &lt;b&gt;normal&lt;/b&gt;, che toglie il corsivo, &lt;b&gt;italic&lt;/b&gt;, che assegna il corsivo, &lt;b&gt;oblique&lt;/b&gt;, che di fatto è identica a italic, ma non si usa quasi mai. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-style: italic;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-style: normal;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
dove il primo rende corsivo il testo e il secondo rimuove lo stile corsivo.&lt;/div&gt;
&lt;h3&gt;
font-weight&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Altra proprietà opzionale è &lt;b&gt;font-weight&lt;/b&gt;, che funziona come font-style, ma si applica al grassetto, invece che al corsivo. In questo caso, però, i valori possibili sono soltanto due: &lt;b&gt;normal&lt;/b&gt; e &lt;b&gt;bold&lt;/b&gt;, dove il primo rimuove il grassetto e il secondo lo applica al testo. In pratica,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-weight: normal;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-weight: bold;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
sono le uniche due combinazioni possibili per questa proprietà.&lt;/div&gt;
&lt;h3&gt;
text-transform&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A volte può essere necessario trasformare le lettere di una o più parole, per renderle maiuscole o minuscole: la proprietà &lt;b&gt;text-transform&lt;/b&gt; si occupa proprio di questo. I valori possibili per questa proprietà sono quattro: &lt;b&gt;uppercase&lt;/b&gt;, &lt;b&gt;lowercase&lt;/b&gt;, &lt;b&gt;capitalize&lt;/b&gt; e &lt;b&gt;none&lt;/b&gt;. Come è facile da intuire, uppercase rende il testo maiuscolo, lowercase lo rende minuscolo e capitalize rende maiuscola soltanto la prima lettera di ogni parola, mentre none annulla ogni modifica. Le combinazioni sono dunque&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-transform: uppercase;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-transform: lowercase;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-transform: capitalize;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-transform: none;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
ed è una proprietà che probabilmente vi tornerà comoda soltanto per i titoli dei capitoli e poco altro, ma è sempre utile conoscerne l’esistenza.&lt;/div&gt;
&lt;h3&gt;
font-variant&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Altra proprietà estremamente specifica, che di fatto serve solo a creare testo in maiuscoletto. Scrivendo&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;font-variant: small-caps;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
otterrete un testo in lettere maiuscole, ma di piccole dimensioni: il maiuscoletto, per l’appunto, che può essere usato per aggiungere una certa enfasi ad alcune parole, ma soprattutto per le sigle.&lt;/div&gt;
&lt;h3&gt;
text-decoration&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una proprietà fondamentale, senza la quale non potremmo vivere, da cui ogni forma di tipografia digitale dipende: ecco cosa NON è &lt;b&gt;text-decoration&lt;/b&gt;. Scherzi a parte, è una proprietà che raramente vi troverete a dover utilizzare (o almeno spero), ma può essere utile spendere una frazione della propria memoria per immagazzinarla, nel caso in cui dovesse servire, in un futuro lontano. Questa proprietà assegna una specie di decorazione al testo o alla parola a cui è assegnata, anche se la idea di “decorazione” che voi avete è probabilmente molto diversa da quella di chi ha progettato questa proprietà. I valori possibili sono &lt;b&gt;underline&lt;/b&gt;, &lt;b&gt;overline&lt;/b&gt;, &lt;b&gt;line-through&lt;/b&gt;, &lt;b&gt;blink&lt;/b&gt;, &lt;b&gt;none&lt;/b&gt; e possono essere combinate tra loro, applicandone più di una allo stesso elemento. Undeline traccia una linea sotto al testo, overline ne traccia una al di sopra del testo, line-through ne traccia una attraverso il testo, blink farà lampeggiare fastidiosamente il testo e none abolirà decorazioni precedenti. Ad esempio,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-decoration: line-through;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-decoration: overline underline;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-decoration: none;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e così via, dove soltanto il buon gusto potrà costituire un limite alla vostra creatività.&lt;/div&gt;
&lt;h3&gt;
text-shadow&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Chiudiamo con una vera decorazione, che certo può avere un buon impatto visivo, se usata bene, ma che potrebbe non funzionare su tutti i lettori, essendo una novità abbastanza recente: dovrete sperimentarla sul campo. Questa proprietà è &lt;b&gt;text-shadow&lt;/b&gt;, che aggiunge un effetto-ombra al testo a cui è assegnata: in pratica, se la applicate a un titolo, il titolo sarà accompagnato da un’ombra, che darà una vaga illusione di profondità e tridimensionalità (con un poco di fantasia da parte di chi la guarda).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per usarla, dovrete assegnare una discreta sfilza di valori, ad esempio&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;text-shadow: -4px 4px 3px #999999;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
dove il primo valore corrisponde alla posizione orizzontale dell’ombra, il secondo alla posizione verticale, il terzo al tasso di sfocatura e il quarto al colore. Nel mio esempio, l’ombra è spostata a sinistra di 4 pixel (valori negativi la spostano a sinistra, valori positivi la spostano a destra, rispetto alla parola che la proietta), verso il basso di 4 pixel (valori positivi la spostano verso il basso, lavori negativi verso l’alto), è abbastanza sfocata (con 0 pixel è nitida, ogni punto in più ne aumenta la sfocatura) e ha un colore grigio. Il modo migliore per dare un senso a tutti i vari numeri è sperimentare di persona, se siete interessati a usare questa proprietà.&lt;br /&gt;
Continueremo &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il_31.html&quot;&gt;alla prossima puntata&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/4233936177172339997/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il.html#comment-form' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4233936177172339997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4233936177172339997'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il.html' title='Guida al CSS per EPUB – Formattare il testo'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-928263633608032453</id><published>2013-05-22T09:18:00.000+02:00</published><updated>2013-05-27T12:39:39.686+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="ebook"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="pubblicazione"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB – Il foglio di stile</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.it/2013/05/guida-al-css-per-epub-struttura-della.html&quot;&gt;Nella puntata precedente&lt;/a&gt; abbiamo visto come strutturare una pagina, per renderne più semplice la modifica e la formattazione attraverso le regole del &lt;b&gt;CSS&lt;/b&gt;. Oggi, invece, cominceremo a vedere cosa siano queste regole del CSS: per poterlo fare, osserveremo prima di tutto la struttura di un foglio di stile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come ho scritto in precedenza, il CSS è un insieme di regole, che prescrivono al browser il modo in cui una pagina web debba essere visualizzata. In un normale sito, possiamo utilizzare il CSS per svariate operazioni di design, dalle più basilari, come modificare font, colori e inserire immagini di sfondo, fino alle più complesse, come assemblare l’intero layout del sito, distribuendo il contenuto delle pagina su una, due, tre o più colonne, inserendo barre laterali di navigazione, header, footer e anche semplici animazioni, per rendere più allegra, vivace o di pessimo gusto la nostra pagina. Dato però che qui mi sto occupando del CSS utilizzabile in uno &lt;b&gt;EPUB&lt;/b&gt;, tralascerò molti di questi aspetti più avanzati e mi concentrerò invece sugli aspetti più semplici, ossia quelle che funzioneranno su qualsiasi dispositivo di lettura e per qualsiasi tipo di e-book. Se volete, però, nulla vi vieta di trattare le pagine del vostro libro come se fossero pagine web vere e proprie e sbizzarrirvi con le più recenti funzionalità aggiunte al CSS, ma sappiate che, al momento, non avrete alcuna garanzia che tutti i dispositivi di lettura supporteranno il vostro stile innovativo: dovrete sperimentare sul campo e sperare in bene.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dopo questa introduzione, cominciamo a vivisezionare un foglio di stile. Un foglio di stile, come dicevo, è formato da una serie di regole, tutte strutturate allo stesso modo, cioè così:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;&lt;span style=&quot;color: red;&quot;&gt;
h2&lt;/span&gt; {
&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;font-family&lt;/span&gt;: &lt;span style=&quot;color: lime;&quot;&gt;Verdana, Arial, Helvetica, sans-serif&lt;/span&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;text-align&lt;/span&gt;: &lt;span style=&quot;color: lime;&quot;&gt;center&lt;/span&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;color&lt;/span&gt;: &lt;span style=&quot;color: lime;&quot;&gt;gray&lt;/span&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;

&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
I colori li ho aggiunti io, per semplificare la spiegazione (chiedo scusa ai daltonici), ma per il resto è un esempio di normale regola, come potrete trovarne in qualsiasi foglio di stile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’elemento che ho colorato in rosso, cioè &lt;b&gt;h2&lt;/b&gt;, è il nome del tag a cui questa regola dovrà essere applicata, nel caso specifico h2: il suo nome completo, come lo troviamo in una pagina HTML, sarebbe &lt;b&gt;&amp;lt;h2&amp;gt;&lt;/b&gt; ma, come possiamo vedere, nel foglio di stile utilizzeremo solo la parte interna del nome, eliminando &amp;lt; e &amp;gt;. Subito dopo questo elemento, inseriremo due parentesi graffe, al cui interno si troveranno tutte le regole di stile da applicare alla porzione di testo o di pagina racchiusa da quel tag.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’elemento colorato in blu è la proprietà che vogliamo modificare, attraverso questa regola. Ogni elemento possiede un grande numero di proprietà, che vanno dal colore,&amp;nbsp;all&#39;allineamento&amp;nbsp; ai margini, e così via, e ognuna di queste può essere modificata liberamente da una regola in CSS. &lt;b&gt;Font-family&lt;/b&gt;, ad esempio, è la proprietà che determina il tipo di font da utilizzare per un elemento testuale. Ogni proprietà deve essere seguita dai due punti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’elemento colorato in verde, infine, è il valore che vogliamo assegnare a un certa proprietà. Se stiamo modificando la proprietà &lt;b&gt;color&lt;/b&gt;, ad esempio, il valore corrisponderà al nuovo colore da assegnare&amp;nbsp;all&#39;elemento&amp;nbsp; mentre la proprietà &lt;b&gt;font-family&lt;/b&gt; avrà come valore uno o più tipi di font. Ogni valore deve essere chiuso da un punto e virgola, a segnare che quella regola si è conclusa.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Oltre che a un tag, una regola CSS può essere applicata anche a una classe, oppure a una combinazione tag + classe, o infine a più tag contemporaneamente (o più combinazioni tag + classe contemporaneamente). Vediamo alcuni esempi.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; color: red;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa regola applica il valore red alla proprietà color di tutto ciò che è racchiuso&amp;nbsp;all&#39;interno&amp;nbsp;di un tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt;: in pratica, colora di rosso il testo di tutti i nostri paragrafi, indiscriminatamente.&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;.paragrafo {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; color: red;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa regola applica il valore red alla proprietà color di tutto ciò che è racchiuso all&#39;interno di un tag che possiede l’attributo &lt;b&gt;class=”paragrafo”&lt;/b&gt;, qualunque sia il tipo di tag (&lt;b&gt;&amp;lt;a class=”paragrafo”&amp;gt;&lt;/b&gt;, &lt;b&gt;&amp;lt;p class=”paragrafo”&amp;gt;&lt;/b&gt;, &lt;b&gt;&amp;lt;span class=”paragrafo”&amp;gt;&lt;/b&gt;, eccetera). Come possiamo vedere, il nome di una classe è preceduto da un punto, quando è utilizzato per una regola CSS.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p .paragrafo {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; color: red;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa regola applica il valore red alla proprietà color di tutto ciò che è racchiuso all&#39;interno di un tag &amp;lt;p&amp;gt;, che possieda l’attributo class=”paragrafo”, cioè a tutti i tag &lt;b&gt;&amp;lt;p class=”paragrafo”&amp;gt;&lt;/b&gt;. Se nel nostro testo è presente un tag &lt;b&gt;&amp;lt;p class=”altro”&amp;gt;&lt;/b&gt;, la regola non si applicherà, perché è richiesta la presenza contemporanea sia del tag &amp;lt;p&amp;gt; che della classe “paragrafo”.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p, h1 {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; color: red;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa regola applica il valore red alla proprietà color di tutto ciò che è racchiuso all&#39;interno di un tag &amp;lt;p&amp;gt; o di un tag &amp;lt;h1&amp;gt;: come vediamo, per applicare la stessa regola a più tipi di tag, basta separare i loro nomi con una virgola.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;p .paragrafo, h1 .titolo {&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; color: red;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa regola, infine, applica il valore red alla proprietà color di tutto ciò che è racchiuso all&#39;interno di un tag &amp;lt;p&amp;gt; con un attributo class=”paragrafo”, o all&#39;interno di un tag &amp;lt;h1&amp;gt; con un attributo class=”titolo”. In questo caso, ogni coppia tag + classe sarà separata da una virgola.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può capire da questi esempi, unendo fra loro più tag e più classi si possono creare regole parecchio complesse e dettagliate, che si applicano soltanto a sezioni ben determinate delle nostre pagine. Tutto ciò può sembrare parecchio confuso, a prima vista, e magari anche a seconda vista, ma è solo una questione di pratica: di fatto, possiamo utilizzare tag e classi come mattoncini Lego e combinarli tra loro come preferiamo, per costruire lo stile più adatto al nostro ebook. Vedremo più avanti alcuni esempi concreti di foglio di stile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per concludere questa introduzione, c’è un ultimo fattore da considerare, quando lavoriamo sul CSS: l’effetto a cascata. Una normale pagina HTML è composta da un gran numero di tag, incasellati gli uni dentro gli altri: abbiamo tag &amp;lt;div&amp;gt; che contengono tag &amp;lt;h2&amp;gt; e &amp;lt;p&amp;gt;, abbiamo tag &amp;lt;p&amp;gt; che contengono tag &amp;lt;a&amp;gt;, &amp;lt;em&amp;gt; e &amp;lt;span&amp;gt;, e così via. Lo abbiamo visto nella puntata precedente, parlando di come strutturare la pagina. In una struttura di questo tipo, il tag più esterno è il padre, mentre i tag al suo interno sono i figli (oppure madre e figlie, se preferite un approccio femminile: non fa alcuna differenza): se la nostra pagina è&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;lt;div class=”pagina”&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;div class=”titolo”&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;div class=”testo”&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
, il tag &amp;lt;body&amp;gt; sarà il padre di tutti, perché tutti gli altri tag sono al suo interno, ed è quindi il vertice della piramide. Subito sotto di lui c’è il figlio diretto, cioè &amp;lt;div class=”pagina”&amp;gt;, seguito poi dai suoi due figli diretti, ossia &amp;lt;div class=”titolo”&amp;gt; e &amp;lt;div class=”testo”&amp;gt;, e così via, fino alla fine dell’albero genealogico, cioè fino ai tag che non hanno altri tag al proprio interno. Se abbiamo impaginato bene il file, il rientro a inizio riga ci aiuterà visivamente a seguire la piramide dei tag.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A cosa serve tutta questa struttura? E cosa c’entra l’effetto a cascata? Semplice: tutti gli attributi che impostiamo per un tag padre si ripercuoteranno anche sui suoi tag figli. Se il tag &amp;lt;div class=”pagina”&amp;gt; ha un font Arial, anche tutti i suoi figli avranno un font Arial. Se non vogliamo che un tag figlio erediti un certo attributo dal padre (o dal nonno), dovremo sovrascrivere quell&#39;attributo, ossia assegnare al tag figlio un valore diverso per quell&#39;attributo. Per cambiare il font, ad esempio, dovremo assegnare al figlio un valore di font-family diverso da quello che erediterebbe dal padre: in questo modo, la sua eredità sarà ignorata e a prevalere sarà il valore che abbiamo assegnato direttamente a quel tag, non quello che riceverebbe dai tag più in alto nella scala gerarchica della pagina.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-formattare-il.html&quot;&gt;Nella prossima puntata&lt;/a&gt; proseguiremo con lo studio delle regole CSS, accompagnate da qualche esempio più concreto.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/928263633608032453/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-il-foglio-di-stile.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/928263633608032453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/928263633608032453'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-il-foglio-di-stile.html' title='Guida al CSS per EPUB – Il foglio di stile'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-7137737756869351704</id><published>2013-05-19T09:21:00.001+02:00</published><updated>2013-05-22T09:18:59.987+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="html5"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><category scheme="http://www.blogger.com/atom/ns#" term="struttura pagina"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Guida al CSS per EPUB – Struttura della pagina</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-introduzione.html&quot;&gt;Nella puntata precedente&lt;/a&gt; ci siamo dedicati a una presentazione generale del &lt;b&gt;CSS&lt;/b&gt;, imparando inoltre come aggiungere un foglio di stile alla nostra pagina. Prima di cominciare a scrivere il foglio di stile, e aggiungere al nostro testo una serie di formattazioni belle, strane o di cattivo gusto, dovremo però assicurarci che la nostra pagina sia pronta a farsi formattare, senza opporre resistenza, il che no è sempre così automatico. Vediamo dunque una struttura ottimale per le pagine dei nostri &lt;b&gt;EPUB&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Lo schema di base di un file &lt;b&gt;HTML&lt;/b&gt; dovrebbe ormai esserci familiare:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;html&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;/head&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;body&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questo è il minimo indispensabile, lo scheletro su cui tutto il resto sarà costruito:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;html&amp;gt;&lt;/b&gt; è il tag che racchiude tutta la pagina.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt; racchiude quella parte di pagina che, normalmente, non è visualizzata, ma che contiene una serie di regole, da utilizzare per la visualizzazione: è qui che inseriremo il CSS ed è qui che, in una normale pagina web, troveremo anche il JavaScript (in genere, ma non necessariamente: esistono almeno due scuole di pensiero, a riguardo, ma non è questo lo spazio per discuterne).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;title&amp;gt;&lt;/b&gt; contiene il titolo della pagina, che sarà visualizzato sul bordo alto del browser; siccome stiamo parlando di uno EPUB e il suo contenuto non sarà visualizzato in un browser, possiamo anche lasciare vuoto questo spazio, ma non lo possiamo eliminare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;body&amp;gt;&lt;/b&gt; contiene tutto ciò che sarà visualizzato sullo schermo: il testo, le foto, i video, eccetera. Qui dovremmo inserire soltanto il contenuto, senza mischiarlo con stile (CSS) e funzionamento (JavaScript). Essendo HTML, questo spazio sarà brulicante di tag e i tag potranno essere modificati da CSS e JavaScript in qualsiasi modo vorremo, ma l’importante è che il codice per modificare i tag sia lasciato fuori dal body, ben separato dal contenuto. Se li mischiate, siete delle brutte persone, oppure avete trascorso gli ultimi quindici anni ibernati in un qualche laboratorio segreto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dopo questo rapido ripasso dello scheletro di una pagina, dovrebbe essere chiaro che la parte da strutturare a dovere, per poterla poi modificare col CSS, è quella contenuto nel tag &amp;lt;body&amp;gt;: qui finirà tutto il contenuto del nostro EPUB e qui dovremo lavorare, per renderlo adatto ad accogliere il CSS.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In una normale pagina web, dovremmo preoccuparci del layout dei vari elementi, del numero di colonne da utilizzare nella pagina e così via; nel microcosmo di uno EPUB, invece, molti di questi problemi non si pongono e possiamo concentrarci sullo stretto indispensabile. O meglio, in teoria potremmo anche cercare di utilizzare in uno EPUB tutte le regole di layout che magari abbiamo imparato per i siti web, ma ci sono buone probabilità che i risultati non saranno quelli che ci aspettavamo. Manteniamoci dunque&amp;nbsp;sull&#39;essenziale,&amp;nbsp;cioè una pagina che presenta un titolo nella parte alta, ossia il titolo del capitolo, e poi una muraglia di testo, ossia il contenuto del capitolo: è lo schema seguito da quasi tutti i libri, dopotutto, ed è un ottimo schema, se vogliamo che il nostro e-book sia leggibile decentemente anche sullo schermo di un piccolo smartphone.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una buona e semplice struttura potrebbe essere questa:&lt;/div&gt;
&lt;b style=&quot;text-align: justify;&quot;&gt;&amp;lt;body&amp;gt;&lt;/b&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;b&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div class=”capitolo”&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class=”titolo”&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h2&amp;gt;Titolo del capitolo&amp;lt;/h2&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;div class=”corpo”&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il tag &lt;b&gt;&amp;lt;div&amp;gt;&lt;/b&gt;, che qui vediamo utilizzato, è un tag che, di per sé, non possiede un preciso valore semantico, nello HTML, ma è solitamente usato per dividere in blocchi il contenuto di una pagina. In un futuro prossimo, quando saranno rimasti in circolazione soltanto browser che supportano lo &lt;b&gt;HTML5&lt;/b&gt;, questa funzione del tag div sarà svolta da tag speciali, che lo HTML5 ha introdotto proprio per questo scopo, e &amp;lt;div&amp;gt; diventerà molto meno frequente nelle pagine web. Siccome però noi ci occupiamo di EPUB, tutto ciò non ci tocca e possiamo continuare a usare il tag div per strutturare i nostri capitoli, indipendentemente dai nuovi tag dello HTML5.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A ogni tag può essere assegnato un attributo &lt;b&gt;class&lt;/b&gt;, che ci servirà a rendere più precise le regole CSS da applicare alla pagina: invece di applicare genericamente una regola a tutti i tag dello stesso tipo (tutti i tag &lt;b&gt;&amp;lt;a&amp;gt;&lt;/b&gt;, ad esempio), possiamo usare l’attributo class per applicare una regola a tutti i tag di uno stesso tipo, che possiedono un determinato class (ad esempio, &lt;b&gt;class=”testo”&lt;/b&gt;), oppure a tag di tipo diverso, purché possiedano lo stesso class. Lo vedremo meglio più avanti, parlando delle regole CSS: per il momento, possiamo vedere che ci sono tre tag div, ognuno dei quali ha un attributo class differente, e grazie a questo attributo possiamo applicare loro stili differenti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;div class=”capitolo”&amp;gt;&lt;/b&gt; è il tag più ampio, che racchiude l’intero contenuto della pagina: per questo suo ruolo, possiamo utilizzarlo nel CSS per assegnare regole di base, che saranno applicate a tutto il contenuto della pagina. Per esempio, possiamo utilizzare questo tag per impostare una immagine di sfondo, oppure la larghezza dei margini della pagina, o ancora il tipo di font, e così via. Al suo interno, troviamo poi altri due tag, che separano i due blocchi di base per ogni capitolo, ossia il titolo e il testo: entrambi sono&amp;nbsp;all&#39;interno&amp;nbsp;della pagina, per questo li abbiamo inseriti&amp;nbsp;all&#39;interno&amp;nbsp;del tag più generale, ma entrambi hanno un ruolo paritario, per questo li abbiamo mantenuti uno accanto&amp;nbsp;all&#39;altro.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;div class=”titolo”&amp;gt;&lt;/b&gt; è quindi la parte in cui inseriremo il titolo del nostro capitolo. Nel foglio di stile CSS potremo utilizzare questa combinazione tag + class, per assegnare uno stile particolare al titolo e distinguerlo dal resto del testo, oppure per racchiudere il titolo in una cornice, o applicare qualsiasi altro tipo di decorazione noi vogliamo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&amp;lt;div class=”corpo”&amp;gt;&lt;/b&gt;, infine, racchiude il grosso del nostro capitolo, ossia il testo, dal primo&amp;nbsp;all&#39;ultimo&amp;nbsp;paragrafo. I vari paragrafi al suo interno, poi, saranno racchiusi in altrettanti tag &lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt;, uno per paragrafo, e a questi tag &amp;lt;p&amp;gt; potremo assegnare attributi class, ad esempio per distinguere il primo paragrafo dagli altri. In una struttura del tipo&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;lt;div class=”corpo”&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p class=”primo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;p class=”paragrafo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;p class=”paragrafo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;p class=”paragrafo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;p class=”paragrafo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;p class=”paragrafo”&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
abbiamo definite due classi differenti per i nostri paragrafi: un attributo &lt;b&gt;class=”primo”&lt;/b&gt;, che identifica il primo paragrafo del capitolo, e un attributo &lt;b&gt;class=”paragrafo”&lt;/b&gt;, che identifica tutti gli altri paragrafi del capitolo. In questo modo, nel foglio di stile CSS potremo assegnare uno stile particolare al primo paragrafo, ad esempio ingrandendo la prima lettera, a simulare un manoscritto miniato del medioevo, mentre tutti i successivi paragrafi utilizzeranno uno stile comune e uniforme.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se abbiamo bisogno di utilizzare uno stile particolare su una porzione molto ridotta di testo, ad esempio una riga o anche solo una parola&amp;nbsp;all&#39;interno&amp;nbsp;di un paragrafo, dovremo racchiudere quella porzione di testo in un tag &lt;b&gt;&amp;lt;span class=”nome”&amp;gt;&amp;lt;/span&amp;gt;&lt;/b&gt; (al posto di “nome”, ovviamente, inseriremo il nome che preferiamo, purché non sia già stato usato in altri class): in questo modo, nel foglio di stile potremo creare uno stile apposito, da applicare al testo che utilizza&amp;nbsp;quell&#39;attributo&amp;nbsp;class.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Adesso che abbiamo strutturato a dovere la nostra pagina, possiamo cominciare a scrivere qualche regola in CSS: è ciò che faremo &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-il-foglio-di-stile.html&quot;&gt;nella prossima puntata&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/7137737756869351704/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-struttura-della.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7137737756869351704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7137737756869351704'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-struttura-della.html' title='Guida al CSS per EPUB – Struttura della pagina'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-4152298429142345853</id><published>2013-05-17T12:35:00.001+02:00</published><updated>2013-05-19T09:21:58.448+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bignami"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="html5"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="xhtml"/><title type='text'>Guida al CSS per EPUB - Introduzione</title><content type='html'>&lt;span style=&quot;text-align: justify;&quot;&gt;Già in precedenza mi ero dedicato a una breve &lt;/span&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/03/come-usare-fogli-di-stile-css-negli.html&quot; style=&quot;text-align: justify;&quot;&gt;introduzione&amp;nbsp;all&#39;uso&amp;nbsp;del &lt;b&gt;CSS&lt;/b&gt; negli &lt;b&gt;EPUB&lt;/b&gt;&lt;/a&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;, per controllare e modificare lo stile di una pagina in base ai nostri gusti. Tornerò adesso&amp;nbsp;sull&#39;argomento&amp;nbsp; dedicandovi però più spazio, in una guida che, almeno nelle mie intenzioni, dovrebbe essere più chiara e completa della precedente introduzione. Non escludo che il risultato sarà un bignami di CSS, ma staremo a vedere. Argomento di oggi (e non solo di oggi) è dunque: come usare il CSS in uno EPUB.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come ho ripetuto fino alla nausea, uno EPUB è fondamentalmente un sito web, compresso e impacchettato fino a sembrare un libro: i vari capitoli di uno EPUB sono altrettante pagine in formato &lt;b&gt;HTML&lt;/b&gt;, oppure &lt;b&gt;XHTML&lt;/b&gt;, ossia il formato di una normale pagina web, e come ogni normale pagina web possono essere formattati utilizzando un foglio di stile CSS. Un foglio di stile CSS è un normale file di testo, con estensione &lt;b&gt;.CSS&lt;/b&gt;, al cui interno è raccolta una lista di regole di stile, che dovranno essere applicate alla pagina che le utilizza, al momento della sua apertura in un browser: quale font usare per il testo, quale colore, quali dimensioni avranno i caratteri, quando spazio lasciare sui margini, quale immagine caricare come sfondo della pagina, se ce ne deve essere una, e così via. Tutto ciò che rende una pagina bella (o brutta) da vedere, in pratica, raccolto e organizzato in un file a parte, che dovrà poi essere aggiunto alla pagina. Ma non è sempre stato così.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Alla fine del ventesimo secolo, quando il web era giovane, libero e selvaggio, gli animi erano coraggiosi, gli uomini erano veri uomini, le donne erano vere donne e le piccole creature pelose di Alpha Centauri erano vere piccole creature pelose di Alpha Centauri (per citare la &lt;b&gt;Guida Galattica&lt;/b&gt;), stile e contenuto erano mischiati assieme, in una poltiglia difficilmente distinguibile. Nella pancia delle pagine, ossia tra i tag &lt;b&gt;&amp;lt;body&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;/body&amp;gt;&lt;/b&gt;, il testo da mostrare sullo schermo era intervallato da tag, che dicevano ai browser come dovesse essere formattato questo testo: c’erano tag che definivano il tipo di font, la sua dimensione, il suo colore, ma anche il colore dello sfondo, la larghezza e il colore delle caselle di una tabella, e così via. Un periodo in cui i web designer finivano spesso vittime di tremende crisi depressive e affondavano negli abissi bui dell’alcolismo, insomma, colti dallo sconforto mentre cercavano di annidare una tabella&amp;nbsp;nell&#39;altra,&amp;nbsp;nel vano tentativo di impaginare il testo in modo decente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A risolvere questo pasticciaccio brutto è arrivato il CSS.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il &lt;b&gt;&lt;a href=&quot;http://www.w3.org/Style/CSS/&quot;&gt;CSS&lt;/a&gt;&lt;/b&gt; ha portato con sé una nuova e più razionale filosofia di progettazione, per le pagine web: una separazione netta tra il contenuto e lo stile. Nella pancia della pagina, ossia tra i tag &amp;lt;body&amp;gt; e &amp;lt;/body&amp;gt;, doveva restare soltanto il contenuto, cioè testo, immagini e altro: in pratica, il &lt;i&gt;cosa&lt;/i&gt; vediamo. Tutto ciò che serviva a definire il &lt;i&gt;come&lt;/i&gt; lo vediamo, invece, doveva essere spostato altrove: nella parte alta della pagina, ossia tra i tag &lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;/head&amp;gt;&lt;/b&gt;, o meglio ancora in un file separato, da caricare assieme alla pagina. In questo file separato potevamo elencare i vari tag utilizzati nella pagina, assieme alle regole di stile da applicare al contenuto di quei tag; in fase di caricamento, il browser avrebbe controllato di volta in volta le regole, per applicarle alla visualizzazione dei tag, a mano a mano che li incontrava. Il file con la lista di tag e di regole è il foglio di stile CSS.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La progettazione di siti web ha poi proseguito su questa strada, aggiungendo un terzo elemento, cioè il funzionamento: se il semplice HTML contiene il cosa vediamo e il CSS si occupa del come lo vediamo, il &lt;b&gt;JavaScript&lt;/b&gt; si occupa di far fare qualcosa a quella pagina. Siccome al momento gli EPUB supportano il JavaScript in teoria, ma in pratica siamo ancora abbastanza lontani dal poterlo usare decentemente (per fortuna, aggiungo io, ma questo è solo un parere personale), possiamo ignorare questo elemento e occuparci solo degli altri due.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Primo problema: come aggiungere un foglio di stile CSS a una pagina? Le possibilità sono due: scriverlo direttamente nella pagina, oppure scriverlo in un file a parte e poi dire alla pagina di caricare questo file. Il risultato finale sarà lo stesso, in entrambi i casi, ma le due soluzioni non sono equivalenti, sul piano del lavoro necessario: la scelta più razionale è quella di creare un file a parte, con tutto il CSS necessario per il nostro libro, e poi inserire un link a quel file in ogni pagina del libro, per cui vi invito caldamente a seguirla. Se poi un capitolo avrà bisogno di formattazioni particolari, perché magari contiene porzioni di testi in un altro alfabeto, allora potrete aggiungere una piccola estensione al CSS direttamente in quella pagina, per modificare le regole generali e adattarle al contesto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ipotizziamo allora che abbiate deciso di utilizzare un file esterno, in cui mettere tutto il CSS necessario, e lo abbiate salvato come “&lt;b&gt;Stile.css&lt;/b&gt;” nella cartella &lt;b&gt;Styles&lt;/b&gt; del vostro EPUB. Come fare ad aggiungerlo a ogni pagina? Con un poco di olio di gomito e di pazienza. Con &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/02/sigil-070-verso-lo-epub-3.html&quot;&gt;Sigil&lt;/a&gt;&lt;/b&gt;, apriamo a una a una le pagine del nostro EPUB (ossia quelle contenute nella cartella &lt;b&gt;Text&lt;/b&gt;) e passiamo alla Vista Codice. Nella parte alta di ogni pagina, cerchiamo il tag &lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt; e, al suo interno, il tag &lt;b&gt;&amp;lt;title&amp;gt;&lt;/b&gt;: una volta localizzato, nello spazio tra &lt;b&gt;&amp;lt;/title&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;/head&amp;gt;&lt;/b&gt; inseriamo un codice di questo tipo&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;link href=&quot;../Styles/Stile.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa riga dirà al lettore di caricare un determinate file, ogni volta che deve visualizzare questa pagina; lo informerà inoltre sulla posizione in cui si trova il file (la parte che segue l’attributo &lt;b&gt;href&lt;/b&gt;) e specificherà anche a cosa serva il file (la parte che segue l’attributo &lt;b&gt;rel&lt;/b&gt;). Ovviamente, se il nostro foglio di stile ha un nome diverso, al posto di “&lt;b&gt;Stile.css&lt;/b&gt;” dovremo scrivere il nome corretto del file, qualunque esso sia.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se la pagina non è in &lt;b&gt;XHTML&lt;/b&gt;, ma in &lt;b&gt;HTML&lt;/b&gt;, il codice sarà quasi identico, ma un poco più corto:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;link b=&quot;&quot; gt=&quot;&quot; href=&quot;../Styles/Stile.css&quot; rel=&quot;stylesheet&quot;&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per sapere se la pagina sia in XHTML o in HTML, è sufficiente guardare la sua estensione, che ci è indicate chiaramente da Sigil.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Utilizzare un file esterno è la scelta più semplice e razionale, per risparmiarci fatiche inutili, ma niente e nessuno ci vieta di inserire il CSS direttamente nella pagina. In questo caso, nello spazio tra &amp;lt;/title&amp;gt; e &amp;lt;/head&amp;gt; dovremo aggiungere due tag, ossia &lt;b&gt;&amp;lt;style type=”text/css”&amp;gt;&lt;/b&gt; e &lt;b&gt;&amp;lt;/style&amp;gt;&lt;/b&gt;: fra i due tag scriveremo poi tutte le regole che vogliamo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Adesso che sappiamo come aggiungere un foglio di stile CSS alla nostra pagina, dovremo preoccuparci di preparare la nostra pagina ad accogliere il CSS, ottimizzandola cioè per la formattazione, ed è ciò che vedremo &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-struttura-della.html&quot;&gt;la prossima volta&lt;/a&gt;. Conclusa questa fase introduttiva, cominceremo a scrivere regole in CSS, per formattare la nostra pagina.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/4152298429142345853/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-introduzione.html#comment-form' title='3 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4152298429142345853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4152298429142345853'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/guida-al-css-per-epub-introduzione.html' title='Guida al CSS per EPUB - Introduzione'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-2187422213214043147</id><published>2013-05-12T12:39:00.001+02:00</published><updated>2013-05-12T12:39:28.815+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colorzilla"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="gradienti"/><category scheme="http://www.blogger.com/atom/ns#" term="grafica"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="ultimate css"/><title type='text'>Usare un gradiente di colore nel CSS</title><content type='html'>&lt;span style=&quot;text-align: justify;&quot;&gt;Un gradiente è una transizione continua e graduale che conduce da un colore di partenza a un colore di arrivo: in altri termini, è un colore che sfuma a poco a poco in un altro colore. Esempi di gradienti si possono trovare più o meno ovunque nella interfaccia grafica di computer e altri strumenti analoghi: la &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Apple&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; li usa più o meno per qualsiasi bottone compaia sullo schermo di uno dei suoi prodotti, ma più in generale sembrano andare molto di moda tra i grafici di ogni genere.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Più o meno qualsiasi programma di grafica (&lt;b&gt;Photoshop&lt;/b&gt;, &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2010/12/gimp-lalternativa-gratuita-photoshop.html&quot;&gt;GIMP&lt;/a&gt;&lt;/b&gt;, eccetera) include una funzione per produrre gradienti, specificando un colore di partenza e un colore di arrivo, ma i gradienti sono supportati anche dalle ultime specifiche del &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/03/come-usare-fogli-di-stile-css-negli.html&quot;&gt;CSS&lt;/a&gt;&lt;/b&gt; e possono essere utilizzati per colorare più elementi in una pagina web: lo sfondo della pagina stessa, i pulsanti, eccetera. Per esempio, se vogliamo che un elemento abbia un gradiente come colore di sfondo, nel foglio di stile CSS gli assegneremo una proprietà di questo tipo:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;background: linear-gradient(rgb(229,76,16), rgb(173,54,8));&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
dove &lt;b&gt;rgb(229,76,16)&lt;/b&gt; e &lt;b&gt;rgb(173,54,8)&lt;/b&gt; sono il colore di partenza e il colore di arrivo della gradazione, espressi come “miscela” di rosso, verde e blu, i tre colori fondamentali. Leggendo questa regola nel foglio di stile, il nostro browser assegnerà&amp;nbsp;all&#39;elemento&amp;nbsp;selezionato uno sfondo, in cui il primo colore indicato sfumerà gradualmente nel secondo. In teoria. In pratica, non è detto che ciò accada.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sebbene nelle specifiche del CSS siano presenti i gradienti e i valori da attribuire a un elemento, per ottenere un gradiente, non tutti i browser li supportano. Il che è normale nel caso dei browser più vecchi, prodotti prima che i gradienti fossero introdotti nel CSS (se vi aspettate di farli visualizzare a &lt;b&gt;Internet Explorer 6&lt;/b&gt;, andrete incontro ad amare delusioni), ma anche nei browser più recenti non è sempre garantito il supporto dei gradienti; talvolta, inserire il valore &lt;b&gt;linear-gradient&lt;/b&gt; non è sufficiente, ma bisogna aggiungere un prefisso, specifico per ogni famiglia di browser. In altri termini, ottenere su ogni browser la grafica che abbiamo progettato può essere un lavoro discretamente seccante, se ci sono di mezzo i gradienti, perché è possibile che si debba scrivere il triplo del codice normalmente necessario. Per questo e altri motivi, esistono strumenti di supporto, che aiutano nella generazione del codice necessario per un gradiente e si possono occupare al posto nostro (se così vogliamo) di renderlo compatibile con la maggior parte dei browser in circolazione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.colorzilla.com/gradient-editor/&quot;&gt;Ultimate CSS Gradient Generator&lt;/a&gt;&lt;/b&gt; è uno di questi strumenti, utilizzabile online sulla pagina del sito di &lt;b&gt;Colorzilla&lt;/b&gt; e disponibile anche in due estensioni, per &lt;b&gt;Firefox&lt;/b&gt; e &lt;b&gt;Google Chrome&lt;/b&gt;. Come si può intuire dal nome assai umile e modesto, questo semplice programma si offre di generare per noi il codice da inserire nel foglio di stile CSS, per ottenere il tipo di gradiente da noi selezionato. Il suo funzionamento si può riassumere così: scegliamo il colore di partenza, il colore di arrivo e gli eventuali colori intermedi, poi indichiamo la direzione in cui dovrà avvenire la sfumatura (orizzontale o verticale) e il programma genererà il codice corrispondente. Una volta finito, basterà copiare il codice e incollarlo&amp;nbsp;all&#39;interno&amp;nbsp;della regola CSS in cui dovrà essere utilizzato. Ma vediamo più in dettaglio.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa è la pancia della pagina, dove troviamo i vari comandi a nostra disposizione:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk1pYV1Nwa2ktd9GgD9XpTUcKpJF1pDlnDi4Tfc0op5_CNUE75Jd0hw8nQvEZStPY6F7P55lgMzmuSEPG7uF6ROYQQ9_1nflZsLEIeGtCyGdGJdWXXiKQhRrmdQFQsXkHr94HmvncdxWE/s1600/CSS.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk1pYV1Nwa2ktd9GgD9XpTUcKpJF1pDlnDi4Tfc0op5_CNUE75Jd0hw8nQvEZStPY6F7P55lgMzmuSEPG7uF6ROYQQ9_1nflZsLEIeGtCyGdGJdWXXiKQhRrmdQFQsXkHr94HmvncdxWE/s320/CSS.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
In alto a sinistra, sotto la etichetta &lt;b&gt;Presets&lt;/b&gt;, ci è proposta una lista di modelli di gradienti, tra cui possiamo scegliere quello più simile al nostro progetto: sceglierne uno non è indispensabile, ma ci potrebbe far risparmiare tempo, se riusciamo a trovarne uno che corrisponda alle nostre idee (solo la struttura, non gli abbinamenti di colore: quelli li sceglieremo a parte).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In alto a destra, sotto la etichetta &lt;b&gt;Preview&lt;/b&gt;, vediamo un’anteprima del nostro gradiente, ma soprattutto abbiamo la possibilità di selezionare la direzione del gradiente (sfumatura in orizzontale, in verticale, in diagonale o dal centro verso l’esterno).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Scegliere i colori è il passaggio fondamentale. È possibile che quelli proposti dai modelli del preset ci possano andare bene, ma molto più probabilmente vorremo utilizzare altri colori: li possiamo selezionare e impostare utilizzando tutti quegli altri comandi misteriosi che appaiono nella colonna di sinistra della pagina, cioè la barra colorata, &lt;b&gt;Stops&lt;/b&gt; e &lt;b&gt;Adjustments&lt;/b&gt;. Partiamo dalla barra colorata.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La bara colorata ha due gruppi di puntatori, che possiamo far scorrere: un gruppo nella parte superiore e uno nella parte inferiore. Il gruppo nella parte superiore serve a &amp;nbsp;regolare il livello di opacità di un colore (quanto è o non è trasparente), mentre il gruppo nella parte inferiore serve a scegliere il colore. Per avere un gradiente, servono almeno due colori, uno di partenza e uno di arrivo: per decidere il colore di partenza, clicchiamo sulla freccetta in basso a sinistra nella barra: a questo punto, vedremo che nel riquadro &lt;b&gt;Stops&lt;/b&gt;, subito sotto, alla voce &lt;b&gt;Color&lt;/b&gt; è apparso un colore, ossia quello di base per il modello da noi scelto. Se lo vogliamo cambiare, clicchiamo su quel colore e scegliamone un altro dalla tavola che ci apparirà. Lo stesso procedimento lo ripeteremo poi anche per il secondo colore e per gli eventuali colori intermedi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Accanto a Color, sempre nel riquadro Stops, troviamo anche una voce &lt;b&gt;Location&lt;/b&gt;, accompagnata da una percentuale: indica la posizione in cui si troverà quel colore, nel nostro gradiente. 1% è il colore di partenza, 100% è il colore di arrivo, percentuali intermedie indicano posizioni corrispondenti (un colore che ha 50% come Location, ad esempio, sarà raggiunto a metà della gradazione). Usando questo strumento, possiamo scegliere un colore di partenza, uno di arrivo e fino a due sfumature intermedie, se lo vogliamo. A ogni modo, possiamo anche limitarci a inizio e fine, senza tappe intermedie.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Utilizzando le frecce sulla parte alta della barra, come ho detto, si determina il livello di opacità per un colore: ci serviranno se vogliamo un gradiente che guadagna o perde trasparenza nel corso del suo passaggio da un colore&amp;nbsp;all&#39;altro&amp;nbsp; in questo caso, dopo aver cliccato su una freccia, dovremo indicare il livello di opacità, in percentuale: 100% è un colore completamente opaco, 1% è un colore completamente trasparente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nella colonna di destra della pagina, infine, troviamo il codice da copiare. A mano a mano che impostiamo il nostro gradiente, anche il codice cambierà corrispondentemente: una volta concluso, quando siamo soddisfatti del nostro lavoro, basterà copiare tutto quanto e incollarlo dentro a una regola del foglio di stile CSS, dove i gradiente dovrà essere applicato. Se vogliamo però che il nostro gradiente sia visibile anche su &lt;b&gt;Internet Explorer 9&lt;/b&gt;, che per ragioni misteriose non supporta il normale gradiente in CSS, dovremo selezionare la opzione &lt;b&gt;IE9 Support&lt;/b&gt;, che compare subito sotto il riquadro col codice: questa ci fornirà anche una porzione extra di HTML,ossia&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;code&gt;&lt;b&gt;&amp;lt;!--[if gte IE 9]&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;b&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;lt;style type=&quot;text/css&quot;&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; .gradient {&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filter: none;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;lt;/style&amp;gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;lt;![endif]--&amp;gt;&lt;/div&gt;
&lt;/b&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Dobbiamo copiarla e incollarla nello &lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt; delle pagine in cui il gradiente dovrà essere utilizzato; più precisamente, incolliamola dopo il punto in cui abbiamo inserito il foglio di stile.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/2187422213214043147/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/usare-un-gradiente-di-colore-nel-css.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2187422213214043147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/2187422213214043147'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/usare-un-gradiente-di-colore-nel-css.html' title='Usare un gradiente di colore nel CSS'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk1pYV1Nwa2ktd9GgD9XpTUcKpJF1pDlnDi4Tfc0op5_CNUE75Jd0hw8nQvEZStPY6F7P55lgMzmuSEPG7uF6ROYQQ9_1nflZsLEIeGtCyGdGJdWXXiKQhRrmdQFQsXkHr94HmvncdxWE/s72-c/CSS.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-7136050877787395009</id><published>2013-05-07T20:04:00.002+02:00</published><updated>2013-10-12T14:06:17.102+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="incorporare font"/><title type='text'>Come funziona Google Fonts</title><content type='html'>&lt;b style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://www.google.com/fonts/&quot;&gt;Google Fonts&lt;/a&gt;&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; è l’ennesimo servizio extra, offerto da &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Google&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;, dopo &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Google Mail&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; (per gli amici &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Gmail&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;), &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Google Maps&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;, &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Google Docs&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;, &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Google Translate&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; e Google eccetera eccetera. Nello specifico, questo servizio è una collezione di font (al momento oltre seicento), a disposizione di chiunque voglia utilizzarli nel proprio sito, senza doversi preoccupare troppo di litigare col &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;CSS&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;: per certi versi, lo possiamo vedere come un discount per font.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’idea di base, così come il suo funzionamento, è molto semplice: accediamo al sito del servizio, passiamo in rassegna la lista di font, alla ricerca di quelli che più ci piacciono, indichiamo quali vogliamo usare nel nostro sito e Google confezionerà per noi due righe di codice, da aggiungere alle nostre pagine. Questo codice sarà un link a un foglio di stile esterno, nel quale sono indicate tutte le specifiche dei font da noi scelti; quando un visitatore apre una pagina, su cui noi abbiamo inserito il codice, Google si occuperà di inviare i font. Niente fogli di stile CSS da modificare per incorporare font, insomma: solo due righe da aggiungere a ogni pagina.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjipFGL9mCKFVivTqoX35c4Mgd7hdpS8B0cI02D4sHHGVcrOYHn-aCUvtpvcYyE0652JszBpyaw1Xn1bzottYvxNdcH0n6sgLzuynPTlcdQ-qCUvsEPWetnPxE9K6dEfqqVBAwgpxUdjNs/s1600/Google+Fonts.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjipFGL9mCKFVivTqoX35c4Mgd7hdpS8B0cI02D4sHHGVcrOYHn-aCUvtpvcYyE0652JszBpyaw1Xn1bzottYvxNdcH0n6sgLzuynPTlcdQ-qCUvsEPWetnPxE9K6dEfqqVBAwgpxUdjNs/s320/Google+Fonts.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come possiamo vedere sopra, il sito del servizio è in inglese e ha una grafica molto spartana, in linea con la tradizione di Google. La parte centrale della pagina è occupata da una vetrina, in cui ci è mostrato l’aspetto dei vari font, con una frase come anteprima: il senso della frase può essere ignorato, guardiamo solo come si presenta.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Possiamo studiare tutti i font disponibili facendo scorrere verso il basso il contenuto della vetrina, ma è una operazione che potrebbe diventare presto alquanto noiosa, dato che sono 625 (al momento, ma è un numero che aumenterà); molto più semplice e veloce è utilizzare la colonna sinistra della pagina, dove troviamo un riquadro di ricerca e una serie di opzioni, mediante le quali possiamo filtrare le categorie di font. Alla fine della colonna sinistra, peraltro, è presente anche la voce “&lt;b&gt;Show all styles&lt;/b&gt;”, che ci mostrerà tutte le varianti disponibili per ogni font: le varianti possibili sono normale, corsivo, grassetto, piccolo, eccetera, solo alcuni dei quali saranno inizialmente visibili in anteprima, nella vetrina.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se conosciamo già il nome del font che stiamo cercando, scriviamolo nel riquadro di ricerca. Se non lo conosciamo, o vogliamo semplicemente guardare cosa abbia da offrirci Google nei vari settori, possiamo procedere coi filtri.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il menu per categoria, (cliccando su “&lt;b&gt;All categories&lt;/b&gt;”), ci permette di filtrare i risultati in base alle categorie in cui i font sono suddivisi: &lt;b&gt;Serif&lt;/b&gt;, cioè caratteri con piccole decorazioni (ad esempio &lt;b&gt;Times New Roman&lt;/b&gt;), &lt;b&gt;Sans-Serif&lt;/b&gt;, cioè caratteri senza decorazioni (ad esempio &lt;b&gt;Arial&lt;/b&gt;), &lt;b&gt;Display&lt;/b&gt;, &lt;b&gt;Handwriting&lt;/b&gt; e così via.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le voci successive ci permettono di filtrare i font in base alle caratteristiche fisiche che possiedono. &lt;b&gt;Thickness&lt;/b&gt; li ordina in base alla larghezza delle linee che li compongono, &lt;b&gt;Slant&lt;/b&gt; li ordina in base alla inclinazione dei caratteri, &lt;b&gt;Width&lt;/b&gt; in base alla grandezza complessiva del font e a quanto “riempie” la linea di testo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Scripts&lt;/b&gt;, infine, ci permette di cercare i font per alfabeto: tutti i font disponibili per l’alfabeto latino, tutti quelli per l’alfabeto greco, russo, arabo, eccetera.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nella vetrina centrale, sopra e sotto la frase di esempio, ogni font presenta anche altri elementi: sopra il font troviamo il tipo di stile usato&amp;nbsp;nell&#39;anteprima&amp;nbsp;(di solito &lt;b&gt;normal&lt;/b&gt;, ossia la versione di base), mentre sotto la fase ci sono molti altri dati e pulsanti, che dovremo esaminare nello specifico.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La prima cosa che troviamo è il nome del font: &lt;b&gt;Roboto Slab&lt;/b&gt;, &lt;b&gt;Meie Script&lt;/b&gt;, eccetera (i nomi sono quelli dei primi due nella immagine soprastante, non me li sto inventando). A seguire, un numero ci informa di quanti stili sono disponibili per questo font, dopodiché troviamo il nome dell’autore. Fin qui, sono dati interessanti, ma di poca utilità pratica, per chi li vuole inserire nella propria pagina; i pulsanti successivi cambiano le cose.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il primo pulsante che troviamo sotto a un font, sulla destra, è un quadrato con una freccia verso il basso: cliccandolo, possiamo vedere tutti gli stili disponibili per quel font. Ovviamente, se un font possiede un solo stile, questo pulsante non ci sarà.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il secondo pulsante (quadrato con freccia che punta a destra) è “&lt;b&gt;Quick Use&lt;/b&gt;”: cliccandolo, si aprirà un pannello, tramite cui potremo ottenere rapidamente il codice per aggiungerlo alla nostra pagina. Del pannello parlerò più avanti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il terzo pulsante, “&lt;b&gt;Pop out&lt;/b&gt;”, ci offre una panoramica più completa sul font, mostrandoci tutte le lettere disponibili e fornendoci altre informazioni sul font. È sempre utile cliccarlo, prima di scegliere, giusto per evitare brutte sorprese, come la mancanza di una particolare lettera: un font che non prevede vocali accentate, ad esempio, può essere utile per la lingua inglese, ma potrebbe causare qualche problema in un testo in italiano, dove le lettere accentate sono parecchie.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ultimo tasto, grande, grosso e blu, è “&lt;b&gt;Add to collection&lt;/b&gt;”, che ci introduce a un secondo utilizzo del sito: oltre a pescare un singolo font e andarcene col nostro codice, possiamo anche raccogliere vari font, inserirli nel carrello come se fossimo al supermercato e poi, alla fine della spesa, farci dare un codice completo da Google, inclusivo di tutti i font che abbiamo scelto. Cliccando “&lt;b&gt;Add to collection&lt;/b&gt;”, inseriamo il font nel nostro carrello e procediamo con lo shopping. Non c’è limite al numero di font che possiamo prendere, se non il buon gusto: un sito con font diversi in ogni pagina potrebbe non essere gradito a tutti i visitatori.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La nostra collezione di font è visibile nella parte bassa del sito: a mano a mano che aggiungiamo font, il numero accanto a font famiglie aumenterà e potremo osservare nei dettagli il contenuto del nostro carrello della spesa, cliccando sulla freccia che vediamo a sinistra della scritta. Aprendo i riquadro con la collezione, peraltro, ci appariranno altri tre pulsanti, in basso sulla destra: &lt;b&gt;Choose&lt;/b&gt;, &lt;b&gt;Review&lt;/b&gt; e &lt;b&gt;Use&lt;/b&gt;. Review ci permette di fare un confronto tra i font selezionati, oltre a mostrarci altre informazioni sui font, ma il più importante è Use: cliccandolo, arriveremo al pannello cui accennavo in precedenza. Adesso parlerò del pannello.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il pannello corrisponde&amp;nbsp;all&#39;ultima&amp;nbsp;fase di personalizzazione dei font selezionati, prima di copiare il codice da inserire nelle pagine in cui li useremo. Le prime due sezioni di questo pannello sono appunto dedicate alla scelta dello stile (corsivo, grassetto e così via, a seconda degli stili disponibili per ogni font) e alla scelta del set di caratteri, a seconda del tipo di alfabeto che ci serve. Una volta selezionato tutto, la terza sezione ci fornisce il codice da inserire: questo codice è un link, che punta al foglio di stile contenente le indicazioni sul tipo di font e lo dovremo copiare nella sezione &lt;b&gt;&amp;lt;head&amp;gt;&lt;/b&gt; delle pagine in cui quel font sarà usato. La quarta ultima sezione, infine, ci mostra come dovrà essere utilizzato il font nel foglio di stile scritto da noi; il codice fornito da Google renderà soltanto disponibile il font, starà poi a noi indicare nel foglio di stile CSS dove e come dovrà essere usato, proprio come facciamo coi font in dotazione.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/7136050877787395009/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/come-funziona-google-fonts.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7136050877787395009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/7136050877787395009'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/come-funziona-google-fonts.html' title='Come funziona Google Fonts'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjipFGL9mCKFVivTqoX35c4Mgd7hdpS8B0cI02D4sHHGVcrOYHn-aCUvtpvcYyE0652JszBpyaw1Xn1bzottYvxNdcH0n6sgLzuynPTlcdQ-qCUvsEPWetnPxE9K6dEfqqVBAwgpxUdjNs/s72-c/Google+Fonts.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-50264184937588696</id><published>2013-05-02T11:31:00.000+02:00</published><updated>2013-05-02T11:31:00.247+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="anonimato"/><category scheme="http://www.blogger.com/atom/ns#" term="anonymouse"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="falsa email"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="sicurezza in rete"/><category scheme="http://www.blogger.com/atom/ns#" term="thepiratebay"/><category scheme="http://www.blogger.com/atom/ns#" term="torrent"/><title type='text'>Navigazione ed email anonime con Anonymouse</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dopo l’excursus sui &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/04/breve-guida-ai-tipi-di-cookies.html&quot;&gt;cookies del precedente post&lt;/a&gt;, tornerò oggi a dedicarmi a privacy e anonimato, due temi molto vicini&amp;nbsp;all&#39;utilizzo&amp;nbsp;e alla gestione dei cookies: nello specifico, lo farò parlando di un servizio per la navigazione anonima e per la spedizione di e-mail anonime, attivo già da parecchi anni ma, temo, non molto famoso. Questo servizio è &lt;b&gt;Anonymouse&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://anonymouse.org/&quot;&gt;Anonymouse&lt;/a&gt;&lt;/b&gt; è prima di tutto un sito e attraverso quel sito possiamo utilizzare tutti i suoi servizi, senza bisogno di installare programmi o configurare il browser in modo strano e complicato. Basta accedere al sito, entrare nella sezione che ci interessa e fare ciò che dobbiamo fare.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNo1HnwvVsUmqGdV9h8Ybd9JG4KGYAbVLbz8hl8et55CaWucSa7RHQ-43fgtqZzjCj6yEzN6AtSYMlIAHZp0BzZ-eoYgH6al4pzbCiG28pxzdW-Y9bnHU487SVdQ095OWOQa35RxNDMjs/s1600/Anonymouse+a.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNo1HnwvVsUmqGdV9h8Ybd9JG4KGYAbVLbz8hl8et55CaWucSa7RHQ-43fgtqZzjCj6yEzN6AtSYMlIAHZp0BzZ-eoYgH6al4pzbCiG28pxzdW-Y9bnHU487SVdQ095OWOQa35RxNDMjs/s320/Anonymouse+a.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La pagina iniziale del sito, riprodotta qui sopra, potrebbe non ispirare molta fiducia e sollevare più di un dubbio sulla sicurezza e&amp;nbsp;sull&#39;affidabilità&amp;nbsp;del servizio; grafica a parte, però, il sito funziona ed è mediamente affidabile. Non lo utilizzerei per questioni di vita o di morte, sia chiaro, ma per avere un buon anonimato in circostanze normali è molto più comodo (e molto più veloce) di &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/02/come-utilizzare-tor-browser.html&quot;&gt;Tor Browser&lt;/a&gt;&lt;/b&gt;, soprattutto se dobbiamo soltanto collegarci a un paio di siti in modo “protetto”. Vedremo poi alcuni esempi di questo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per procedere oltre, dobbiamo cliccare su una delle due bandiere, a seconda della lingua e del paese che preferiamo: arriveremo alla stessa pagina, ma cambierà la lingua in cui i testi saranno scritti. Se scegliamo l’inglese, la pagina si presenterà così:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxX72zdIoWb44wvyxlKyw21G1yAn6CLMIJdA0tW0BUk6fPqRbdrhJ3d182ImZqnb0kECWmSt3x0yB-O_9FUI7pcQB-X7dEmLP5_WtZGozDlP6uE_UIbVIMSsyosSWWzXZ3-DosICTReI/s1600/Anonymouse+b.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXxX72zdIoWb44wvyxlKyw21G1yAn6CLMIJdA0tW0BUk6fPqRbdrhJ3d182ImZqnb0kECWmSt3x0yB-O_9FUI7pcQB-X7dEmLP5_WtZGozDlP6uE_UIbVIMSsyosSWWzXZ3-DosICTReI/s320/Anonymouse+b.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Siamo già&amp;nbsp;all&#39;interno&amp;nbsp;di uno dei tre servizi offerti, ossia &lt;b&gt;AnonWWW&lt;/b&gt;, per la navigazione anonima. A questo punto, tutto funziona come un qualsiasi altro web-proxy , ossia un proxy con cui si interagisce attraverso un sito web, senza bisogno di impostarne i dati&amp;nbsp;all&#39;interno&amp;nbsp;del nostro browser. Di fatto, Anonymouse è un proxy, ma con una maggiore attenzione&amp;nbsp;all&#39;anonimato&amp;nbsp;rispetto a un &lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/01/proxy-cose-e-come-funziona.html&quot;&gt;proxy&lt;/a&gt; tradizionale e una minore attenzione alla crittografia, almeno nella sua versione gratuita. Per utilizzarlo, scriviamo o copiamo nel riquadro l’indirizzo del sito che vogliamo raggiungere e premiamo il tasto “&lt;b&gt;Invio&lt;/b&gt;” (oppure clicchiamo su “&lt;b&gt;surf anonymously&lt;/b&gt;”, come preferiamo). Dopo un breve caricamento, si aprirà la pagina che volevamo raggiungere.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Cosa ha fatto di particolare Anonymouse? Invece di connettersi direttamente al sito, ha svolto un normale lavoro da proxy, ossia ha inviato la nostra richiesta al suo server, la ha ripulita da ogni nostro dato personale e infine l’ha girata al sito che volevamo raggiungere. In questo modo, a collegarsi al sito non saremo noi direttamente, ma sarà il server di Anonymouse; di conseguenza, anche le comunicazioni che il sito ci invierà saranno prima di tutto filtrate da Anonymouse e poi inoltrate a noi. Fungendo da intermediario, il server di Anonymouse blocca lo scambio di dati personali tra noi e il sito di destinazione, garantendoci così un forma di anonimato: non un anonimato assoluto e impossibile da aggirare, sia chiaro, perché un anonimato del genere non esiste, ma è più che sufficiente per circostanze normali. Usatelo pure per collegarvi ai siti porno, insomma, ma non affidatevi ad Anonymouse se state pensando di ricattare il vostro capo o svolgere altre azioni ad alto rischio per la propria incolumità: sarete anche anonimi per il sito di destinazione, ma non lo sarete per il vostro provider (ossia l’azienda che vi fornisce il servizio di connessione). Solo la versione a pagamento di Anonymouse vi fornisce qualche tutela sul fronte-provider, garantendo anche una connessione criptata.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Pur nei suoi limiti, Anonymouse presenta comunque una discreta utilità per gli utenti italiani, soprattutto quelli colpiti dalla ennesima caccia alle streghe in nome della proprietà intellettuale e del copyright, ossia per gli orfani di &lt;i&gt;torrent&lt;/i&gt; e della cara, vecchia baia dei pirati. Come dicevo in precedenza, Anonymouse è praticamente un proxy, o almeno svolge funzioni sufficientemente simili a un proxy standard, da permetterci di assimilarlo a uno di essi. Trattandosi dunque di un proxy, lo possiamo utilizzare anche per connetterci a siti che, in condizioni normali, sarebbero inaccessibili dal nostro paese: un esempio tra tutti, i siti legati a torrent e simili. Attraverso Anonymouse, ad esempio, possiamo rapidamente accedere a &lt;b&gt;&lt;a href=&quot;http://anonymouse.org/cgi-bin/anon-www.cgi/http://thepiratebay.sx/&quot;&gt;ThePirateBay&lt;/a&gt;&lt;/b&gt;, giusto per nominarne uno, ma anche a molti altri siti di torrent. Non è l’unico modo per accedervi, sia chiaro, ma è sempre meglio avere uno strumento in più per farlo, piuttosto che uno in meno.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Oltre al servizio di navigazione, però, Anonymouse offre anche altri due servizi: &lt;b&gt;AnonEmail&lt;/b&gt; e &lt;b&gt;AnonNews&lt;/b&gt;. A cosa servano di preciso, dovrebbe essere chiaro anche solo leggendo i nomi: AnonEmail permette di inviare e-mail anonime, mentre AnonNews permette di accedere e postare in modo anonimo sui newsgroups. Entrambi hanno una interfaccia parecchio simile, per non dire identica, per cui mi limiterò a postare una immagine di AnonEmail, a titolo di esempio (anche perché è il servizio che, probabilmente, interesserà al maggior numero di possibili lettori).&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtjIQNSeV4o_QDCUNj0m0eXHxNk7EXMSBBmqUsLe-iQTowV4cJWZNLQw0Y0eLW5t56fRirKa7S6N_DJYuUTdBPbUmlvCEHDbYiN-HVwfbDE_vtytI2ddAjT_p7xuQZamOUCARXqd-1WBU/s1600/Anonymouse+c.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtjIQNSeV4o_QDCUNj0m0eXHxNk7EXMSBBmqUsLe-iQTowV4cJWZNLQw0Y0eLW5t56fRirKa7S6N_DJYuUTdBPbUmlvCEHDbYiN-HVwfbDE_vtytI2ddAjT_p7xuQZamOUCARXqd-1WBU/s320/Anonymouse+c.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il suo utilizzo è molto semplice: nel campo “&lt;b&gt;To&lt;/b&gt;” scrivete l’indirizzo del destinatario, nel campo “&lt;b&gt;Subject&lt;/b&gt;” scrivete il titolo della e-mail e nel campo “&lt;b&gt;Message&lt;/b&gt;” scrivete il contenuto del messaggio. Alla fine, cliccate su “&lt;b&gt;Send anonymously&lt;/b&gt;” per spedire il tutto. Niente di diverso da un normale servizio di e-mail basato sul web. Nel caso di AnonNews, a cambiare è soltanto il primo campo, dove dovrete scrivere l’indirizzo del newsgroup su cui volete postare, invece del destinatario della e-mail. Il funzionamento del servizio, invece, è esattamente lo stesso che già abbiamo visto per AnonWWW: il messaggio è inviato prima al server di Anonymouse, ripulito da ogni dato che possa consentire il riconoscimento del mittente (ma NON rimuoverà il vostro nome, se avete firmato la e-mail: non bisognerebbe scrivere il proprio nome in un messaggio anonimo...) e infine inoltrato al destinatario.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nel complesso, è un buon servizio per un uso rapido e occasionale, molto buono se vogliamo accedere a un sito di torrent senza faticare troppo, ma non un servizio che consiglierei per questioni serie e vitali. Averlo a portata di mano, magari tra i “preferiti”, può comunque fare sempre comodo.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/50264184937588696/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/navigazione-ed-email-anonime-con.html#comment-form' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/50264184937588696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/50264184937588696'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/05/navigazione-ed-email-anonime-con.html' title='Navigazione ed email anonime con Anonymouse'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNo1HnwvVsUmqGdV9h8Ybd9JG4KGYAbVLbz8hl8et55CaWucSa7RHQ-43fgtqZzjCj6yEzN6AtSYMlIAHZp0BzZ-eoYgH6al4pzbCiG28pxzdW-Y9bnHU487SVdQ095OWOQa35RxNDMjs/s72-c/Anonymouse+a.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-4247495832223541528</id><published>2013-04-28T12:56:00.006+02:00</published><updated>2013-04-28T12:56:56.406+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="a cosa servono"/><category scheme="http://www.blogger.com/atom/ns#" term="anonimato"/><category scheme="http://www.blogger.com/atom/ns#" term="come funzionano"/><category scheme="http://www.blogger.com/atom/ns#" term="cookie"/><category scheme="http://www.blogger.com/atom/ns#" term="cosa sono"/><category scheme="http://www.blogger.com/atom/ns#" term="google analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="google chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="privacy"/><title type='text'>Breve guida ai tipi di cookies</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Premessa generale: questo non è un testo di cucina e i cookies di cui parlo sono quelli che, a ogni visita, i siti infilano nei browser dei propri utenti. Se uno strano scherzo di &lt;b&gt;Google&lt;/b&gt; vi ha spediti qui, mentre cercavate ricette per i biscotti, forse è il caso di passare al risultato di ricerca successivo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I cookies sono piccoli files, raramente superiori a una manciata di KB (la dimensione massima effettiva è 4095 bytes, ossia 4 KB), che il nostro browser tende ad accumulare mentre navighiamo in Rete, più o meno come un cane accumula le pulci. Questi piccoli files sono un gentile pensiero, offertoci dai siti che visitiamo, per ricordarsi del nostro. E per altri motivi, che variano da sito a sito e da cookie a cookie. Un cookie “standard” è una specie di timbro, grazie a cui un sito può riconoscerci: se non abbiamo un timbro, il sito ci vedrà come visitatori giunti lì per la prima volta e provvederà a marchiarci; se abbiamo già un timbro, il sito lo riconoscerà, saprà che siamo già passati di lì e si regolerà di conseguenza.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Un cookie, tipicamente, contiene una traccia della nostra identità, ma non solo: altri dati che possono essere memorizzati in un cookie sono i nostri dati di accesso a un sito (quando eseguite l’accesso a &lt;b&gt;Facebook&lt;/b&gt;, per esempio, un cookie si ricorderà di questo e vi manterrà nel vostro account anche quando riaprirete il browser, se non ricorderete di fare logout alla fine della sessione), le preferenze che potremmo aver impostato per un sito (lingua, fuso orario, eccetera), ma anche le pagine che abbiamo visitato in un sito, eccetera. In breve, il cookie medio contiene un riassunto della nostra “vita” sul sito che lo ha collocato: leggendo questo riassunto, il sito può adattarsi meglio alle nostre abitudini, ai nostri interessi e alle nostre richieste, rifilandoci molto spesso le pubblicità che sono più in sintonia con noi e che, di conseguenza, hanno più probabilità di farci abboccare. Al nostro accesso, il sito pesca il suo cookie del nostro browser, ne invia le informazioni al server e, in base a queste informazioni, modificherà eventualmente i contenuti da mostrarci.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può intuire, il controllo dei cookies è basilare, per chiunque sia interessato ad anonimato e privacy: coi cookies abilitati e attivi, lasciamo impronte digitali ovunque, il che potrebbe non essere ottimale, per chi si preoccupa di anonimato e privacy. I gestori di un sito potranno anche promettere di non utilizzare mai quei dati e non divulgarli mai (e di solito lo promettono, magari con le dita incrociate dietro la schiena), ma le nostre impronte digitali resteranno. Per questo motivo, i browser offrono solitamente la possibilità di controllare da quali siti vogliamo accettare cookies, quali dovranno essere bloccati, quali vogliamo cancellare, eccetera. Una buona norma sarebbe anche cancellare i cookies alla fine della sessione, ossia quando abbiamo finito di navigare, ed è una operazione che è sempre eseguita in automatico, se utilizziamo la &lt;a href=&quot;http://antrodelnerd.blogspot.it/2012/08/la-modalita-anonima-di-chrome-e-firefox.html&quot;&gt;modalità anonima&lt;/a&gt;, in incognito o comunque sia chiamata al nostro browser. Se li lasciamo nel browser, i cookies prima o poi moriranno per conto proprio, perché hanno una data di scadenza, ma spesso sarà necessario più di un anno, prima che un cookie muoia di morte naturale. Sempre che, nel frattempo, non saremo tornati su quel sito, rinnovandolo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Esistono vari tipi di cookies, ognuno deputato a una funzione particolare. Se guardiamo ad esempio la lista dei cookies memorizzati&amp;nbsp;all&#39;interno&amp;nbsp;di Google Chrome, che troviamo sotto &lt;b&gt;chrome://settings/cookies&lt;/b&gt;, per ogni dominio possiamo vedere il numero dei cookies e, cliccando su quella sezione, anche il tipo di cookie, scritto in un rettangolo di colore più chiaro. In base al nome, possiamo capire anche quale sia la sua funzione. Un caso particolare, però, è rappresentato da &lt;b&gt;Local storage&lt;/b&gt;, che non è un cookie, anche se lo troviamo elencato assieme a loro: local storage è una funzione introdotta dallo &lt;b&gt;HTML5&lt;/b&gt;, che permette a un sito di memorizzare alcuni dati sul nostro computer, per velocizzare il caricamento o per altri scopi (un gioco, ad esempio, potrebbe registrare i nostri salvataggi come local storage, per recuperarli al nostro ritorno). Eccettuato dunque Local storage, tutti gli altri nomi che vedrete saranno tipi di cookie. Alcuni dovrebbero essere sufficientemente chiari, come &lt;b&gt;language&lt;/b&gt; (provate a indovinarne la funzione), mentre altri hanno nomi alquanto criptici. Vedremo dunque di elencarne alcuni, tra i più diffusi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Uno dei maggiori produttori e distributori di cookies è sicuramente &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/01/come-bloccare-google-analytics.html&quot;&gt;Google Analytics&lt;/a&gt;&lt;/b&gt;, uno strumento molto amato e usato dai webmaster, per “misurare l’interazione degli utenti col sito”, ossia per vedere cosa fanno gli utenti mentre visitano un sito: che pagine visita l’utente X, da dove ci è arrivato, quanto tempo ci resta, cosa clicca&amp;nbsp;all&#39;interno&amp;nbsp;della pagina, eccetera. Siccome tutto ciò è effettuato attraverso il collocamento e al lettura di cookies, è inevitabile ritrovarsi con un certo numero di cookies in più, dopo aver visitato un qualsiasi sito che utilizza Google Analytics: procederò dunque con una brevissima presentazione dei principali cookies collocati da questo strumento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;_ga&lt;/b&gt;: la sua aspettativa di vita è di 2 anni e serve a distinguere fra loro gli utenti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;__utma&lt;/b&gt;: aspettativa di vita di due anni, aggiornato ogni volta che i dati sono inviati a Google Analytics, serve a distinguere gli utenti e le varie sessioni di un utente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;__utmb&lt;/b&gt;: determina le nuove sessioni di attività su un sito, ossia le varie nostre visite.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;__utmc&lt;/b&gt;: cancellato alla chiusura del browser, è un “gemello” del precedente, ma è usato per interagire con altre parti di Google Analytics.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;__utmv&lt;/b&gt;: memorizza i dati di alcune variabili, che l’utente di un sito può modificare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;__utmz&lt;/b&gt;: registra il modo in cui un utente è arrivato al sito e spesso va a braccetto coi cookies di varie pubblicità.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La sfilza di cookies che cominciano con &lt;b&gt;bb&lt;/b&gt;, come &lt;b&gt;bblastvisit&lt;/b&gt;, &lt;b&gt;bbpassword&lt;/b&gt;, &lt;b&gt;bblastactivity&lt;/b&gt;, e varianti sul tema, sono collegati ad alcuni modelli di forum, proprio come i cookies sul tema &lt;b&gt;phpbb&lt;/b&gt;, &lt;b&gt;kunena&lt;/b&gt;, e compagnia bella. Questi cookies sono impostati dai forum che visitiamo, registrando il nostro accesso, la nostra ultima attività e così via; sono anche i responsabili delle funzione che ci permettono di passare direttamente agli ultimi messaggi non letti in una discussione, oppure ci mostrano i nuovi messaggi dalla nostra ultima visita.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Allo stesso modo, anche siti come &lt;b&gt;YouTube&lt;/b&gt; utilizzano cookies per registrare le nostre preferenze, gli ultimi video che abbiamo visto, eccetera; in particolare, &lt;b&gt;recently_watched_video_id_list&lt;/b&gt; ricorda la lista degli ultimi video da noi visti su un determinato browser. Sempre in tema di Google, un dominio a cui prestare attenzione è &lt;b&gt;doubleclick.net&lt;/b&gt;, al cui interno è registrato il cookie &lt;b&gt;id&lt;/b&gt;, cioè il principale (ma non l’unico) cookie utilizzato da Google per gestire la sua pubblicità. Altri cookies pubblicitari usati da Google, e che possono essere trovati più o meno ovunque in giro per i vari siti, sono &lt;b&gt;_drt_&lt;/b&gt;, &lt;b&gt;FLC&lt;/b&gt;, &lt;b&gt;NID&lt;/b&gt;, &lt;b&gt;exchange_uid&lt;/b&gt;, ma anche il cookie &lt;b&gt;__gads&lt;/b&gt; è spesso a braccetto con quello di &lt;i&gt;doubleclick&lt;/i&gt;, mentre &lt;b&gt;PREF&lt;/b&gt; è un cookie che si occupa delle preferenze nei risultati di ricerca (e non solo), anche per tutti quegli utenti che non hanno eseguito l’accesso al proprio account Google.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Cliccando sul rettangolino contenente il nome di un cookie, su Google Chrome, è inoltre possibile esaminarlo più da vicino, ottenendo informazioni sul dominio a cui è collegato, la sua data di creazione, la data di scadenza e altro, tra cui un pulsante per rimuoverlo.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/4247495832223541528/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/breve-guida-ai-tipi-di-cookies.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4247495832223541528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/4247495832223541528'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/breve-guida-ai-tipi-di-cookies.html' title='Breve guida ai tipi di cookies'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-400908153368991757</id><published>2013-04-24T12:36:00.004+02:00</published><updated>2013-04-24T12:36:59.780+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aggiornamento"/><category scheme="http://www.blogger.com/atom/ns#" term="ccleaner"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="come funziona"/><category scheme="http://www.blogger.com/atom/ns#" term="freeware"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="manutenzione computer"/><category scheme="http://www.blogger.com/atom/ns#" term="privacy"/><category scheme="http://www.blogger.com/atom/ns#" term="pulizia del pc"/><category scheme="http://www.blogger.com/atom/ns#" term="sicurezza computer"/><title type='text'>Pulire il computer con CCleaner – Aggiornamento</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
È passato ormai parecchio tempo dal mio &lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/01/pulire-il-computer-con-ccleaner.html&quot;&gt;primo articolo dedicato a &lt;b&gt;CCleaner&lt;/b&gt;&lt;/a&gt; (oltre due anni, per essere più precisi) e, siccome nel frattempo i suoi sviluppatori non sono rimasti a guardarsi le mani, ma lo hanno aggiornato di continuo, inserendo nuove funzioni, è forse il caso di prenderlo di nuovo in esame e vedere cosa sia cambiato e come sia oggi questo programma.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Prima di tutto, presentiamolo. &lt;a href=&quot;https://www.piriform.com/ccleaner&quot;&gt;CCleaner&lt;/a&gt; è un programma di servizio, che permette di mantenere pulito il computer, almeno sui piano dei contenuti (non lo spolvera ancora al nostro posto, se è a questo che stavate pensando), ma anche di svolgere altre piccole attività legate alla gestione del computer, che normalmente richiederebbero qualche peregrinazione tra le pieghe del &lt;b&gt;Pannello di Controllo&lt;/b&gt; di &lt;b&gt;Windows&lt;/b&gt;. CCleaner nasce come programma per aiutare la manutenzione del sistema operativo Windows, che spesso rischia di diventare ingestibile se abbiamo la mania di installare e disinstallare nuovi programmi di continuo (il &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/06/il-registro-di-sistema-di-windows.html&quot;&gt;Registro di Sistema&lt;/a&gt;&lt;/b&gt; piange, ogni volta che lo fate): con una pulizia regolare, oltre a liberare spazio su disco, possiamo anche ridurre le probabilità di schermate blu e altri crash di sistema, ma anche contenere il calo progressivo di velocità, sia in fase di accensione, sia durante il resto del tempo. Precisiamo che non fa miracoli, ma una corretta igiene del computer ne allungherà l’aspettativa di vita.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Di recente, CCleaner è stato reso disponibile anche per &lt;a href=&quot;https://www.piriform.com/mac/ccleaner&quot;&gt;sistemi operativi Macintosh&lt;/a&gt;, forse perché l’aumento degli utenti (e soprattutto degli utenti non specialisti) ha reso necessario prepararsi a una certa manutenzione anche di questi sistemi. Dubito comunque che, in futuro, ne uscirà mai anche una versione per sistemi operativi a base &lt;b&gt;Linux&lt;/b&gt;, ma staremo a vedere. A parte questo, CCleaner è disponibile in due versioni, gratuita e a pagamento: qui ci occuperemo della versione gratuita, che è la più usata.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ecco come si presenta, su un sistema operativo Windows:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNdrgbjarlM2P8lbxRgPJg21DvvHS_9gSIpsghjESqUMlkyBbCa1aBAewQQQ_NhpWPP0L5yW1arMClra4RIwYEWlovXhUITxXfgxkue1sKKkXWY06Wel9kvjXDKpAkpYfbRpCkLKpIErQ/s1600/CCleaner.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNdrgbjarlM2P8lbxRgPJg21DvvHS_9gSIpsghjESqUMlkyBbCa1aBAewQQQ_NhpWPP0L5yW1arMClra4RIwYEWlovXhUITxXfgxkue1sKKkXWY06Wel9kvjXDKpAkpYfbRpCkLKpIErQ/s320/CCleaner.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nella parte alta, che qui ho tagliato perché non ci interessa, sono indicate alcune informazioni generali sul programma e sul computer: versione del programma, sistema operativo del computer, tipo di processore, quantità di RAM, eccetera. Sono dati che presumibilmente dovremmo già conoscere, ma ci sono comunque ricordati, per sicurezza. La parte più interessante è quella inferiore, cioè il pannello del programma vero e proprio.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sulla sinistra vediamo indicate quattro sezioni: &lt;b&gt;Pulizia&lt;/b&gt;, &lt;b&gt;Registro&lt;/b&gt;, &lt;b&gt;Strumenti&lt;/b&gt; e &lt;b&gt;Opzioni&lt;/b&gt;. Già dal nome, dovrebbe essere facile intuire a cosa servano, ma procederò con una spiegazione più dettagliata, soffermandomi in particolare sulle novità.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Pulizia&lt;/b&gt; è dove ci occupiamo della pulizia del disco fisso, ossia l’eliminazione di files temporanei, files cestinati e tutto che i vari programmi producono di continuo e che, dopo un certo periodo, può essere eliminato senza problemi (o almeno, di solito è senza problemi). Col pulsante Analizza possiamo avviare una prima scansione del sistema, con un preventivo dello spazio che può essere liberato, suddiviso per voci; il pulsante Avvia pulizia, invece, avvierà la pulizia (strano, ma vero). Questa sezione è poi volta suddivisa in due schede: &lt;b&gt;Windows&lt;/b&gt; e &lt;b&gt;Applicazioni&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nella scheda &lt;b&gt;Windows&lt;/b&gt; troviamo tutti quei programmi, in dotazione in un sistema operativo Windows, su cui CCleaner può agire: cliccando sul quadratino accanto a ogni voce, la possiamo selezionare o deselezionare, decidendo così se sottoporla o meno alla pulizia. Le varie voci dovrebbero essere autodescrittive, ma per il reparto “&lt;b&gt;Avanzate&lt;/b&gt;” abbiamo anche un popup esplicativo, che appare quando selezioniamo una voce e ci avvisa di possibili “effetti collaterali”.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nella scheda &lt;b&gt;Programmi&lt;/b&gt; troviamo una lista di programmi che non sono di base inclusi in Windows, ma che potremmo avere installato: programmi come &lt;b&gt;Firefox&lt;/b&gt;, &lt;b&gt;Google Chrome&lt;/b&gt;, i vari prodotti &lt;b&gt;Adobe&lt;/b&gt;, ma anche &lt;b&gt;Windows Media Player&lt;/b&gt;, che non è considerato parte integrante del sistema operativo, anche se è sempre presente al suo interno. Come per la scheda precedente, ogni voce può essere selezionata o deselezionata con un click, per includerla o meno nella pulizia. Come nota a margine, segnalo che compattare il database di un browser è operazione piuttosto lenta: se la selezionate, siate pronti ad aspettare un poco più a lungo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Registro&lt;/b&gt; è una sezione dedicata alla pulizia del &lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/06/il-registro-di-sistema-di-windows.html&quot;&gt;registro di sistema di Windows&lt;/a&gt;, operazione molto importante, ma anche molto delicata. Anche in questo caso, possiamo selezionare le varie voci da sottoporre a scansione, ognuna corrispondente a una porzione del registro; il pulsante &lt;b&gt;Trova problemi&lt;/b&gt; esegue una scansione delle parti di registro che abbiamo selezionato e ci elenca tutti i problemi che potrebbe aver trovato; &lt;b&gt;Ripara selezionati&lt;/b&gt;, infine, ci permette di procedere con la riparazione dei problemi trovati, che di solito consiste nella potatura delle chiavi di registro non utilizzate. Prima di cancellarle, però, abbiamo la possibilità di salvare una copia di backup, nel caso qualcosa dovesse andare storto: è utile farlo. Per utilizzare la copia di backup, in caso di bisogno, basterà poi un doppio click sul file corrispondente, per aggiungere di nuovo al registro le chiavi contenute nella copia.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Strumenti&lt;/b&gt; è un’altra sezione suddivisa in cinque schede, che in parte ripetono funzioni già incluse in Windows, ma spesso nascoste nei meandri del Pannello di controllo. È il caso ad esempio della prima scheda, ossia &lt;b&gt;Disinstallazione&lt;/b&gt;, che ci mostra una lista di tutti i programmi installati sul nostro computer: selezionando un programma dalla lista, possiamo decidere di disinstallarlo o rinominarlo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Avvio&lt;/b&gt; si è evoluto parecchio nel corso della storia di CCleaner e adesso presenta una serie di sottoschede, ognuna dedicata a un particolare problema. La prima, &lt;b&gt;Windows&lt;/b&gt;, ci mostra l’elenco di tutti i programmi eseguiti&amp;nbsp;all&#39;avvio&amp;nbsp;del computer: la lentezza del computer in fase di avvio è dovuta in parte al numero di programmi che deve eseguire, per cui da qui possiamo sveltire le operazioni, disattivando quei programmi che consideriamo non essenziali. Successivamente, troviamo una o più schede dedicate ai browser in uso sul nostro computer: Internet Explorer, Firefox, Google Chrome, e così via. Per ognuno, abbiamo una lista di applicazioni o estensioni, che sono avviate&amp;nbsp;all&#39;apertura&amp;nbsp;del browser e che, di conseguenza, ne possono rallentare il caricamento: anche in questo caso, possiamo attivarle o disattivarle a nostro piacere. Procedendo, arriviamo ai &lt;b&gt;Processi pianificati&lt;/b&gt;, che sono operazioni eseguite da Windows a intervalli regolari e periodicamente, in gran parte legato alla ricerca di aggiornamenti per questo o quel programma. A chiudere, troviamo il &lt;b&gt;Menu contestuale&lt;/b&gt;, ossia quel menu che appare quando clicchiamo su qualcosa col tasto destro del mouse: a differenza dei precedenti, dove potevamo attivare o disattivare operazioni, qui possiamo attivare o disattivare le voci del menu.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Ricerca file&lt;/b&gt; è una novità e ci permette di cercare files doppi nel nostro computer; per files doppi si intendono naturalmente i files identici, che potrebbero essere presenti i più copie nel nostro disco fisso, per un qualsiasi motivo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Ripristino sistema&lt;/b&gt; ci mostra la lista di tutti &lt;a href=&quot;http://antrodelnerd.blogspot.com/2011/07/il-ripristino-della-configurazione-di.html&quot;&gt;i punti di ripristino creati dal sistema operativo&lt;/a&gt; (o anche da noi) nel corso della sua attività. A esclusione dell’ultimo punto di ripristino, che non possiamo toccare, tutti gli altri possono essere eliminati, se vogliamo liberare spazio: starà poi a voi decidere se eliminarli e quali eliminare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Bonifica drive&lt;/b&gt; permette di spazzare tutto lo spazio vuoto presente in un disco; volendo, permette anche di spazzare tutto il disco, il che equivale a una formattazione, ma in questo caso si perderà tutto il suo contenuto. La pulizia dello spazio libero, invece, serve ad assicurarsi che i files da noi cancellati rimangano cancellati, rendendone via via più difficile il recupero (più alto è il numero di sovrascrittura e più difficile sarà recuperare qualcosa); incidentalmente, di tanto in tanto ci si può ritrovare con più spazio libero di quanto ce ne fosse in precedenza, dopo questa operazione. In linea generale, la pulizia dello spazio libero su un disco è utile per ragioni di privacy o sicurezza, ma non è una priorità se non avete problemi di questo genere.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Opzioni&lt;/b&gt;, infine, racchiude tutte le impostazioni di CCleaner che potete personalizzare, per adattare il programma alle vostre preferenze e necessità. Sono tutte molto descrittive e non dovrebbero dare problemi particolari di comprensione. Sempre da qui, inoltre, possiamo avviare una ricerca di aggiornamenti del programma, oppure scegliere di passare alla versione Pro di CClenaer (ossia la versione a pagamento).&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/400908153368991757/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/pulire-il-computer-con-ccleaner.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/400908153368991757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/400908153368991757'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/pulire-il-computer-con-ccleaner.html' title='Pulire il computer con CCleaner – Aggiornamento'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNdrgbjarlM2P8lbxRgPJg21DvvHS_9gSIpsghjESqUMlkyBbCa1aBAewQQQ_NhpWPP0L5yW1arMClra4RIwYEWlovXhUITxXfgxkue1sKKkXWY06Wel9kvjXDKpAkpYfbRpCkLKpIErQ/s72-c/CCleaner.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1203305832042393130.post-618230005901680208</id><published>2013-04-21T16:18:00.001+02:00</published><updated>2013-04-21T16:18:40.522+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="come correggere"/><category scheme="http://www.blogger.com/atom/ns#" term="come fare per"/><category scheme="http://www.blogger.com/atom/ns#" term="creare epub"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="epubcheck"/><category scheme="http://www.blogger.com/atom/ns#" term="flightcrew"/><category scheme="http://www.blogger.com/atom/ns#" term="guida"/><category scheme="http://www.blogger.com/atom/ns#" term="sigil"/><category scheme="http://www.blogger.com/atom/ns#" term="sottolineato"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="xhtml"/><title type='text'>Sigil - Problemi con testo sottolineato</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In un recente commento a un altro post, mi è stato segnalato un problema con &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/02/sigil-070-verso-lo-epub-3.html&quot;&gt;Sigil&lt;/a&gt;&lt;/b&gt;, di cui finora non mi ero accorto: il testo sottolineato, in certi casi, è segnalato come errore dal test di convalida interno a Sigil, ossia &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2012/11/epubcheck-e-flightcrew-come-usarli.html&quot;&gt;FlightCrew&lt;/a&gt;&lt;/b&gt;. Se si sottolinea una parte del testo, evidenziandola e premendo il tasto &lt;b&gt;Sottolinea&lt;/b&gt; nella interfaccia grafica di Sigil, oppure si usa la combinazione di tasti &lt;b&gt;CTRL+U&lt;/b&gt;, il testo sottolineato potrebbe essere considerato non valido nei successivi test sul formato &lt;b&gt;EPUB&lt;/b&gt;. Come si può intuire da questa premessa, non uso molto spesso le sottolineature&amp;nbsp;all&#39;interno&amp;nbsp;di un testo, ma ciò non ha importanza.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L’errore che può essere segnalato dal test FlightCrew interno a Sigil, ma anche dal test ufficiale di convalida &lt;b&gt;&lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/01/epubcheck-30-sul-proprio-computer.html&quot;&gt;EpubCheck&lt;/a&gt;&lt;/b&gt;, ha una spiegazione molto semplice: il &lt;i&gt;tag&lt;/i&gt; inserito in automatico per segnalare il testo sottolineato, ossia &lt;b&gt;&amp;lt;u&amp;gt;&lt;/b&gt;, è un tag che è stato prima deprecato e poi dichiarato illegale nello &lt;b&gt;XHTML 1.1&lt;/b&gt;, cioè il linguaggio utilizzato come base da Sigil per il formato EPUB. In altri termini, Sigil utilizza un tag non valido, per segnalare il testo sottolineato. A questo punto ci si potrebbe domandare il perché di una scelta simile, ma forse è meglio non indagare: il punto è che il tag &amp;lt;u&amp;gt;, utilizzato da Sigil, è illegale e sarà sempre segnalato come errore nei test di convalida.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il problema del tag &amp;lt;u&amp;gt; ha una facile soluzione e in parte ci viene incontro lo stesso Sigil.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nelle precedenti versioni del programma, era attiva una funzione di controllo automatico del codice, che si occupava di volta in volta di correggere eventuali nostri errori stilistici: tag sbagliati o deprecati, tag non chiusi e così via. Questa funzione è &lt;b&gt;HTML Tidy&lt;/b&gt;. Forse perché un po’ troppo zelante e affetta dal vizio di correggere qualsiasi cosa, anche ciò che noi avevamo inserito volontariamente, nelle ultime versioni di Sigil è stata sostituita da un’altra funzione analoga, ma meno invasiva: &lt;b&gt;Stampa Gradevole Tidy&lt;/b&gt; (è il nome che ha in italiano e sì, lo so, può lasciare perplessi, ma facciamo finta di niente). Anche Stampa Gradevole Tidy esegue una pulizia automatica del codice, ma lo fa in modo meno invasivo e tende a non eliminare o sostituire arbitrariamente i tag inseriti da noi, come invece si divertiva a fare HTML Tidy.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Morale della favola: HTML Tidy, quando vedeva un tag &lt;b&gt;&amp;lt;u&amp;gt;&lt;/b&gt;, si affrettava a sostituirlo con una apposita classe &lt;b&gt;CSS&lt;/b&gt;, per rendere valido il nostro documento; Stampa Gradevole Tidy, invece, lo lascia così come è. Siccome le impostazioni di base prevedono che il controllo del codice sia eseguito con Stampa Gradevole Tidy, l’errore rimane e il test di convalida ce lo segnala.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La prima soluzione al problema del tag &amp;lt;u&amp;gt; consiste dunque nel modificare le impostazioni di base, attivando HTML Tidy come pulitore ufficiale del nostro codice. Premiamo il tasto &lt;b&gt;F5&lt;/b&gt;, oppure passiamo dal menu &lt;b&gt;Modifica&lt;/b&gt; -&amp;gt; &lt;b&gt;Impostazioni&lt;/b&gt; e, nella finestra che si aprirà, passiamo alla scheda &lt;b&gt;Pulisci il Sorgente&lt;/b&gt;, selezioniamo &lt;b&gt;HTML Tidy&lt;/b&gt; e diamo un &lt;b&gt;Ok&lt;/b&gt;.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht5rhm4HdaOiVvCN8ktBpFJcw0tGkhWuWtzZsFpq2RZofdXVcMD8IYX_u0QabEBKOiWoKTp1I3tSmK4QRpwn4GhHsf8hapsAsbvlwYo4RLeQ2oSFq3Nmx_wUE_Ju33wnd-N5tqOf8Lj8Q/s1600/Sigil.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht5rhm4HdaOiVvCN8ktBpFJcw0tGkhWuWtzZsFpq2RZofdXVcMD8IYX_u0QabEBKOiWoKTp1I3tSmK4QRpwn4GhHsf8hapsAsbvlwYo4RLeQ2oSFq3Nmx_wUE_Ju33wnd-N5tqOf8Lj8Q/s320/Sigil.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Al prossimo controllo automatico, tutti i nostri tag &amp;lt;u&amp;gt; saranno sostituiti: soluzione rapida, semplice, ma non indolore, perché potremmo poi ritrovarci a litigare con HTML Tidy in altre circostanze, se cerchiamo di fargli accettare un tag diverso da quelli che è programmato per accettare. Inoltre, la classe CSS che creerà potrebbe essere inserita nello &lt;b&gt;Header&lt;/b&gt; della pagina, invece che nel foglio di stile del nostro EPUB.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una seconda soluzione, più elegante ma anche più nerd, consiste nel modificare a mano il codice delle nostre pagine e, successivamente, creare una nuova classe nel &lt;a href=&quot;http://antrodelnerd.blogspot.com/2013/03/come-usare-fogli-di-stile-css-negli.html&quot;&gt;foglio di stile CSS&lt;/a&gt;. Prima di tutto, sostituiamo il tag &lt;b&gt;&amp;lt;u&amp;gt;&lt;/b&gt; con un tag del tipo &lt;b&gt;&amp;lt;span class=&quot;sottolineato&quot;&amp;gt;&lt;/b&gt; e, di conseguenza, il tag &lt;b&gt;&amp;lt;/u&amp;gt;&lt;/b&gt; con un tag &lt;b&gt;&amp;lt;/span&amp;gt;&lt;/b&gt;: in questo modo, segnaliamo al documento (o, più precisamente, al dispositivo che visualizzerà il documento) che, per riprodurre il testo racchiuso in quel tag, dovrà utilizzare le regole specificate nella classe “sottolineato” del foglio di stile CSS. Il secondo passo consiste nel creare la classe “sottolineato” nel nostro foglio di stile: apriamo il foglio di stile CSS, che sarà nella cartella &lt;b&gt;Styles&lt;/b&gt; (se abbiamo fatto tutto per bene) e aggiungiamo queste tre righe&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
span.sottolineato {&lt;br /&gt;&amp;nbsp; &amp;nbsp; text-decoration: underline&lt;br /&gt;}&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In questo modo, abbiamo aggiunto una regola che prevede di sottolineare il testo, quando troviamo la classe “sottolineato” del tag &amp;lt;span&amp;gt;. Ovviamente, al posto di “sottolineato” si può usare qualsiasi altro nome, purché non sia già stato usato nel foglio di stile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una terza possibilità, sconsigliabile, è di sostituire il tag &amp;lt;u&amp;gt; col tag &lt;b&gt;&amp;lt;ins&amp;gt;&lt;/b&gt;. Il tag &amp;lt;ins&amp;gt; è utilizzato per inserire un testo particolare dentro al nostro documento: il testo in questione apparirà sottolineato. Il problema di questa soluzione, però, è che in futuro potrebbe anche essere deciso di usare un altro sistema per evidenziare il testo inserito e, in questo caso, la sottolineatura sparirebbe: è possibile usarlo come rimpiazzo temporaneo, ma per una modifica sicura è meglio usare una delle due soluzioni precedenti.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://antrodelnerd.blogspot.com/feeds/618230005901680208/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/sigil-problemi-con-testo-sottolineato.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/618230005901680208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1203305832042393130/posts/default/618230005901680208'/><link rel='alternate' type='text/html' href='http://antrodelnerd.blogspot.com/2013/04/sigil-problemi-con-testo-sottolineato.html' title='Sigil - Problemi con testo sottolineato'/><author><name>Adriano</name><uri>http://www.blogger.com/profile/17781740799201675076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80a0YPdfkmTAUoRQmyGYIqI62oLgGKlSoTulK51AdaXCZRVduW7rVjHUo6BzMfiC4EKg2oKeZNcbewi9ULo8BR7ImSRyfG8PO_oS7_jFOK-Ob2-baFaI3k9pjjWSDAks/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht5rhm4HdaOiVvCN8ktBpFJcw0tGkhWuWtzZsFpq2RZofdXVcMD8IYX_u0QabEBKOiWoKTp1I3tSmK4QRpwn4GhHsf8hapsAsbvlwYo4RLeQ2oSFq3Nmx_wUE_Ju33wnd-N5tqOf8Lj8Q/s72-c/Sigil.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>