浮动流这操作秀了小白我一脸

简介: 问题是这样的,需要将 box 宽度为 580px 的盒子中放 5 个小的 item,item的宽度为 100px

image.png


问题是这样的,需要将 box 宽度为 580px 的盒子中放 5 个小的 item,item的宽度为 100px,要求使用浮动流使得排布出如下效果:


image.png


看到后心想,这有啥难,css不就是调来调去嘛,我直接开始搞:


<style>    .container {      width: 580px;      height: 300px;      background-color: deeppink;    }    .item {      float: left;      width: 100px;      height: 200px;      background-color: skyblue;      margin-right: 20px;    }  </style></head><body>  <div class="container">    <div class="item">item1</div>      <div class="item">item2</div>      <div class="item">item3</div>      <div class="item">item4</div>      <div class="item">item5</div>  </div></body>


image.png


操作完后发现如上的效果,突然回想起:**如果元素是向左(右)浮动,**浮动元素的左(右)边界不能超出包含块的左(右)边界。如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到有充足的空间为止。


奥,既然这样的话,原因清除是清楚了,那到底该怎么解决呢?这宽度少了 20px 我也不能自己加上去呀,再者就算自己加上去,貌似也效果就不一样了,右边就会多出一块红色的部分了,会影响美观的呀,那该怎么做呢?


image.png


还好最后收到点拨终于明白了,原来可以这么干,


image.png


当时看到这个就在想,我去,还能这么搞吗,至今才知道:margin可以设置为负值 (有可能以前也知道过,但是没注意也没用过给忘了)。


那么为什么可以这样呢?让我们打开浏览器看看,发现 box 的宽度竟然是 600px


image.png


这是为什么呢?明明 container 的 width 为 580px,box被包含在里面反而更大?


image.png


回过头又看了看盒子模型,终于找到了问题的答案:因为里面盒子没有padding 和 border,并且盒子的宽度没有设置,那就是auto,所以就会有: 宽度 + mr + ml 要等于外面盒子的宽度 580px,那么将 mr 设为 -20px 后,box 宽度自然就变为了 600px,这样加起来才会等于 container 的宽度。box 的 content 的 width其实是超出了 container 的。让我们给 box 加个高度和背景色看看。


image.png


发现确实如此,但是在实际开发中我们并不会给 box 设置高度,所以用户是看不到也不知道的,所以这样操作是没有问题的。

目录
相关文章
|
1月前
|
存储 弹性计算 搜索推荐
通义灵码实操—飞机大战游戏
在这个实践课程中,你将独立编写一个有趣的小游戏——“飞机大战”。借助通义灵码智能编程助手,你将从零开始,逐步构建一个个性化的游戏,体验编程的创造力和乐趣。通过学习 Pygame 库的使用,你不仅能掌握游戏开发的基本技能,还能深入了解游戏逻辑和图形界面的设计。快来加入我们,开启你的编程之旅吧!
55 11
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
66 1
|
7月前
|
前端开发 JavaScript 程序员
程序员教你用代码制作3d爱心跳动特效,正好拿去送给女神给她个惊喜
使用HTML、CSS和JavaScript实现了一个三维网格采样器`MeshSurfaceSampler`,适用于任意浏览器,推荐谷歌。代码创建了一个类,从缓冲几何体的三角形网格中进行随机采样。提供了设置权重属性、构建分布和自定义随机数生成器的功能。用户只需将代码复制到文本文档并保存为HTML文件,即可运行。适合编程爱好者尝试,也可分享给他人。
235 1
|
7月前
|
Python
【分享代码】国庆氛围不能少,快来给头像加个国旗
【分享代码】国庆氛围不能少,快来给头像加个国旗
89 0
|
7月前
|
前端开发 JavaScript 程序员
程序员教你用代码制作圣诞树,正好圣诞节拿去送给女神给她个惊喜
使用HTML、CSS和JavaScript实现了一个圣诞树效果,包括一个闪烁的圣诞树和一个动态的光斑。代码包含一个&lt;div&gt;元素作为遮罩,一个&lt;canvas&gt;元素绘制星星动画,以及一个SVG元素绘制圣诞树。页面还包含一个提示用户先点赞再观看的提示。此效果适用于任何浏览器,推荐使用谷歌浏览器。提供了一段HTML代码,可以直接复制粘贴到文件中并以.html格式打开查看效果。
139 0
|
7月前
|
SQL 前端开发 JavaScript
终于弄懂了Layui表格重载数据(中途被女朋友劝反附聊天记录)
终于弄懂了Layui表格重载数据(中途被女朋友劝反附聊天记录)
182 0
|
前端开发 程序员
第五节 关于浮动和清除浮动的解说,以及两个大坑不要踩
第五节 关于浮动和清除浮动的解说,以及两个大坑不要踩
117 0
|
存储 自然语言处理 JavaScript
产品让我限制一下输入框字数,结果我搞了3天没搞明白
作为一名新人er,看到自己的文章列表空空如也总觉得不是那么回事。但是想动手写点什么吧,脑子里实在又憋不出什么料。写一篇正儿八经的技术文章真的是好难好麻烦,尤其是看了首页推荐的大佬文章,更是觉得自己那点东西就别拿出去丢人了。有充分借口的日子总是短暂而且美好。这不,就在不久前的一次组会上,老大们又提起了”写点什么“的事儿,并且一再强调,不需要写出个什么宏文出来,写点什么都行。你看这台阶都给到这了,不下
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
92 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十五题-定位-fixed-广告
|
前端开发 Java Spring
求求你不要写满屏的 try...catch 了,这才是优雅的处理方式,真香...
求求你不要写满屏的 try...catch 了,这才是优雅的处理方式,真香...
272 0
求求你不要写满屏的 try...catch 了,这才是优雅的处理方式,真香...