Fatti: A. Il 30 marzo 1978 la Federazione A._ ha acquistato il fondo particella n. 543 di X._ dalla B._AG, la quale lo aveva utilizzato per decenni come deposito di combustibili per il commercio all'ingrosso. Una volta smantellati i serbatoi e sistemato il terreno, il 2 ottobre 1978 il Dipartimento dell'ambiente del Cantone Ticino ha dato atto che nel terreno non vi erano tracce di inquinamento da idrocarburi. La Federazione A._ vi ha costruito un capannone destinato allo smercio di prodotti ortofrutticoli e a uffici. B. Il 23 aprile 2007 la Sezione per la protezione dell'aria, dell'acqua e del suolo del Dipartimento del territorio del Cantone Ticino ha informato la proprietaria che il fondo sarebbe stato iscritto nel catasto dei siti inquinati in relazione con l'attività svolta in precedenza dalla B._AG. Dopo avere effettuato alcuni sondaggi preliminari, il 23 aprile 2008 la Federazione A._ ha chiesto al Dipartimento del territorio di decidere la ripartizione dei costi di indagine e risanamento in applicazione degli art. 32c e 32d della legge federale sulla protezione dell'ambiente del 7 ottobre 1983 (RS 814.01 - LPAmb). Pochi giorni dopo, il 29 aprile 2008, essa ha avviato anche una causa civile fondata sull'art. 32b bis LPAmb davanti alla Pretura di Bellinzona, chiedendo che la B._AG fosse condannata a pagarle fr. 30'245.25 quale risarcimento dei costi delle indagini preliminari e delle spese legali già affrontate, nonché una somma ancora da definire per i costi futuri di analisi e smaltimento del materiale che avrebbe dovuto essere rimosso dal mappale n. 543. La causa è però stata subito sospesa in attesa dell'esito della procedura amministrativa. C. Il 15 maggio 2008 la Federazione A._ ha venduto il fondo n. 543 di X._ alla C._SA; il trapasso di proprietà è stato iscritto nel registro fondiario il 19 maggio 2008. Nel contratto la venditrice si è impegnata a fare assumere alla B._AG le conseguenze dell'iscrizione del fondo nel catasto dei siti inquinati e ha ricevuto mandato per agire in responsabilità contro di essa e per ridurre il più possibile i costi. Il 7 luglio 2009 la C._SA ha ricevuto la licenza edilizia per erigere lo stabile nel quale svolgere la propria attività aziendale. D. Il Dipartimento del territorio si è pronunciato il 13 luglio 2012 sull'istanza di ripartizione dei costi; ha posto le spese di fr. 311'711.40 necessarie per determinare la natura e l'entità dell'inquinamento del mappale 543 a carico della perturbatrice per comportamento B._AG nella misura del 95 % e della C._SA quale perturbatrice per situazione per il restante 5 %. Con decisione del 27 febbraio 2013 il Consiglio di Stato ticinese ha ridotto le spese a fr. 280'991.40. Con la riattivazione della causa civile la Federazione A._ ha precisato le proprie domande, chiedendo che la B._AG fosse condannata a pagarle complessivamente fr. 818'149.62 a titolo di rifusione delle spese d'indagine e legali nelle diverse fasi della vicenda, dei costi della procedura amministrativa e del danno fatto valere contro di lei dalla C._SA (fr. 627'595.50). La convenuta ha chiesto la reiezione dell'azione o, in via subordinata, l'accoglimento per l'importo massimo di fr. 29'455.40; ha tuttavia eccepito preliminarmente la mancanza di legittimazione attiva. La Federazione A._ ha denunciato la lite alla C._SA, che non è però intervenuta. E. La Pretora aggiunta di Bellinzona ha respinto la petizione con sentenza del 15 gennaio 2015, ritenendo l'attrice priva di legittimazione attiva. Ha considerato ch'essa non aveva effettuato lavori di scavo per edificare sul fondo come esige l'art. 32b bis LPAmb e che, per di più, con la vendita aveva perso anche la qualità di detentrice. Il successivo appello dell'attrice è stato respinto il 4 febbraio 2016 dalla II Camera civile del Tribunale di appello ticinese per motivi sostanzialmente analoghi a quelli del giudizio di prima istanza, sui quali si tornerà. F. La Federazione A._ insorge davanti al Tribunale federale con ricorso in materia civile del 16 marzo 2016; chiede che la sentenza d'appello sia annullata, che le sia riconosciuta la legittimazione attiva e che la causa sia ritornata all'autorità cantonale per nuovo giudizio su spese e ripetibili. In via subordinata postula il rinvio per nuova decisione nel senso dei considerandi. La B._AG ha proposto di respingere il ricorso. Entrambe le parti hanno presentato una seconda scrittura. L'autorità cantonale non si è pronunciata.