一个div如何被三个内部div划分出四个等间距?用纯css,html
网上做的一道题:请用html和css实现以下效果(移动设备),要求①三个圆形icon大小为80px,固定不变,②被三个圆形icon划分的四个间距相等,③黑色背景需要占满移动设备的宽度
我一开始的代码是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<style>
#d{
width:100%;
height:200px;
background:#000000;
display: flex;
justify-content:space-around;
align-items:center;
}
.icon{
width:80px;
height:80px;
background:#ffffff;
border-radius:50%;
}
</style>
</head>
<body>
<div id="d">
<div class="icon"></div>
<div class="icon"></div>
<div class="icon"></div>
</div>
</body>
</html>
最后发现 justify-content:space-around;只是让三个div平分宽度,左右两边的间距只是中间两个间距的一半长,如何解决这个问题呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
谢邀!两种方案都可以,
第一种用弹性布局的属性space-evenly
第二种css3的calc()
最后就是子元素都要加上flex: 0 0 80px;保证固定不变
我是在d容器里加了个c,不是很好的办法,但是可以解决
————————————————————————————————————————————————————
看到楼下用justify-content:space-evenly,第一次看到这个,在各个浏览器试一下,
谷歌不行,ie不行,360不行,只有火狐可以,我只试了单一版本的,不同版本浏览器可能有差异,支持率不是很好,对浏览器版本有要求
把4块切出来的部分,也理解成是flex的一个item,与icon相间隔排列,也就是说这里有7个元素。
justify-content:space-evenly
不过IE11不支持这个https://css-tricks.com/almana...
你可以使用justify-content:space-evenly; 作用是flex 容器起始边缘和第一个 flex 项之间的间距和每个相邻 flex 项之间的间距是相等。(注:该属性以前很少看到,原因是以前浏览器不支持,chrome 也是 60 版本之后才支持。延伸一下,align-content:space-evenly 也是这个逻辑,建议在 chrome 60 下查看这个demo 。 )
给出一个兼容性好一些的办法,利用伪元素和
space-between
这个广告打得好