Difficulté à positionner les divs
P粉752290033
P粉752290033 2024-04-04 12:14:58
0
1
399

Je souhaite positionner un div par rapport aux autres éléments de la page.

Voici le CSS initial :

#puzzle
{
 display:inline-block;
 vertical-align: top;

 (position: static;)
}

#success
{
 display: none;
 position: absolute;
 top: 235px;
 left: 130px;
 border: 3px solid blue;
 border-radius:25px;
 color: blue;
 background-color: #cfd;
 text-align:center;
 padding:40px;
 font-size:20pt;
}

En cas de besoin, j'exécute le code suivant :

let p = puz.getBoundingClientRect();
let s = getelem("success");
s.style.left = p.left;
s.style.top = p.top;
s.style.display = "block";

Le résultat est :

puz.getBoundingClientRect()
DOMRect { x: 38, y: 183, ... }

document.getElementById("success").getBoundingClientRect()
DOMRect { x: 38, y: 33.833 ... }

(X et Y sont synonymes de Gauche et Haut)

Ça ressemble à ça :

La question est : Pourquoi s.top est-il différent de p.top ?

P粉752290033
P粉752290033

répondre à tous(1)
P粉635509719

#success est positionné de manière absolue, donc le flux d'autres éléments dans le DOM n'affecte pas son positionnement, tandis que top 等属性会影响其定位,而 #puzzle 的位置为 static (默认),并且不受 top est similaire, mais adapté au flux de documents.

De https://www.w3schools.com/Css/css_positioning.asp

Si vous voulez que #success soit dans le coin supérieur gauche du #puzzle, vous pouvez définir position:relative sur le #puzzle et vous assurer qu'il est le parent de #success dans le HTML.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!