Proprietà Top non funziona con Position Absolute

di Orfeo63 il
9 risposte

Buongiorno,

non riesco a gestire la proprietà Top del tag Div Class="scatola" (qualsiasi valore metto nel top non vien considerato).

Entrando con la funzione “Ispeziona da Chrome” il sistema mi segnala sulla proprietà Top relativa al DIV “scatola” quanto segue:

La proprietà position: static impedisce a top di avere un effetto

Non riesco a capire perché, in quanto DIV Scatola è Absolute all'interno di un tag Contenitore che è Relative.

Dove vede il sistema la “Position: static” ?

Potete gentilmente aiutarmi a capire ?

Grazie

Codice Html

<div class="banner">
</div>
<div class="contenitore"> 
    <div class="scatola">
        <div class="interno-scatola">
            <p class="testo">
        
<h3 style="color: black; text-align: center;"><strong>STAGIONE 2023-2024</strong></h3>
<h3 style="color: green; text-align: center;"><strong>VISITE MEDICHE - INFORMAZIONI</strong></h3>
<br>
<br>
<p>La vigente normativa prevede che, per la pratica sportiva non agonistica dai 6 anni fino agli 11 anni, occorre il certificato medico xxxxxxxxxxxxxxxxx

        </p>
      </div>
  </div>
</div>

Proprietà CSS

/***********************************/
/* Media Query - dispositivi pc desktop */
@media only screen and (min-width: 851px) and (max-width: 1800px) { /* dispositivi pc desktop */


body {
   margin: 0;
   padding: 0;
   font-family: Arial, sans-serif; 
}

.banner {
    display: block;
   position: absolute;
    top: 100px;
    width: 100%;
   height: 45%;
    background-image: url('/vibe/Immagini_Sfondi/Visite_Mediche.jpg'); 
    background-size: cover;
   background-position: center;
}
.contenitore {
    display: block;
   position: relative;
}    
.scatola::before {
    content: ' ';
   display: block;
    position: absolute;
    background-image: url('/vibe/Immagini_Sfondi/corsa-bimbi-slide.jpg'); 
   background-size: cover;
   background-position: center;
    top: 300px; 
   width: 100%;
   height: 100%; 
    opacity: 0.1;
   padding: 20px;
}
.interno-scatola {
    position: absolute; 
    top: 270px;
   border: 3px solid green;
   margin: 60px 150px 20px 150px;
   padding: 20px;
   box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); /* Effetto ombra */
}
.testo {
color: black;
}

}

9 Risposte

  • Ringrazio sihsandrea per il link che contiene una spiegazione sul corretto uso della Proprietà Position.

    Purtroppo questo articolo non contiene la risposta al mio problema.

    In breve, io ho un DIV Contenitore (genitore) con proprietà Position: Relative e un DIV Scatola (figlio) con proprietà Position: Absolute a cui ho associato l'attributo Top: 300px che mi viene annullato dal sistema.

    Guardando con Ispeziona di Chrome il sistema mi dice che la “La proprietà position: static impedisce a top di avere un effetto”, ma la proprietà position del DIV Scatola è Absolute e quella del genitore DIV Contenitore è Relative, quindi il mio attributo Top doveva funzionare.

    Dove vede il sistema che il DIV Scatola è soggetto ad una Position: Static ?

    Non so se mi sono spiegato.

    Potete aiutarmi a capire ?

    Grazie

  • 02/09/2023 - Orfeo63 ha scritto:


    .scatola::before {
        content: ' ';
       display: block;
        position: absolute;
        background-image: url('/vibe/Immagini_Sfondi/corsa-bimbi-slide.jpg'); 
       background-size: cover;
       background-position: center;
        top: 300px; 
       width: 100%;
       height: 100%; 
        opacity: 0.1;
       padding: 20px;
    }

    3. Absolute

    Con position: relative, un elemento viene posizionato rispetto a sé stesso, mentre il valore absolute posiziona un elemento rispetto al suo elemento genitore.

    Mettendoci relative cosa succede?

  • Ciao,

    mettendo Relative su Div scatola::before non cambia nulla.

    Comunque il Div scatola è all'interno di un genitore, che è a sua volta Relative, e quindi dovrebbe funzionare.

    Non capisco

  • Incrementa top poco alla volta

  • mettendo Relative su Div scatola::before non cambia nulla

    Div?

    Su css!

  • Nel senso, mettendo Relative su classe .scatola::before, non cambia nulla.

    Comunque il codice lo vedi nel mio primo post in cronologia, così capisci.

    Quando dici di aumentare di poco il valore di Top mi fa capire che forse non hai letto che il Top si disattiva e quindi non puoi aumentarlo.

    Se vuoi prova il codice e vedi cosa intendo.

    Se ci sono altri consigli sono ben accetti.

    Grazie

  • Ciao,

    non da errore; il problema è che se aumenti la proprietà Top e la porti, ad esempio a 1000px, il Div Scatola non si sposta.

    Solo se entri in “ispezione” di Chrome ti dice che “La proprietà position: static impedisce a top di avere un effetto”.

    Infatti qualsiasi valore metti a Top, non cambia nulla.

Devi accedere o registrarti per scrivere nel forum
9 risposte