Maison > Article > interface Web > Solution au flottant div+css
如何清楚浮动(一)
已知一个大的div容器,这个容器包含了两个子div容器,然后在这两个子div容器的后面再添加一个div(这个div表示清除浮动的div容器),清楚浮动的div容器设置css样式为clear:both,此时,大的div标签的内部(左右两边/*css5*/)浮动就清除了。
如果有一个大的div容器2664b5c137162ed32cb2c4b60e3a831f 16b28748ea4df4d9c2150843fecfba68 ,这个大的div包含了一个子div容器4cd6539b02a5cf52b7697d7aec70ae5416b28748ea4df4d9c2150843fecfba68, le conteneur sous-div définit une largeur, une hauteur, une couleur d'arrière-plan et ne définit pas de marges intérieures, et flottantes. À ce stade, le conteneur sous-div est par défaut à gauche. le conteneur sub-div est laissé flottant (float) hérite des propriétés du navigateur et n'a pas de fonction de mise en page. Ensuite, nous avons défini le flotteur du conteneur sous-div sur float:left ; j'ai découvert qu'après avoir défini le float:left, le conteneur sous-div flottait et le conteneur sous-div était à une certaine distance du haut du grand div. récipient.
<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!