2017-01-11 1 views
2

In css2.1 spec, il est dit:Quel est le bloc conteneur d'éléments flottants?

Une boîte flottant est déplacé vers la gauche ou vers la droite jusqu'à ce que son bord extérieur en contact avec le bord du bloc contenant le bord extérieur ou d'un autre flotteur.

Je me demande quel est le bloc qui contient des éléments flottants, et je tester:

body { 
    position: relative; 
    margin: 5px; 
    padding: 10px; 
} 

p { 
    float: left; 
    position: absolute; 
    margin: 10px; 
} 

<body> 
    <p>hehe</p> 
</body> 

Selon css2.1 spec, le bloc de l'élément positionné absolu contenant est la boîte de remplissage du conteneur de bloc positionné le plus proche. Mais dans le code ci-dessus, l'élément flottant est flotté jusqu'à la limite de la boîte de contenu. Je suis confus comment trouver le bloc contenant de l'élément flotté.

+0

Vous devez ajouter d'autres éléments. la 'position: absolute;' n'est pas nécessaire. il va en quelque sorte annuler le flottant en fonction de la façon dont vous l'utilisez. Si vous placez une bordure sur votre élément, vous verrez sa frontière 'border: solid blue;' – Andrew

Répondre

1

La prémisse de votre question est erronée. Un élément positionné de manière absolue ne peut pas flotter et un flotteur ne peut pas être positionné de manière absolue. De section 9.7:

[...] si « position » a la valeur « absolue » ou « fixe », la boîte est en position absolue, la valeur calculée de « flotter » est « aucun » [ ...]

Vous n'essayez pas de trouver le bloc conteneur d'un flottant ici. Vous essayez de trouver le bloc contenant d'un élément absposé. Cela dit, si vous devez vraiment le savoir, le bloc conteneur d'un flottant est le même que pour les éléments relativement positionnés ou non positionnés comme je l'ai décrit dans my answer to your previous question, car les flotteurs ne peuvent pas être absinthes.