为了账号安全,请及时绑定邮箱和手机立即绑定

为什么wrap中要加float:left左浮动(源自:HTML+CSS基础课程 15-5)

为什么wrap中要加float:left左浮动(源自:HTML+CSS基础课程 15-5)

光太狼 2016-09-02 03:58:12
    一开始我一直在想玩什么wrap要加上float:left,不加会怎么样?然后尝试着不加float:left,结果发现如果不加就不会出现居中效果,会跟一开始一样文字在最左边。     后来反复试验,终于有点理解为什么要加上float:left,不过我自己不太能表达出来,简单来说,我个人理解就是:     如果不加float:left,因为div class="wrap"是块状元素,所以是独占一行的,文字后面延伸到浏览器最右侧,导致这个div class="wrap"里面的元素(指div class="wrap-center")也是延伸到浏览器最右侧的,假设div class="wrap"的宽度是100,那么div class="wrap-center"的宽度也是100,所以前面所说的,在wrap里面用left:50%往右移动50%,然后又在wrap-center里面用left:-50%,因为wrap和wrap-center宽度是相等的,导致它们抵消了,所以最后不会出现任何居中效果。     然而,如果在wrap里面加了float:left,意思就是左浮动,根据前面第12章里面所说的浮动模型的特征,wrap是不能独占一行的,wrap如果加了左浮动,然后里面又嵌套有其他元素的话(这里指wrap-center),第一个重点来了:wrap将会在“我们来学习一下这种方法。”这句话之后把wrap-center放进去,也就是说“我们来学习一下这种方法。”这句话后面不会出现可以一直延伸到浏览器最右侧的空白,而是出现了wrap-center。而且第二个重点也来了:就是wrap-center的宽度会跟wrap的宽度保持一致(当然这里是指wrap-center里面没有指定width而是保持默认的情况下)。     此时,假设“我们来学习一下这种方法。”这段话的长度为10,那么wrap-center的长度就是10,此时再在wrap-center里面用left:-50%,就是往左移动-50%,大家脑补一下,这个时候就实现了把这段文字居中的效果。到现在我们可以看到,之前是根据wrap的长度100移动了50%,后来是根据wrap-center,其实就是“我们来学习一下这种方法。”这段文字的长度移动了-50%。这就是原理。     不知道大家看懂没,我是尽力了。。。
查看完整描述

2 回答

?
丶前男友

TA贡献42条经验 获得超18个赞

我觉得,如果你用代码来写,会更容易让人看懂。。。还有,如果你要wrap居中的话,给他父元素一个width,给他一个width,然后margin:0 auto;就能实现了~

查看完整回答
反对 回复 2016-09-02
?
大咪

TA贡献785条经验 获得超332个赞

善于总结……赞一个

查看完整回答
反对 回复 2016-09-02
  • 2 回答
  • 0 关注
  • 1446 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信