Html CSS使用divs创建等距表格
我正在尝试创建一个盒子集合,每个盒子的宽度为50%,边距可以折叠以创建均匀的间距,但也可以放置在彼此旁边 比如:Html CSS使用divs创建等距表格,html,css,Html,Css,我正在尝试创建一个盒子集合,每个盒子的宽度为50%,边距可以折叠以创建均匀的间距,但也可以放置在彼此旁边 比如: 身体{ 保证金:0; } .陈列柜{ 背景色:#000; 溢出:自动; } .陈列柜>部门{ 宽度:50%; 利润率:20px; 颜色:#fff; 边框:1px实心#fff; } 框1 框2 有没有办法只使用父div和子div来实现这一点?还是必须创建孙子div?类似这样的内容: 你应该使用 display:inline-block width:calc(50% - 44px
身体{
保证金:0;
}
.陈列柜{
背景色:#000;
溢出:自动;
}
.陈列柜>部门{
宽度:50%;
利润率:20px;
颜色:#fff;
边框:1px实心#fff;
}
框1
框2
有没有办法只使用父div和子div来实现这一点?还是必须创建孙子div?类似这样的内容:
你应该使用
display:inline-block
width:calc(50% - 44px);
关于儿童司
如果在flex项目上设置
margin
,然后在flex容器上设置相同数量的padding
,则使用Flexbox
可以获得类似的效果。这将在每个弹性项与父项和弹性项之间创建相同的间距
正文{
保证金:0;
}
.陈列柜{
背景色:#000;
显示器:flex;
填充:10px;
}
.陈列柜>部门{
弹性:1;
利润率:10px;
颜色:#fff;
边框:1px实心#fff;
}
框1
框2
对齐块时要记住的几件事
可以使用flexbox网格来均匀分割长方体 只需将这两条规则添加到CSS中:
使用
display:table
并添加table layout:fixed
->所有单元格的宽度都相同
.table{
宽度:100%;
显示:表格;
表布局:固定;
背景色:黑色;
颜色:白色;
边界间距:10px;
}
特罗先生{
显示:表格行
}
特塞尔先生{
显示:表格单元格;
边框:1px纯白;
}
第1单元
第2单元
第三单元
包含更多文本的单元格4
你想用一条线吗?用填充物填充空间。中间的空隙大于外部空隙。需要更多的css来解决这个问题。是的,这两个css之间有额外的空间。另外,假设我想要一个由4个方框组成的网格,两个在顶部,两个在底部,我如何使用flex来实现这一点?@Lewis很好的观点,为了解决这个问题,只给子div留一个边距,而给子div留一个边距。showCases>div:last child留一个所需的边距。这是唯一的答案,两个div之间没有两倍的边距!你赢了@Lewis!:请说我有4个盒子,每个盒子50%。上面两个,下面两个。在这种情况下,我如何使用flex?使用display:table
和table layout:fixed
不是最佳解决方案吗?我看不到任何间距。我没有设置解决方案的样式。更新了我的帖子。它也是在jsfiddle:Nice solution,+1上创建的。问题是每次添加更多单元格时都需要创建一行。或者假设您有一个媒体查询,如果调整屏幕大小,您希望有3个或更多单元格。如果它们卡在行内,这很难,但是如果它们基于百分比,并且没有限制性的行元素,则很容易。但是+1,因为我学到了一些东西
.showCases>div {
display: inline-block;
width: calc( 50% - 44px);
margin: 20px;
color: #fff;
border: 1px solid #fff;
}
display:inline-block
width:calc(50% - 44px);
body{
margin:0;
}
.showCases{
background-color:#000;
overflow:auto;
}
.showCases>div{
width:46%;
margin:20px;
margin-right: 2.5%;
margin-left: 2.5%;
color:#fff;
border:1px solid #fff;
display: block;
float: left;
}
.showCases>div:last-of-type{
margin-right: 0;
margin-left: 0;
}
.showCases{
display: flex;
}
.showCases>div{
flex: 1;
}