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

<channel>
	<title>upCreative &#187; javscript</title>
	<atom:link href="https://www.upcreative.net/tag/javscript/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.upcreative.net</link>
	<description>Web Design, grafica,  web application e content web marketing</description>
	<lastBuildDate>Wed, 10 Apr 2019 12:53:28 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Tutorial: Backbone web app responsive con Bootstrap 3</title>
		<link>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/</link>
		<comments>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/#comments</comments>
		<pubDate>Wed, 13 Nov 2013 11:19:29 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[javscript]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=2473</guid>
		<description><![CDATA[<p>In un precedente articolo ho sottolineato il ruolo fondamentale che può rappresentare Backbone per la realizzazione di una MVC javascript web application, elencando anche i vari componenti che la libreria mette a disposizione, oltre ad alcune applicazioni con essa realizzate. Su lobaedesign.com</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/">Tutorial: Backbone web app responsive con Bootstrap 3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><p>In un <a title="Usare Backbone.js per realizzare web applications" href="http://www.upcreative.net/mvc-backbone-per-html5-css3-javascript-web-app/">precedente articolo</a> ho sottolineato il ruolo fondamentale che può rappresentare <a title="Backbone frame work javascript per web app" href="http://backbonejs.org"><strong>Backbone</strong></a> per la realizzazione di una <strong>MVC</strong> <strong>javascript web application</strong>, elencando anche i vari componenti che la libreria mette a disposizione, oltre ad alcune applicazioni con essa realizzate.</p>
<p>Su <a href="http://lobaedesign.com">lobaedesign.com</a> invece, ho introdotto l&#8217;indipendenza della view dagli altri componenti con un tutorial su <a title="Tutorial Backbone.js: come realizzare un orologio analogico CSS3 e JavaScript con animazione" href="http://www.lobaedesign.com/tutorial-backbone-js-come-realizzare-un-orologio-css3-e-javascript-con-animazione/">come realizzare un orologio analogico CSS3 e JavaScript con animazione</a>, e su come la stessa view aggiorna gli elementi dell&#8217;interfaccia &#8220;<strong>osservando</strong>&#8221; il cambiamento di un model.</p>
<p>In questo post voglio introdurre invece altri due componenti per la creazione di una <strong>backbone web app</strong>:</p>
<ul>
<li><strong>la collection</strong>, ovvero la lista secondo la quale organizzare i model</li>
<li><strong>il sistema di templating</strong> della libreria <a title="Underscore.js - sistema di templating per web app" href="http://underscorejs.org">underscore.js</a>, per la generazione del markup HTML</li>
</ul>
<p>Lo farò attraverso un semplice tutorial che implementa il framework bootstrap 3 nel documento e usa due view diverse legate allo stesso model ed una alla lista.</p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/Tutorial-Backbone-web-app-responsive-con-Bootstrap-3.jpg"><img class="alignnone size-full wp-image-2489" alt="Tutorial-Backbone-web-app-responsive-con-Bootstrap-3" src="http://www.upcreative.net/wp-content/uploads/2013/11/Tutorial-Backbone-web-app-responsive-con-Bootstrap-3.jpg" width="690" height="400" /></a></p>
<div class="g-cols">
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/13112013-backbone-responsive-we-app/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div>
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/2491/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div>
</div>
<p>Il nostro intento sarà quindi quello di creare una <strong>backbone </strong><strong>web app responsive</strong> che mostra una lista di persone, ciascuna con informazioni proprie come nome, sesso, occupazione, e descrizione, e con possibilità da parte dell&#8217;utente di creare, modificare, eliminare una persona, oltre che poter visualizzare una modal con delle informazioni aggiuntive cliccando nel nome della lista.</p>
<h2>Impostazione del documento</h2>
<p>Come prima operazione, aggiungiamo al nostro documento, prima della chiusura del tag <em>body</em>,  le librerie di cui abbiamo bisogno:</p><pre class="crayon-plain-tag">&lt;script src="js/jquery-1.10.2.min.js"&gt;&lt;/script&gt; &lt;!-- jquery --&gt;
&lt;script src="js/bootstrap.min.js"&gt;&lt;/script&gt; &lt;!-- bootstrap per il modal--&gt;

&lt;script src="js/underscore-min.js"&gt;&lt;/script&gt; &lt;!-- libreria di supporto per backbone e per il sistema di templating --&gt;
&lt;script src="js/backbone-min.js"&gt;&lt;/script&gt;&lt;!-- backbone.js --&gt;

&lt;script src="js/demo.js"&gt;&lt;/script&gt; &lt;!-- il file js della nostra applicazione --&gt;</pre><p>
Backbone.js e Undersore.js sono scaricabili dai rispettivi link:</p>
<ul>
<li><a title="Sito web Backbone.js" href="http://backbonejs.org"><span style="color: #000000;">Sito web Backbone.js</span></a></li>
<li><a title="Sito web Underscore.js" href="http://underscorejs.org"><span style="color: #000000;">Sito web Underscore.js</span></a></li>
</ul>
<h2>Il markup HTML</h2>
<p>Andiamo a vedere il markup HTML della view principale dell&#8217;applicazione, ovvero quello che comprende il form di inserimento e la lista:</p><pre class="crayon-plain-tag">&lt;!-- form di creazione dell'individuo --&gt;   

&lt;div class="col-md-4 col-lg-4 well well-sm"&gt; 
    &lt;legend&gt;&lt;i class="glyphicon glyphicon-user"&gt;&lt;/i&gt; Aggiungi individuo&lt;/legend&gt;
    &lt;form action="#" id="add-form" method="post" class="form" role="form"&gt;
        &lt;div class="row"&gt;
            &lt;div class="col-xs-8 col-md-8"&gt;
                &lt;input class="form-control" name="name" placeholder="Nome" type="text" /&gt;
            &lt;/div&gt;
            &lt;div class="col-xs-4 col-md-4"&gt;                    
                &lt;select name="gender" class="form-control"&gt;
                    &lt;option value="M"&gt;Maschio&lt;/option&gt;
                    &lt;option value="F"&gt;Femmina&lt;/option&gt;
                &lt;/select&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;input class="form-control" name="occupation" placeholder="Occupazione" type="text" /&gt;

        &lt;label for="notes"&gt;Note&lt;/label&gt;
        &lt;textarea name="notes" id="notes" class="form-control" rows="3"&gt;&lt;/textarea&gt;
        &lt;button class="btn btn-block button add-person" type="submit"&gt;Aggiungi&lt;/button&gt;
    &lt;/form&gt;
&lt;/div&gt;

&lt;!-- la lista degli individui --&gt;

&lt;div class="col-md-8 col-lg-8"&gt;
 	&lt;ul class="list-group"&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre><p>
<h2>I template di Underscore.js</h2>
<p>Impostiamo ora il markup HTML dei template delle view secondo il<strong> sistema di templating di underscore.js</strong>; i metodi per comunicare alla view backbone quale template utilizzare per il rendering del markup da inserire poi nel documento sono principalmente tre:</p>
<ol>
<li>Specificare il template sottoforma di <strong>variabile string</strong> nello script</li>
<li>Specificare il <strong>rifermento al template</strong> il cui markup è stato &#8220;posizionato&#8221; nel documento</li>
<li>Utilizzare librerie come <a title="Requirejs.org - Caricare contenuti nel documento in modo asincrono" href="http://requirejs.org"><strong>require.js</strong></a> per &#8220;leggere&#8221; in <strong>modo asincrono</strong> il contenuto del template da un file esterno (solitamente di usa un file con estensione .html)</li>
</ol>
<p>Personalmente preferisco utilizzare l&#8217;ultima opzione, soprattutto nel caso di web app ad architettura molto complessa, per due motivi principali:</p>
<ul>
<li>lasciare il nostro documento più pulito possibile</li>
<li>migliore organizzazione del progetto per quanto riguarda la struttura dei file</li>
</ul>
<p>In questo tutorial tuttavia prenderemo in considerazione il secondo metodo.</p>
<p><strong><em>Per saperne di più sui sistemi di javascript templating leggi</em>: </strong></p>
<ul>
<li><a title="I sistemi di javascript templating e le migliori librerie" href="http://www.upcreative.net/web-application-i-sistemi-di-javascript-templating-e-le-migliori-librerie/">I sistemi di javascript templating e le migliori librerie</a></li>
</ul>
<p>Per l&#8217;esperimento definiremo 3 view, quella dell&#8217;applicazione principale (che comprende il form di inserimento e l&#8217;<em>ul</em> della lista), quella di ogni singolo elemento del lista, e quella della modal delle informazioni aggiuntive.</p>
<p>Poiché per la prima delle tre imposteremo come elemento di riferimento il body stesso del documento, andiamo a definire il markup dei template delle altre due view:</p><pre class="crayon-plain-tag">&lt;!-- *********** Template delle Views ************** --&gt;

&lt;!-- modal dell'elemento della lista --&gt;

&lt;script type="text/template" id="person-template"&gt;

    &lt;div class="view"&gt; 
        &lt;div class="action pull-right"&gt;
            &lt;button type="button" class="btn btn-xs button open-modal" title="View Modal"&gt;
                &lt;span class="glyphicon glyphicon-eye-open"&gt;&lt;/span&gt;
            &lt;/button&gt;
            &lt;button type="button" class="btn btn-xs button edit-view" title="Edit"&gt;
                &lt;span class="glyphicon glyphicon-pencil"&gt;&lt;/span&gt;
            &lt;/button&gt;
            &lt;button type="button" class="btn btn-xs button person-delete" title="Delete"&gt;
                &lt;span class="glyphicon glyphicon-trash"&gt;&lt;/span&gt;
            &lt;/button&gt;
        &lt;/div&gt;

        &lt;h4&gt;&lt;%=name%&gt;&lt;/h4&gt;            
        &lt;div class="gender-info"&gt;
           	Sesso: &lt;strong&gt;&lt;%=gender%&gt;&lt;/strong&gt; - Occupazione: &lt;strong&gt;&lt;%=occupation%&gt;&lt;/strong&gt;
        &lt;/div&gt;
     &lt;/div&gt;

     &lt;div class="edit"&gt;

         &lt;form action="#" class="form" role="form"&gt;
            &lt;div class="row"&gt;
                &lt;div class="col-xs-3 col-md-3"&gt;
                    &lt;input class="form-control" name="name" value="&lt;%=name%&gt;" placeholder="Nome" type="text" /&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-3 col-md-3"&gt;
                    &lt;input class="form-control" value="&lt;%=occupation%&gt;" name="occupation" placeholder="Occupazione" type="text" /&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;                    
                    &lt;select name="gender" class="form-control"&gt;
                        &lt;option value="M" &lt;%if(gender=='M'){%&gt;selected&lt;%}%&gt;&gt;Maschio&lt;/option&gt;
                        &lt;option value="F" &lt;%if(gender=='F'){%&gt;selected&lt;%}%&gt;&gt;Femmina&lt;/option&gt;
                    &lt;/select&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;
                    &lt;button class="btn btn-sm btn-block button save" type="submit"&gt;Salva&lt;/button&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;
                    &lt;a href="#" class="btn btn-sm btn-default btn-block cancel"&gt;Annulla&lt;/a&gt;
                &lt;/div&gt;
            &lt;/div&gt;		            
            &lt;textarea name="notes" id="notes" class="form-control" rows="3"&gt;&lt;%=notes%&gt;&lt;/textarea&gt;
        &lt;/form&gt;

     &lt;/div&gt;

&lt;/script&gt;

&lt;!-- modal delle informazioni aggiuntive--&gt;

&lt;script type="text/template" id="modal-template"&gt;

   &lt;div class="modal-dialog"&gt;
    &lt;div class="modal-content"&gt;
      &lt;div class="modal-header"&gt;
        &lt;button type="button" class="close" data-dismiss="modal" aria-hidden="true"&gt;&amp;times;&lt;/button&gt;
        &lt;h4 class="modal-title"&gt;&lt;%=name%&gt;&lt;/h4&gt;
      &lt;/div&gt;
      &lt;div class="modal-body"&gt;
        	&lt;div class="gender-info"&gt;
               	Sesso: &lt;strong&gt;&lt;%=gender%&gt;&lt;/strong&gt; - Occupazione: &lt;strong&gt;&lt;%=occupation%&gt;&lt;/strong&gt;
            &lt;/div&gt;
            &lt;p class="gender-notes"&gt;
               	&lt;%=notes%&gt;
            &lt;/p&gt;
      &lt;/div&gt;
      &lt;div class="modal-footer"&gt;
        &lt;button type="button" class="btn button" data-dismiss="modal"&gt;Chiudi&lt;/button&gt;
      &lt;/div&gt;
   &lt;/div&gt;

&lt;/script&gt;</pre><p>
Dal codice puoi notare che ogni template è stato definito all&#8217;interno dell tag <em>script</em> in cui è stato impostato un attributo <strong><em>type</em></strong> con valore <em><strong>text/template</strong>. </em>Così facendo il <strong>browser ignorerà questa porzione di codice</strong> che invece sarà <strong>raggiungibile da Javascript</strong> tramite l&#8217;attribuito <em>id</em>.</p>
<h2>Il file JavaScript</h2>
<p>Passiamo ora alla definizione dei vari componenti backbone della nostra applicazione, in primis occupiamoci dell&#8217;astrazione dei dati, <strong>il model della persona:</strong></p><pre class="crayon-plain-tag">//definiamo il modello dell'individuo
var PersonModel = Backbone.Model.extend({

	// Attributi predefiniti per il modello, che vengono usati 
	//se non passati al momento dell'inizializzazione	
	defaults: {
		gender: "M",
		createdat: new Date()
	},

	initialize: function() {  

	},

	//elimina l'istanza del model
	clear: function() {
		this.destroy();
	}

});</pre><p>
<strong>Definiamo ora la collection</strong> in cui tutte le istanze del model appena definito verranno organizzate:</p><pre class="crayon-plain-tag">//definiamo la collection degli individui
var PersonList = Backbone.Collection.extend({

	// Impostiamo la referenza al model per questa collection.
	model: PersonModel,

	url: "#",

	// Filtra tutti gli individui Maschi o Femmina (in base al parametro passato).
	getGender: function(gender) {
		return this.where({gender: gender});
	}

});</pre><p>
Ora che abbiamo definito la nostra (semplicissima) struttura dei dati, vediamo <strong>l&#8217;impostazione delle view.</strong></p>
<h3>La view dell&#8217;elemento della lista</h3>
<pre class="crayon-plain-tag">//impostiamo la view della persona per come elemento nella lista

var PersonView = Backbone.View.extend({

	// diciamo a backbone che il tag deve essere una li
	tagName:  "li",

	//settiamo la classe da impostare al tag li per usare gli stili bootstrap e l'animazione in entrata
	className: "list-group-item animated",

	// Coumunichiamo alla view a quale template far riferimento.
	template: '#person-template',

	// Bindiamo gli eventi agli elementi di questa view (i selettori funzionano come jQuery).
	events: {
		"click .person-delete"        : "deletePerson",
		"click .edit-view"   		  : "toggleView",
		"click .cancel"				  : "toggleView",
		"submit form"			  	  : "savePerson",
		"click .open-modal"			  : "openModal"	
	},

	//questa funzione viene eseguita ogni volta che viene creata 
	//una nuova istanza per questa view
	initialize: function() {

		//compiliamo il template in una variabile
		this.template = _.template($(this.template).html());

		//osserviamo l'evento change del model dell'individuo per fare in modo che 
		//quando ciò accade anche il markup della relativa view venga aggiornato
		this.listenTo(this.model, 'change', this.toggleView);

		//osserviamo l'evento destroy del model dell'individuo per fare in modo che 
		//quando ciò accade anche la relativa view venga rimossa
		this.listenTo(this.model, 'destroy', this.removeFromDOM);
	},

	// Effettua il render dei contenuti del markup della view nella lista.
	render: function() {
		$(this.el).html(this.template(this.model.toJSON()));
		return this;
	},

	//visualizza il modal per le informazioni dell'individuo
	openModal: function(){
		var model = this.model;
		var view = new ModalView({model: model});
		$("body").append(view.render().el);
		///richiamiamo la funzione open della view appena creata
		view.open();
	},

	// Visualizza o nasconde i campi di editing per questa view. 
	toggleView: function() {	
		//riaggiorniamo la vista e cambiamo la classe per la visualizzazione con jQuery
		this.render();
		this.$el.toggleClass("edit");
	},

	//salva i dati modificati dell'indivuduo
	savePerson: function(e){
		e.preventDefault();

		//riprendiamo i dati del nuovo individuo
		var name = $.trim(this.$("[name='name']").val()),
			gender = this.$("[name='gender']").val(),
			occupation = $.trim(this.$("[name='occupation']").val()),
			notes = $.trim(this.$("[name='notes']").val());

	    //se non tutti i campi sono stati compilati, interrompiamo l'operazione
		if(!name.length  || ! occupation.length || !notes.length)
			return;

		//impostiamo i nuovi dati per il model
		this.model.set({
			name: name,
			gender: gender,
			occupation: occupation,
			notes: notes
		});
		//salviamo il model
		this.model.save();
	},

	removeFromDOM: function(){
		//aggiungiamo la classe per l'animazione di uscita, 
		//e alla fine dell'animazione (sappiamo che dura 1 secondo)
		//rimuoviamo l'elemento DOM dal documento
		var that = this;
		that.$el.addClass("hinge");
		setTimeout(function(){
			that.remove();
		}, 1010);		
	},

	// Rimuove la persona distruggendo il relativo model.
	deletePerson: function() {
		this.model.clear();
	}

});</pre>
<h3> La view del modal delle informazioni aggiuntive</h3>
<pre class="crayon-plain-tag">var ModalView = Backbone.View.extend({

	// diciamo a backbone che il tag deve essere una div
	tagName:  "div",

	//settiamo la classe da impostare al tag li per usare gli stili bootstrap e l'animazione in entrata
	className: "modal fade",

	template: "#modal-template",

	initialize: function() {
		//compiliamo il template in una variabile
		this.template = _.template($(this.template).html());

		//rimuoviamo il modal dal DOM quando esso viene nascosto
		this.$el.on("hidden.bs.modal", function(){
			this.remove();
		});
	},

	// Effettua il render dei contenuti del markup della view nella lista.
	render: function() {
		$(this.el).html(this.template(this.model.toJSON()));		
		return this;
	},

	open: function(){
		this.$el.modal("show");
	}

});</pre>
<h3> La view dell&#8217;applicazione</h3>
<pre class="crayon-plain-tag">//definiamo la view dell'app intera
var AppView = Backbone.View.extend({

		//a differenza della view dell'individuo, dove impostavamo 
		//quale elemento generare al'inizializzazione, qui comunichiamo 
		//quale oggetto già aesistente utilizzare come markup
		el: "body",

		// Deleghiamo gli eventi per la creazione di un nuovo 
		//individuo (il funzionamento ed i selettori sono come quelli di jQuery).
		events: {
			"submit #add-form":  "create"
		},

		// Nella funzione di inizializzazione osserviamo l'evento add 
		//della collection legata a questa view, per richiamare la funzione che 
		// inserisce un nuovo elemento nella lista DOM
		initialize: function() {

			var todos = this.collection;

			//deleghiamo gli eventi della collection alle relative funzioni 

			//evento che si verifica quando un nuovo model viene aggiunto alla collection
			// l'ultimo parametro è una funzione alla quale viene passata l'istanza del model appena aggiunto
			// alla collection
			this.listenTo(this.collection, 'add', this.addPerson);

			//richiamiamo la funzione che aggiunge gli elementi all alla lista
			this.addElements();
		},

		// funzione che ogni crea una nuova view ed agigunge 
		// l'elemento generato dal render alla lista
		addPerson: function(personModel) {			
			//creaiamo una nuova istanza della view della persona passando come model quello appena creato
			var view = new PersonView({model: personModel});
			this.$(".list-group").append(view.render().el);
			//aggiungiamo la classe per l'animazione
			view.$el.addClass("fadeInLeftBig");		
		},

		// Aggiunge nella lista tutti gli elementi della collection di individui.
		addElements: function() {
			this.collection.each(this.addPerson);
		},

		// funzione che aggiunge un nuovo model con i dati del form alla collection
		create: function(e) {
			e.preventDefault();
			//riprendiamo i dati del nuovo individuo
			var name = $.trim(this.$("[name='name']").val()),
				gender = this.$("[name='gender']").val(),
				occupation = $.trim(this.$("[name='occupation']").val()),
				notes = $.trim(this.$("[name='notes']").val());

		    //se non tutti i campi sono stati compilati, interrompiamo l'operazione
			if(!name.length  || ! occupation.length || !notes.length)
				return;

			//aggiungiamo il model alla collection
			this.collection.create({
				name: name,
				gender: gender,
				occupation: occupation,
				notes: notes
			});

			//resettiamo il form dopo la creazione
			this.$("input, textarea").val('');
			this.$("[name='gender']").val('M');
		}
	});</pre>
<h3>Avviamo la nostra javascript web application!</h3>
<p>Infine, per instanziare i nostri componenti ed avviare l&#8217;applicazione, ci serviremo del seguente codice javascript:</p><pre class="crayon-plain-tag">// nel momento in cui jQuery è pronto, inizializiamo i nostri componenti 
jQuery(function ($) {
	//creiamo una nuova istanza per la collection degli individui con due models
	var persons = new PersonList([
		{
			name: "Mark Zuckerberg",
			gender: "M",
			occupation: "Sviluppatore",
			notes: "Il creatore di Facebook"
		},
		{
			name: "Giacomo Freddi",
			gender: "M",
			occupation: "Sviluppatore",
			notes: "Web Designer Freelance e Developer, si occupa del design e dello sviluppo di applicazioni "+
					"web dal 2008, come molti freelance è abituato a gestire più ruoli e spaziare su più campi,"+
					" ma la sua passione principale è quella della creazione di interfacce front-end e back-end"+
					" utilizzando codice html5 e css3. Adora usare pattern MVC per i suoi Javascript."
		}
	]);
	//creiamo una nuova istanza per la vire dell'applicazione 
	//principale associandogli la collection
	var app = new AppView({
			collection : persons
	});
});</pre><p>
<h2>Stili e CSS</h2>
<p>Come è possible notare scaricando i sorgenti, al fine di rendere il tutto un po più piacevole all&#8217;utente, abbiamo inserito degli <strong>effetti CSS3</strong> per animare l&#8217;inserimento e l&#8217;eliminazione di ogni record dalla lista; il codice utilizzato proviene dalla <a title="Animate.css libreria per animazioni ed effetti CSS3" href="http://www.upcreative.net/animate-css-animazioni-css3-cross-browser/"><strong>libreria animate.css</strong></a>, e prevede un effetto di entrata con fade da sinistra nel momento dell&#8217;inserimento, mentre un elemento di &#8220;caduta&#8221; nel momento della eliminazione.</p>
<p>Abbiamo inoltre reso il tutto responsive grazie al <a title="Bootstrap 3 - sistema di griglie" href="http://getbootstrap.com/css/#grid">sistema di griglie di Boostrap 3.</a></p>
<p>Divertiti con i sorgenti!</p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-entrata.jpg"><img class="alignnone size-full wp-image-2494" alt="effetto-CSS3-entrata" src="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-entrata.jpg" width="690" height="293" /></a> <a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-caduta.jpg"><img class="alignnone size-full wp-image-2495" alt="effetto-CSS3-caduta" src="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-caduta.jpg" width="690" height="293" /></a></p>
<div class="g-cols">
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/13112013-backbone-responsive-we-app/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div>
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/2491/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div>
</div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/">Tutorial: Backbone web app responsive con Bootstrap 3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web design: i 10 migliori CSS framework responsive</title>
		<link>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/</link>
		<comments>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/#comments</comments>
		<pubDate>Sat, 05 Oct 2013 14:39:43 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javscript]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[responsive]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=1952</guid>
		<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/">Web design: i 10 migliori CSS framework responsive</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Come si sà il tempo è denaro, e usare un framework CSS Responsive per velocizzare ed automatizzare i tempi di avvio ed i settings iniziali dei propri lavori è diventata ormai una caratteristica fondamentale per qualsiasi web designer.</p>
<h3>Ma cos&#8217;è un framework?</h3>
<blockquote><p>Un <b>framework</b> è una struttura logica di supporto su cui un <a title="Software" href="http://it.wikipedia.org/wiki/Software">software</a> può essere progettato e realizzato, spesso facilitandone lo sviluppo</p>
<p><em>Fonte <a href="http://it.wikipedia.org/wiki/Framework">wikipedia</a></em></p></blockquote>
<p>Nel mondo del web design, per essere più specifici, un framework è <strong>l&#8217;insieme strutturato di file (perlopiù HTML, CSS e Javascript), cartelle e codice standardizzato secondo una logica</strong>, che viene utilizzato come fondamenta o supporto per la creazione di un nuovo sito o applicazione web.</p>
<p>Lo scopo di un framework è quindi quello di fornire una base di partenza comune in modo tale che il web designer non debba riscrivere da zero i propri progetti ogni volta, ma possa affidarsi ad una logica di codice solida e comune.</p>
<p>In questo articolo voglio aiutare gli web designer che sono alla ricerca di un framework, ma che ancora non conoscono molto bene le caratteristiche di quelli più utilizzati, proponendo 10 dei <strong>migliori framework responsive CSS e open source </strong>per la creazione di interfacce grafiche.</p>
<p>Siccome i termini <strong>Mobile First</strong> e <strong>Responsive</strong>, con l&#8217;avvento e la diffusione di dispositivi mobili sono diventati un must, di seguito ho elencato solo quei Framework che presentano queste funzionalità.</p>
<h5>Prima di iniziare</h5>
<p>Molte volte, per mancanza di budget o di tempo, ci dobbiamo affidare a dei <strong>template responsive premium</strong>; prima di mostrarti la lista dei migliori framework responsive ti voglio segnalare questi ottimi temi responsive di altissima qualità che ho avuto l&#8217;occasione di usare per alcuni dei miei progetti:
		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign">Metronic &#8211; Responsive Admin Dashboard Template </a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign">Porto &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign">SmartStart &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/preview_01.__large_preview.jpg" class="attachment-full" alt="preview_01.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/Preview.__large_preview.png" class="attachment-full" alt="Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview1.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign">Synergy &#8211; Responsive &amp; Interactive HTML Portfolio</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign">Karma &#8211; Responsive Clean Website Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign">Developr &#8211; Fully Responsive Admin Skin</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/synergy_preview.__large_preview.jpg" class="attachment-full" alt="synergy_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_preview.__large_preview.jpg" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_splash.__large_preview.jpg" class="attachment-full" alt="01_splash.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<a style="font-size: 1.8em; line-height: 1.2em;" title="Mobile first front-end framework per uno sviluppo web più veloce ed intuitivo" href="http://getbootstrap.com">Bootstrap</a></p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_01.jpg"><img class="alignnone size-full wp-image-1958" alt="i-10-migliori-framework-responsive-CSS_01" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_01.jpg" width="690" height="340" /></a></p>
<p>E&#8217; sicuramente il più famoso, e quello che ha bisogno di meno presentazioni; elegante, intuitivo e veloce. Dispone di un&#8217;ottima libreria di componenti javascript, un&#8217;ottima documentazione e dalla versione 3.0 è diventato <strong>mobile-first. </strong>Sviluppato da Twitter, Bootstrap 3 utilizza <a href="http://lesscss.org">LESS</a> e, compilato tramite <a href="http://nodejs.org">Node.js</a>, offre nella sezione <em>Customize</em> la possibilità di <strong>personalizzare quasi ogni aspetto grafico</strong> tramite delle variabili prima del download.</p>
<h3><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a title="Il più avanzato front-end framework responsive al mondo" href="http://foundation.zurb.com">Foundation</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_02.jpg"><img class="alignnone size-full wp-image-1959" alt="i-10-migliori-framework-responsive-CSS_02" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_02.jpg" width="690" height="340" /></a></p>
<p>Si presenta come il più avanzato front-end framework responsive al mondo. Anch&#8217;esso mobile-first, fa della <strong>semanticità</strong> del codice uno dei suoi punti di forza, &#8220;per poter scrivere un markup pulito senza sacrificare l&#8217;utilità e la velocità del framework&#8221;. Come Bootstrap, presenta un&#8217;ottima libreria di componenti javascript.</p>
<h3><a title="Framework responsive per web app leggere e veloci" href="http://topcoat.io">Topcoat</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_03.jpg"><img class="alignnone size-full wp-image-1960" alt="i-10-migliori-framework-responsive-CSS_03" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_03.jpg" width="690" height="340" /></a></p>
<p>Framework CSS per applicazioni web pulite e veloci. Disegnato per garantire le massime performance, Topcoat presenta una bella collezione di componenti UI, è facilmente personalizzabile e permette anche il <strong>donwload in PSD degli elementi dell&#8217;interfaccia</strong>.</p>
<h3><a title="Un set leggero di moduli CSS da utilizzare in ogni tipo di progetto web" href="http://purecss.io">Pure</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_04.jpg"><img class="alignnone size-full wp-image-1961" alt="i-10-migliori-framework-responsive-CSS_04" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_04.jpg" width="690" height="340" /></a></p>
<p>Pure è si presenta come un set leggero di moduli CSS da utilizzare in ogni tipo di progetto web. Offre una buona documentazione ed effettivamente è molto leggero (il peso totale è di soli 6KB).</p>
<h3><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a title="Boilerplate framework per la creazione di siti web responsive e mobile-ready" href="http://www.getskeleton.com">Skeleton</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_05.jpg"><img class="alignnone size-full wp-image-1962" alt="i-10-migliori-framework-responsive-CSS_05" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_05.jpg" width="690" height="340" /></a></p>
<p>Skeleton è un framework semplice e pulito per siti web e applicazioni HTML5. Mette a disposizione solamente gli elementi di cui hai bisogno, niente di più. Come Topcoat permette il download  di un <strong>template PSD per il mock up</strong> dei tuoi lavori.</p>
<h3><a title="Framework CSS modulare per siti web flessibili, accessibili e responsive" href="http://www.yaml.de">YAML</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_06.jpg"><img class="alignnone size-full wp-image-1963" alt="i-10-migliori-framework-responsive-CSS_06" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_06.jpg" width="690" height="340" /></a></p>
<p>Framework CSS modulare per siti web flessibili, accessibili e responsive. Anche questo molto leggero (5.9 KB) e costruito utilizzando <a title="SASS per CSS" href="http://sass-lang.com">SASS</a>, è testato and supportato dalla maggior parte dei browser come Chrome, Firefox, Opera, Safari ed Internet Explorer.</p>
<h3><a title="Framework CSS flessibile e responsive" href="http://gumbyframework.com">Gumby</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_07.jpg"><img class="alignnone size-full wp-image-1964" alt="i-10-migliori-framework-responsive-CSS_07" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_07.jpg" width="690" height="340" /></a></p>
<p>Framework CSS flessibile e responsive. Presenta una buona libreria di elementi UI e include diversi tipi di griglie con molte variazioni di colonne, che permettono di avere la massima flessibilità durante l&#8217;intero processo di realizzazione di qualsiasi progetto.</p>
<h3><a title="Framework CSS professionale" href="http://imperavi.com/kube/">Kube</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_08.jpg"><img class="alignnone size-full wp-image-1965" alt="i-10-migliori-framework-responsive-CSS_08" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_08.jpg" width="690" height="340" /></a></p>
<p>Dai creatori di <a title="Javascript Editor" href="http://imperavi.com/redactor/"><strong>Redactor.js</strong></a>, Kube si presenta come un framework CSS per sviluppatori professionali. Dispone di un sistema di griglie rivoluzionario e offre molta libertà sulla codifica degli stili.</p>
<h3><a title="Responsive HTML5 e Javascript toolkit" href="http://groundwork.sidereel.com">Groundwork</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_09.jpg"><img class="alignnone size-full wp-image-1966" alt="i-10-migliori-framework-responsive-CSS_09" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_09.jpg" width="690" height="340" /></a></p>
<p>Compilato anch&#8217;esso tramite SASS, Groundwork CSS è un buon toolkit HTML5 Responsive e Javascript.</p>
<h3><a title="Responsive Framework CSS" href="http://tuktuk.tapquo.com">Tuktuk</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_10.jpg"><img class="alignnone size-full wp-image-1967" alt="i-10-migliori-framework-responsive-CSS_10" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_10.jpg" width="690" height="340" /></a></p>
<p>Framework Responsive per dare flessibilità ai propri progetti facilmente. Usa funzionalità CSS 3, è leggero e veloce</p>
<h3>Bella lista, ma quale dei framework scegliere?</h3>
<p>Scegliere il proprio framework non è sicuramente facile, e si può dire che per poter capire meglio quale fa al caso nostro bisogna  all&#8217;inizio provarli direttamente; tuttavia altri aspetti possono essere considerati nella scelta:</p>
<ul>
<li>La grandezza e il tipo di progetto che devi realizzare</li>
<li>La facilità e la velocità di scrittura del codice</li>
<li>La documentazione (più dettagliata è, e più veloce riuscirai a capire come utilizzare il framework)</li>
<li>Con quale frequenza il framework viene aggiornato ed il supporto a lungo termine</li>
<li>La velocità di installazione</li>
<li>Il numero di opzioni disponibili</li>
<li>L&#8217;integrazione con altri sistemi</li>
<li>La leggerezza dei file inclusi</li>
</ul>
<p>E tu quale utilizzerai? Se hai altre ottime soluzioni da segnalare, non esitare a segnalarle nei commenti!
		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5>Template responsive premium</h5>

		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign">Metronic &#8211; Responsive Admin Dashboard Template </a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign">Porto &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign">SmartStart &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/preview_01.__large_preview.jpg" class="attachment-full" alt="preview_01.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/Preview.__large_preview.png" class="attachment-full" alt="Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview1.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign">Synergy &#8211; Responsive &amp; Interactive HTML Portfolio</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign">Karma &#8211; Responsive Clean Website Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign">Developr &#8211; Fully Responsive Admin Skin</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/synergy_preview.__large_preview.jpg" class="attachment-full" alt="synergy_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_preview.__large_preview.jpg" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_splash.__large_preview.jpg" class="attachment-full" alt="01_splash.__large_preview" /></a>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/">Web design: i 10 migliori CSS framework responsive</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
