上一个div float之后下一个div不想跟在其后面

本文介绍了一种解决HTML中元素浮动导致布局错乱的方法,通过在适当的div标签中使用clear:both样式,可以有效地清除浮动影响,保持页面布局的正确性。

用clear:both解决

<div style="float"></div>
<div style="clear:both"></div>

 

以下是几种在父 `div` 中包含三个子 `div` 的常见布局方法: ### 利用 Flexbox 布局 通过 `flexbox` 布局可以很方便地实现子元素的水平或垂直排列,并且可以轻松控制元素的对齐方式。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Flexbox 三列布局</title> <style> .parent { display: flex; justify-content: space-between; /* 子元素之间均匀分布 */ } .child { width: 30%; /* 每个子元素宽度为父元素的 30% */ background-color: #ccc; height: 100px; } </style> </head> <body> <div class="parent"> <div class="child">Child 1</div> <div class="child">Child 2</div> <div class="child">Child 3</div> </div> </body> </html> ``` 在上述代码中,通过设置父元素的 `display` 属性为 `flex`,将其变为一个 `flex` 容器,然后使用 `justify-content: space-between` 让子元素在水平方向上均匀分布。 ### 浮动布局 浮动布局是一种传统的布局方式,通过设置子元素的 `float` 属性,可以让子元素在水平方向上排列。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>浮动三列布局</title> <style> .parent { overflow: auto; /* 清除浮动 */ } .child { float: left; width: 30%; /* 每个子元素宽度为父元素的 30% */ background-color: #ccc; height: 100px; margin-right: 5%; /* 子元素之间的间距 */ } .child:last-child { margin-right: 0; /* 最后一个子元素设置右边距 */ } </style> </head> <body> <div class="parent"> <div class="child">Child 1</div> <div class="child">Child 2</div> <div class="child">Child 3</div> </div> </body> </html> ``` 这里设置子元素的 `float` 属性为 `left`,让它们向左浮动,同时在父元素上使用 `overflow: auto` 清除浮动,防止父元素高度塌陷。 ### 绝对定位布局 使用绝对定位可以精确控制子元素的位置。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>绝对定位三列布局</title> <style> .parent { position: relative; height: 100px; } .child { position: absolute; height: 100%; background-color: #ccc; } .child:nth-child(1) { left: 0; width: 20%; } .child:nth-child(2) { left: 25%; width: 50%; } .child:nth-child(3) { right: 0; width: 20%; } </style> </head> <body> <div class="parent"> <div class="child">Child 1</div> <div class="child">Child 2</div> <div class="child">Child 3</div> </div> </body> </html> ``` 此代码中,父元素设置为相对定位,子元素设置为绝对定位,通过 `left` 和 `right` 属性精确控制子元素的位置。 ### 网格布局 网格布局是一种二维布局模型,可以更灵活地控制子元素的排列和大小。示例代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>网格三列布局</title> <style> .parent { display: grid; grid-template-columns: repeat(3, 1fr); /* 三列,每列宽度相等 */ gap: 10px; /* 子元素之间的间距 */ } .child { background-color: #ccc; height: 100px; } </style> </head> <body> <div class="parent"> <div class="child">Child 1</div> <div class="child">Child 2</div> <div class="child">Child 3</div> </div> </body> </html> ``` 通过设置父元素的 `display` 属性为 `grid`,将其变为一个网格容器,使用 `grid-template-columns` 属性定义列的宽度,`gap` 属性设置子元素之间的间距。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值