CSS 中的动态响应网格样式容器
Dynamically responsive grid-style container in CSS
在我的应用程序中,用户可以输入文本并单击按钮将新的 'span' 附加到包含其输入文本的 DOM(在容器内)。我希望这些跨度具有适合给定用户输入文本所需的宽度(您可以假设用户不会输入比容器宽度更长的内容)。我还希望容器能够连续容纳尽可能多的跨度;如果 span 需要的空间比当前行剩余的空间多 -> 转到下一行(参见图片的最后两行)。
我需要将哪种 CSS 添加到我的容器以及其中的 span 以实现下面的组织?
请注意:此容器的宽度是固定的,但高度会根据需要增加以适应新的文本填充跨度
根据您的模型,您可以通过两种方式完成任务:
- 使用弹性 CSS3 属性
- 使用 CSS3 属性 宽度自动并在跨度 class.
中向左浮动
让跨度class="class-name"
.class-name {
display: inline-block;
width: auto;
float: left;
}
在此范围内 class,您可以根据需要添加更多 属性。
使用 CSS3 flex 属性:
.container {
display: flex;
border: 1px solid red;
width: 20rem;
flex-wrap: wrap; /* otherwise it will try to fit everything on one line */
justify-content: space-between; /* alternatives are space-evenly or space-around*/
}
看到这个 pen,使用 flex 的好处是你可以更好地控制容器的这个宽度的使用方式,使用浮动解决方案你无法证明内容的合理性,它会全部粘在左边,右边不用 space。
在我的应用程序中,用户可以输入文本并单击按钮将新的 'span' 附加到包含其输入文本的 DOM(在容器内)。我希望这些跨度具有适合给定用户输入文本所需的宽度(您可以假设用户不会输入比容器宽度更长的内容)。我还希望容器能够连续容纳尽可能多的跨度;如果 span 需要的空间比当前行剩余的空间多 -> 转到下一行(参见图片的最后两行)。
我需要将哪种 CSS 添加到我的容器以及其中的 span 以实现下面的组织?
请注意:此容器的宽度是固定的,但高度会根据需要增加以适应新的文本填充跨度
根据您的模型,您可以通过两种方式完成任务:
- 使用弹性 CSS3 属性
- 使用 CSS3 属性 宽度自动并在跨度 class. 中向左浮动
让跨度class="class-name"
.class-name {
display: inline-block;
width: auto;
float: left;
}
在此范围内 class,您可以根据需要添加更多 属性。
使用 CSS3 flex 属性:
.container {
display: flex;
border: 1px solid red;
width: 20rem;
flex-wrap: wrap; /* otherwise it will try to fit everything on one line */
justify-content: space-between; /* alternatives are space-evenly or space-around*/
}
看到这个 pen,使用 flex 的好处是你可以更好地控制容器的这个宽度的使用方式,使用浮动解决方案你无法证明内容的合理性,它会全部粘在左边,右边不用 space。