Welcome to FP English.TOP   Click to listen highlighted text! Welcome to FP English.TOP
<style>
/* Stili CSS Ottimizzati per fp-english (Mobile First) */
.fp-article-wrapper { font-family: 'Segoe UI', system-ui, sans-serif; color: #334155; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 0 10px; box-sizing: border-box; overflow-x: hidden; }
.fp-article-wrapper * { box-sizing: border-box; }

.fp-main-title { color: #1e3a8a; font-size: 1.6rem; text-align: center; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px; line-height: 1.3; }

.fp-toc { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 15px; margin-bottom: 25px; }
.fp-toc h3 { margin-top: 0; color: #1e3a8a; font-size: 1.1rem; }
.fp-toc ul { list-style: none; padding-left: 0; margin: 0; }
.fp-toc li { margin-bottom: 8px; font-size: 0.95rem; }
.fp-toc a { color: #0d9488; text-decoration: none; font-weight: 500; transition: color 0.2s; }
.fp-toc a:hover { color: #1e3a8a; text-decoration: underline; }

.fp-box { padding: 15px; border-radius: 12px; margin-bottom: 20px; }
.fp-box h2 { font-size: 1.3rem; margin-top: 0; color: #1e3a8a; line-height: 1.3; }
.fp-box h3 { color: #1e3a8a; font-size: 1.1rem; margin-top: 15px; border-bottom: 2px solid #e2e8f0; padding-bottom: 5px; line-height: 1.3; }
.fp-box-obiettivo { background-color: #f0f9ff; border-left: 4px solid #0284c7; }
.fp-box-regola { background-color: #f0fdf4; border-left: 4px solid #16a34a; }
.fp-box-warning { background-color: #fff7ed; border-left: 4px solid #ea580c; }
.fp-box-pro { background-color: #f0fdfa; border-left: 4px solid #0d9488; }

/* Tabelle responsive */
.fp-table-wrapper { width: 100%; overflow-x: auto; margin-bottom: 15px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.fp-table { width: 100%; border-collapse: collapse; background: white; min-width: 300px; font-size: 0.9rem; }
.fp-table th { background-color: #1e3a8a; color: white; padding: 10px; text-align: left; }
.fp-table td { padding: 10px; border-bottom: 1px solid #e2e8f0; }
.fp-table tr:last-child td { border-bottom: none; }

.fp-list { padding-left: 20px; margin: 10px 0; font-size: 0.95rem; }
.fp-list li { margin-bottom: 8px; }

/* Stili Esercizio Gap Fill & Translation */
.fp-quiz-section { background: #f0f9ff; padding: 20px; border-radius: 12px; border: 2px solid #0d9488; margin-top: 30px; }
.fp-q-row { margin-bottom: 15px; border-bottom: 1px solid #e2e8f0; padding-bottom: 15px; }
.fp-q-row:last-child { border-bottom: none; margin-bottom: 0; }
.fp-q-text { margin-bottom: 8px; font-weight: 500; color: #1e293b; line-height: 1.8; font-size: 1rem; }

.fp-input-inline { display: inline-block !important; width: 160px !important; height: 32px !important; padding: 2px 5px !important; margin: 0 3px !important; border: 2px solid #cbd5e1 !important; border-radius: 6px !important; font-size: 0.95rem !important; text-align: center !important; font-weight: bold !important; outline: none !important; transition: border-color 0.2s !important; vertical-align: middle !important; background: white !important; color: #1e3a8a !important; }
.fp-input-inline:focus { border-color: #0d9488 !important; box-shadow: 0 0 0 2px rgba(13,148,136,0.2) !important; }

.fp-input-block { display: block; width: 100%; padding: 10px; margin-top: 8px; border: 2px solid #cbd5e1; border-radius: 6px; font-size: 0.95rem; outline: none; transition: border-color 0.2s; color: #1e3a8a; font-weight: 500; box-sizing: border-box; background: white; }
.fp-input-block:focus { border-color: #0d9488; }

.fp-feedback { margin-top: 8px; padding: 10px; border-radius: 6px; display: none; font-weight: bold; font-size: 0.90rem; line-height: 1.4; }
.fp-feedback span.explanation { display: block; font-weight: normal; font-size: 0.85rem; margin-top: 4px; color: inherit; opacity: 0.9; }

/* Bottoni in flex */
.fp-btn-container { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px; }
.fp-btn { flex: 1; min-width: 140px; border: none; padding: 12px 15px; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 0.95rem; text-align: center; transition: transform 0.1s, opacity 0.2s; }
.fp-btn:active { transform: scale(0.98); }
.fp-btn-check { background: #0d9488; color: white; }
.fp-btn-check:hover { background: #0f766e; }
.fp-btn-show { background: #1e3a8a; color: white; }
.fp-btn-show:hover { background: #1e40af; }

/* Dashboard Punteggio e Gatto */
.fp-score-board { margin-top: 25px; padding: 20px; border-radius: 12px; display: none; text-align: center; border: 3px solid transparent; }
.fp-score-board h3 { margin: 10px 0; font-size: 1.5rem; text-transform: uppercase; }
.fp-score-board p { font-size: 1.0rem; margin: 0; font-weight: bold; line-height: 1.5; }
.fp-cat-video { width: 100%; max-width: 150px; height: 150px; object-fit: contain; margin: 0 auto; display: block; image-rendering: pixelated; border-radius: 8px; background: rgba(255,255,255,0.5); }

/* --- STILI ESERCIZIO: SENTENCE BUILDER (Riordino) --- */
.fp-reorder-section { background: #f8fafc; padding: 20px; border-radius: 12px; border: 2px solid #3b82f6; margin-top: 30px; }
.fp-reorder-row { margin-bottom: 20px; background: white; padding: 15px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.fp-reorder-hint { font-weight: 500; color: #1e293b; margin-bottom: 12px; font-size: 0.95rem; display: block; border-bottom: 1px solid #e2e8f0; padding-bottom: 5px; }
.fp-dropzone { min-height: 52px; border: 2px dashed #cbd5e1; border-radius: 8px; padding: 10px; margin-bottom: 12px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; transition: border-color 0.3s, background-color 0.3s; }
.fp-dropzone.correct { border-color: #22c55e; background-color: #f0fdf4; border-style: solid; }
.fp-dropzone.incorrect { border-color: #ef4444; background-color: #fef2f2; border-style: solid; }
.fp-word-bank { min-height: 52px; padding: 10px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; background: #f1f5f9; border-radius: 8px; border: 1px solid #e2e8f0; }
.fp-word-chip { background: #0284c7; color: white; padding: 8px 14px; border-radius: 20px; font-weight: bold; font-size: 0.95rem; cursor: pointer; user-select: none; box-shadow: 0 3px 0 #0369a1; transition: transform 0.1s, box-shadow 0.1s; -webkit-tap-highlight-color: transparent; }
.fp-word-chip:active { transform: translateY(3px); box-shadow: 0 0 0 #0369a1; }
</style>

<div class="fp-article-wrapper">

    <h1 class="fp-main-title">Advanced Prepositions & Collocations (C1/C2)</h1>

    <!-- INDICE INTERATTIVO -->
    <div class="fp-toc">
        <h3>📌 Indice della Lezione</h3>
        <ul>
            <li><a href="#obiettivo">🎯 Obiettivo della lezione (C1/C2)</a></li>
            <li><a href="#collocations">🌟 Advanced Fixed Collocations</a></li>
            <li><a href="#prepositions">⏱️ Prepositional Phrases (Accademic & Formal)</a></li>
            <li><a href="#nuances">🔗 Preposizioni dipendenti (Verb/Adj + Prep)</a></li>
            <li><a href="#errori">🚫 Errori comuni da evitare</a></li>
            <li><a href="#esercizi">🎮 1. Gap Fill & Translation Exercises</a></li>
            <li><a href="#reorder">🧩 2. Extra: Sentence Builder</a></li>
        </ul>
    </div>

    <!-- OBIETTIVO -->
    <div id="obiettivo" class="fp-box fp-box-obiettivo">
        <h2>🎯 Obiettivo della lezione (C1/C2)</h2>
        <p>A livello C1/C2, la padronanza delle preposizioni non riguarda più solo il movimento (es. *in, at, on*), ma la gestione di **collocazioni fisse** e **frasi preposizionali formali** che danno tono e autorevolezza alla tua produzione scritta e orale. 🚀</p>
    </div>

    <!-- FIXED COLLOCATIONS -->
    <div id="collocations" class="fp-box fp-box-pro">
        <h2>🌟 Advanced Fixed Collocations</h2>
        <p>Le collocazioni sono combinazioni naturali di parole che i madrelingua usano quasi esclusivamente insieme. Sbagliare la preposizione o il verbo in una collocazione rende il linguaggio innaturale.</p>
        
        <div class="fp-table-wrapper">
            <table class="fp-table">
                <thead>
                    <tr>
                        <th>Collocazione</th>
                        <th>Significato</th>
                        <th>Esempio</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>In accordance with</strong></td>
                        <td>In conformità a</td>
                        <td><em>The company acted <strong>in accordance with</strong> the law.</em></td>
                    </tr>
                    <tr>
                        <td><strong>Adverse to / Averse to</strong></td>
                        <td>Contrario a / Avverso a</td>
                        <td><em>He is <strong>averse to</strong> taking risks.</em></td>
                    </tr>
                    <tr>
                        <td><strong>To be detrimental to</strong></td>
                        <td>Essere dannoso per</td>
                        <td><em>Stress is <strong>detrimental to</strong> health.</em></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>

    <!-- PREPOSITIONAL PHRASES -->
    <div id="prepositions" class="fp-box fp-box-pro">
        <h2>⏱️ Prepositional Phrases (Formal)</h2>
        <p>Queste espressioni sostituiscono spesso congiunzioni semplici o verbi comuni per elevare il registro:</p>
        
        <ul class="fp-list">
            <li><strong>With a view to + -ing:</strong> Con l'obiettivo di (es. *I'm saving money <strong>with a view to buying</strong> a house*).</li>
            <li><strong>On the grounds that:</strong> Sulla base del fatto che (es. *He resigned <strong>on the grounds that</strong> he wasn't supported*).</li>
            <li><strong>In view of / In light of:</strong> In considerazione di (es. *<strong>In light of</strong> recent events, the meeting was cancelled*).</li>
        </ul>
    </div>

    <!-- PREPOSITIONAL DEPENDENCIES -->
    <div id="nuances" class="fp-box fp-box-regola">
        <h2>🔗 Preposizioni dipendenti (Verb/Adj + Prep)</h2>
        <p>Memorizzare queste dipendenze è vitale per il *Use of English (Part 2)*:</p>
        <ul class="fp-list">
            <li><strong>Sympathetic to:</strong> (Sostenitore di/solidale con) - <em>He is <strong>sympathetic to</strong> the cause.</em></li>
            <li><strong>Subject to:</strong> (Soggetto a/condizionato da) - <em>The plan is <strong>subject to</strong> approval.</em></li>
            <li><strong>Conducive to:</strong> (Favorevole a) - <em>A quiet environment is <strong>conducive to</strong> study.</em></li>
        </ul>
    </div>

    <!-- ERRORI COMUNI -->
    <div id="errori" class="fp-box fp-box-warning">
        <h2>🚫 Errori comuni da evitare</h2>
        <div class="fp-table-wrapper">
            <table class="fp-table">
                <thead>
                    <tr>
                        <th>Errore C1/C2 ❌</th>
                        <th>Corretto ✅</th>
                    </tr>
                </thead>
                <tbody>
                    <tr><td>With a view to buy.</td><td>With a view to <strong>buying</strong>. (Dopo 'to' in questa struttura si usa il gerundio!)</td></tr>
                    <tr><td>Interested on the topic.</td><td>Interested <strong>in</strong> the topic. (Preposizione fissa con 'interested'!)</td></tr>
                    <tr><td>Based on the fact that he said...</td><td>On the <strong>grounds</strong> that he said... ('Based on' non introduce clausole, 'On the grounds that' sì!)</td></tr>
                </tbody>
            </table>
        </div>
    </div>

    <!-- ESERCIZIO 1: GAP FILL -->
    <div id="esercizi" class="fp-quiz-section">
        <h2 style="color: #1e3a8a; margin-top: 0; text-align: center; font-size:1.4rem;">1. Gap Fill & Translation (C1/C2)</h2>
        <p style="font-size: 0.95rem; color: #475569; text-align: center; margin-bottom: 20px;">
            Completa le frasi inserendo la preposizione o l'espressione corretta.
        </p>

        <div id="fp-quiz-list"></div>

        <div class="fp-btn-container">
            <button class="fp-btn fp-btn-check" onclick="validateQuiz()">Check Answers ✅</button>
            <button class="fp-btn fp-btn-show" onclick="showSolutions()">Show Solutions 💡</button>
        </div>

        <div id="fp-final-score" class="fp-score-board">
            <video id="fp-cat-reaction-vid" class="fp-cat-video" autoplay loop muted playsinline></video>
            <h3 id="fp-score-text"></h3>
            <p id="fp-score-msg"></p>
        </div>
    </div>

    <!-- ESERCIZIO 2: SENTENCE BUILDER -->
    <div id="reorder" class="fp-reorder-section">
        <h2 style="color: #1e40af; margin-top: 0; text-align: center; font-size:1.4rem;">2. Extra: Sentence Builder 🧩</h2>
        <p style="font-size: 0.95rem; color: #475569; text-align: center; margin-bottom: 20px;">
            Riordina le parole per formare le espressioni corrette!
        </p>

        <div id="fp-reorder-list"></div>

        <div class="fp-btn-container">
            <button class="fp-btn fp-btn-check" onclick="validateReorder()">Verify Sentences ✅</button>
            <button class="fp-btn fp-btn-show" onclick="showReorderSolutions()">Show Solutions 💡</button>
        </div>

        <div id="fp-reorder-score" class="fp-score-board" style="margin-top:20px; border: 2px solid transparent;">
            <video id="fp-cat-reorder-vid" class="fp-cat-video" autoplay loop muted playsinline></video>
            <h3 id="fp-reorder-text"></h3>
            <p id="fp-reorder-msg"></p>
        </div>
    </div>

</div>

<!-- SCRIPT ESERCIZI PROTETTI -->
<script>
(function() {
    let solutionsShown = false;
    let reorderSolutionsShown = false;

    // --- DATI ESERCIZIO 1 ---
    const quizData = [
        { type: 'gap', text: "1. The decision was made ________ (accordance) with company policy.", ans: ['in accordance'], ctx: "Collocazione: 'in accordance with'." },
        { type: 'gap', text: "2. He is averse ________ (do) any extra work after hours.", ans: ['to doing'], ctx: "Averse to + gerundio." },
        { type: 'gap', text: "3. This environment is highly conducive ________ (study).", ans: ['to study', 'to studying'], ctx: "Conducive to + sostantivo/gerundio." },
        { type: 'gap', text: "4. ________ (view) to improving results, we hired a consultant.", ans: ['with a view'], ctx: "Struttura: 'with a view to'." },
        { type: 'gap', text: "5. The contract is ________ (subject) to final approval.", ans: ['subject'], ctx: "Dipendenza: 'subject to'." },
        { type: 'trans', text: "6. L'ho fatto con l'obiettivo di imparare.", ans: ['i did it with a view to learning'], ctx: "Traduzione: 'with a view to learning'." },
        { type: 'trans', text: "7. È stato licenziato sulla base del fatto che era inadeguato.", ans: ['he was fired on the grounds that he was inadequate'], ctx: "Traduzione: 'on the grounds that'." }
    ];

    // --- DATI ESERCIZIO 2 ---
    const reorderData = [
        { hint: "Non sono contrario ad aiutare.", correct: ["I", "am", "not", "averse", "to", "helping."] },
        { hint: "In considerazione dei fatti, abbiamo deciso di agire.", correct: ["In", "light", "of", "the", "facts,", "we", "decided", "to", "act."] },
        { hint: "Ha agito in accordo con gli ordini ricevuti.", correct: ["He", "acted", "in", "accordance", "with", "the", "orders", "received."] },
        { hint: "Il fumo è dannoso per la salute.", correct: ["Smoking", "is", "detrimental", "to", "health."] },
        { hint: "L'ha fatto con l'obiettivo di guadagnare denaro.", correct: ["He", "did", "it", "with", "a", "view", "to", "earning", "money."] }
    ];

    const catVideos = { 
        static: "https://fpenglish.top/wp-content/uploads/2026/07/Prof-Meow-Meow-FP-ENGLISH-.TOP-STATIC.webm",
        happy: "https://fpenglish.top/wp-content/uploads/2026/07/Prof-Meow-Meow-FP-ENGLISH-.TOP-HAPPY.webm",
        angry: "https://fpenglish.top/wp-content/uploads/2026/07/Prof-Meow-Meow-FP-ENGLISH-.TOP-ANGRY.webm",
        shocked: "https://fpenglish.top/wp-content/uploads/2026/07/Prof-Meow-Meow-FP-ENGLISH-.TOP-SHOCKED.webm",
        ecstatic: "https://fpenglish.top/wp-content/uploads/2026/07/Prof-Meow-Meow-FP-ENGLISH-.TOP-ECSTATIC.webm"
    };

    // --- LOGICA ESERCIZI ---
    function initQuiz() {
        const container = document.getElementById('fp-quiz-list');
        if (!container) return;
        let htmlBuilder = "";
        quizData.forEach((item, index) => {
            if(item.type === 'gap') {
                let formattedText = item.text.replace('________', `<input type="text" id="q${index}" class="fp-input-inline" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">`);
                htmlBuilder += `<div class="fp-q-row">${formattedText}</div>`;
            } else {
                htmlBuilder += `<div class="fp-q-row" style="background:rgba(255,255,255,0.6); padding:15px; border-radius:8px;"><span class="fp-q-text" style="display:block; color:#0f766e; font-size:0.9rem;"><strong>Traduci:</strong> ${item.text}</span><input type="text" id="q${index}" class="fp-input-block" placeholder="Scrivi in inglese..." autocomplete="off"><div id="fb${index}" class="fp-feedback"></div></div>`;
            }
        });
        container.innerHTML = htmlBuilder;
    }

    function initReorder() {
        const container = document.getElementById('fp-reorder-list');
        if (!container) return;
        let htmlBuilder = "";
        reorderData.forEach((item, index) => {
            let scrambled = [...item.correct].sort(() => Math.random() - 0.5);
            let chipsHtml = scrambled.map(w => `<div class="fp-word-chip" onclick="window.toggleChip(this, ${index})">${w}</div>`).join('');
            htmlBuilder += `<div class="fp-reorder-row"><span class="fp-reorder-hint">🇬🇧 Traduci: <em>${item.hint}</em></span><div id="dropzone-${index}" class="fp-dropzone"></div><div id="bank-${index}" class="fp-word-bank">${chipsHtml}</div><div id="fb-reorder-${index}" class="fp-feedback"></div></div>`;
        });
        container.innerHTML = htmlBuilder;
    }

    window.toggleChip = function(chipElem, qIndex) {
        const dropzone = document.getElementById(`dropzone-${qIndex}`);
        const bank = document.getElementById(`bank-${qIndex}`);
        if (chipElem.parentElement === bank) dropzone.appendChild(chipElem);
        else bank.appendChild(chipElem);
    };

    window.validateQuiz = function() {
        let score = 0;
        quizData.forEach((item, index) => {
            let input = document.getElementById(`q${index}`);
            if(item.ans.includes(input.value.toLowerCase().trim())) score++;
        });
        const scoreArea = document.getElementById('fp-final-score');
        scoreArea.style.display = 'block';
        scoreArea.innerHTML = `<h3>SCORE: ${score}/${quizData.length}</h3>`;
    };

    window.showSolutions = function() {
        quizData.forEach((item, index) => { document.getElementById(`q${index}`).value = item.ans[0]; });
    };

    window.validateReorder = function() {
        let score = 0;
        reorderData.forEach((item, index) => {
            const dropzone = document.getElementById(`dropzone-${index}`);
            const userWords = Array.from(dropzone.children).map(c => c.innerText);
            if(userWords.join(" ") === item.correct.join(" ")) score++;
        });
        const scoreArea = document.getElementById('fp-reorder-score');
        scoreArea.style.display = 'block';
        scoreArea.innerHTML = `<h3>SCORE: ${score}/${reorderData.length}</h3>`;
    };

    window.showReorderSolutions = function() {
        reorderData.forEach((item, index) => {
            const dropzone = document.getElementById(`dropzone-${index}`);
            const bank = document.getElementById(`bank-${index}`);
            dropzone.innerHTML = '';
            item.correct.forEach(word => dropzone.innerHTML += `<div class="fp-word-chip" style="pointer-events:none;">${word}</div>`);
        });
    };

    initQuiz(); initReorder();
})();
</script>

Leave a Reply

Your email address will not be published. Required fields are marked *

✨​ Scegli il tuo livello🤌🏼 Italianish🟢 Conversazione e Speaking📖 Reading📖 Grammar📔 Vocabulary👽 QUIZ GAME🗣 Pratica Speaking
Vista
Effetti visivi
Click to listen highlighted text!