解决设置float样式后父级元素不适应问题

这是没有解决之前的样式:

未设置样式之前

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
    *{margin:0;padding:0;}
    .box{border:1px solid #23D127;width:520px;margin:100px auto;}
    .box .pageBtn{width:80px;height:40px;border:1px solid #0747C8;text-align:center;font:bold 14px/40px "宋体";color:#0747C8;}
    .box .lastBtn{float:left;}
    .box .nextBtn{float:right;}
</style>
</head>
<body>
<div class="box">
    <div class="pageBtn lastBtn">上一页</div>
    <div class="pageBtn nextBtn">下一页</div>
</div>
</body>
</html>

解决之后:

解决样式之后

第一种解决办法(这是最好的办法,没有任何副作用):

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
    *{margin:0;padding:0;}
    .box{border:1px solid #23D127;width:520px;margin:100px auto;}
    .box .pageBtn{width:80px;height:40px;border:1px solid #0747C8;text-align:center;font:bold 14px/40px "宋体";color:#0747C8;}
    .box .lastBtn{float:left;}
    .box .nextBtn{float:right;}
    .box:after{content:"";clear:both;display:block;}//aftercontent是结合使用的缺一不可,意思是在.box的子元素最后面添加一个content内容,并且设置displayblock(目的是想占width为100%),清除float左右浮动。
</style>
</head>
<body>
<div class="box">
    <div class="pageBtn lastBtn">上一页</div>
    <div class="pageBtn nextBtn">下一页</div>
</div>
</body>
</html>

第二种解决办法(听说这个方式有不好的地方,但是我用了很久都没发现):

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
    *{margin:0;padding:0;}
    .box{border:1px solid #23D127;width:520px;margin:100px auto;}
    .box .pageBtn{width:80px;height:40px;border:1px solid #0747C8;text-align:center;font:bold 14px/40px "宋体";color:#0747C8;}
    .box .lastBtn{float:left;}
    .box .nextBtn{float:right;}
    .box{overflow:hidden;}//添加overflow</style>
</head>
<body>
<div class="box">
    <div class="pageBtn lastBtn">上一页</div>
    <div class="pageBtn nextBtn">下一页</div>
</div>
</body>
</html>

奇怪的是我给box添加了另外一个子元素,设置display为absolute或fixed这两个绝对定位,溢出后不但不扩大box大小,反而对box的大小没有影响。
我的猜测是绝对定位不仅是脱离文档流,还有就是对父节点没有依赖,算是完全脱离文档流。而float并不是完全脱离文档流。

然而对其设置positon:relative时超过了父节点的限定范围时会起到隐藏效果。

这里写图片描述

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
    *{margin:0;padding:0;}
    .box{border:1px solid #23D127;width:520px;margin:100px auto;}
    .box .pageBtn{width:80px;height:40px;border:1px solid #0747C8;text-align:center;font:bold 14px/40px "宋体";color:#0747C8;}
    .box .lastBtn{float:left;}
    .box .nextBtn{float:right;}
    .box{overflow:hidden;}
    .mark{width:100px;height:100px;background:#A7A6A6;position:relative;top:71px;}
    .tian{height:3000px;}
</style>
</head>
<body>
<div class="box">
    <div class="pageBtn lastBtn">上一页</div>
    <div class="pageBtn nextBtn">下一页</div>
    <div class="mark"></div>
</div>
<div class="tian"></div>
</body>
</html>

最后:解决这个问题的方法当然还有很多,因为兼容性不好,我就不一 一列举了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值