如何清楚浮动(一)
已知一个大的div容器,这个容器包含了两个子div容器,然后在这两个子div容器的后面再添加一个div(这个div表示清除浮动的div容器),清楚浮动的div容器设置css样式为clear:both,此时,大的div标签的内部(左右两边/*css5*/)浮动就清除了。
如果有一个大的div容器
<body> <div class="divcss5"> <div class="clear"></div> <!--<div class="clear eft"></div> <div class="clear ight"></div>--> </div> </body>
flotte avec l'attribut margin
Ensuite, je margin-top:10px, et le conteneur div enfant se déplace vers le bas en fonction de l'original La distance est de 10px, c'est-à-dire que le flottement n'affectera pas le décalage de l'attribut margin-top De même, cela n'affectera pas margin-left, margin-right, <.>margin-bottomLe décalage que devrait avoir l'attribut.
Float n'a pas d'attributs top, left, right, bottom Ensuite, maintenant je supprime margin-top:10px;, je définis top:10px pour le conteneur sub-div, et je trouve que la coordonnée verticale n'apparaît pas, c'est-à-dire que le flottement n'a pas d'attribut supérieur. De la même manière, il n’y a pas d’attributs gauche, droite et inférieur. Alors, dans quelles circonstances les propriétés top, left, right et bottom peuvent-elles être définies pour avoir un effet sur le flottement ? Float a des attributs haut, gauche, droite et bas (réglage conditionnel de la position relativeposition)
Donc, j'ai ajouté la position relative : par rapport au conteneur sous-div, Ensuite, définissez top:10px et constatez soudainement que le conteneur div enfant était décalé vers le bas de 10px. Continuez dans l'état En d'autres termes, lors de la définition de float:left pour un conteneur sous-div, la définition de margin-left fonctionnera, mais la définition de top n'aura aucun effet. Top ne peut fonctionner que dans un état flottant lorsque la position relative est définie sur le conteneur div enfant. Cela signifie-t-il que left et top ne peuvent fonctionner que lorsqu'ils sont dans des positions relatives ? Alors maintenant, nous allons faire une expérience. J'ai supprimé float:left;position:relative; dans le conteneur div enfant. Il n'y aura pas de position flottante ou relative, puis j'écrirai top:10px;left:10px; suit clair{largeur : 200px;arrière-plan: #f2e;couleur:#030617;hauteur: 20px;top:50px;gauche: 10px;}; , le résultat est que le conteneur sous-div n'a pas bougé du tout sur les axes horizontal et vertical, il s'avère donc que left et top ne fonctionnent que lorsque la position relative est définie. La marge fonctionnera, que vous définissiez la position ou non.
Continuez le float flottant ci-dessus. Si vous définissez maintenant l'héritage pour float; héritez de l'Comment effacer les flottants (2) Ensuite, nous utilisons une autre méthode pour effacer les flottants, le code HTML est toujours le code ci-dessus, le code css du div du grand conteneur : . divcss5{padding:10px 0;width: 100%; left: 50%;right: 50%;background: #007CB5;}, code css du conteneur div enfant : .clear{width: 200px; background: #f2e ;color:#030617;height: 20px;float:left;}, ce que vous voyez à ce moment est l'effet flottant, le conteneur sous-div flotte au-dessus du grand conteneur. Pour le même principe, je. utilisez toujours clear:both ; nous pouvons utiliser le pseudo-élément CSS :after Ce qui suit est un code CSS très simple : écrivez une pseudo-classe dans le conteneur parent. divcss5:after{content: "1";clear : Both;display: block;}, à ce moment, ce que l'on voit c'est que le float du grand conteneur est effacé, et sur le navigateur on peut voyez que le conteneur sous-div est inclus dans le grand conteneur div. En affichant l'élément sur le navigateur, vous pouvez voir qu'after est inclus dans le conteneur parent. Par conséquent, after équivaut à ajouter un div flottant clair à l'intérieur du conteneur parent, sauf qu'il manque une couche div. Cette couche est implémentée par .divcss5. :après .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!