当前位置: 首页 > 面试题库 >

包裹柔性物品时去除边距

方鸿振
2023-03-14
问题内容

以下是我的代码,它工作正常,除了margin-bottom: 5px;.tagcss类添加的容器中的最后一行。

我面临的问题是标签列表是 动态的, 因此我无法直接定位到Item-13,14等。

让我知道在flex中,我们是否有特权在我的flex容器的最后一行添加自定义css wrt。

* {

    margin: 0;

    padding: 0;

}

html, body {

box-sizing: border-box;

}



.container {

    width: 600px;

    margin: 0 auto;

    margin-top: 25px;

    border: 1px solid;

    padding: 5px;

}



.tags {

    list-style-type: none;

    display: flex;

    flex-direction: row;

    flex-wrap: wrap;

    justify-content: flex-start;

}



.tag {

    padding: 5px;

    background-color: #76FF03;

    margin: 0 5px 5px;

}


<div class="container">

  <ul class="tags">

    <li class="tag item-1">Tag Item 1</li>

    <li class="tag item-2">Tag Item 2</li>

    <li class="tag item-3">Tag Item 3</li>

    <li class="tag item-4">Tag Item 4</li>

    <li class="tag item-5">Tag Item 5</li>

    <li class="tag item-6">Tag Item 6</li>

    <li class="tag item-7">Tag Item 7</li>

    <li class="tag item-8">Tag Item 8</li>

    <li class="tag item-9">Tag Item 9</li>

    <li class="tag item-10">Tag Item 10</li>

    <li class="tag item-11">Tag Item 11</li>

    <li class="tag item-12">Tag Item 12</li>

    <li class="tag item-13">Tag Item 13</li>

    <li class="tag item-14">Tag Item 14</li>

    <li class="tag item-15">Tag Item 15</li>

    <li class="tag item-16">Tag Item 16</li>

  </ul>

</div>

问题答案:

大多数框架用来解决此问题的最常见方法是改为在项目(tag)上设置一个上边距,然后用对父项(tags)的一个负边距进行补偿

* {

  margin: 0;

  padding: 0;

}



html, body {

  box-sizing: border-box;

}



.container {

  width: 600px;

  margin: 0 auto;

  margin-top: 25px;

  border: 1px solid;

  padding: 5px;

}



.tags {

  list-style-type: none;

  display: flex;

  flex-direction: row;

  flex-wrap: wrap;

  justify-content: flex-start;

  margin-top: -5px;                 /*  compensate top  */

}



.tag {

  padding: 5px;

  background-color: #76FF03;

  margin: 5px 5px 0 0;              /*  top, right  */

}


<div class="container">

  <ul class="tags">

    <li class="tag item-1">Tag Item 1</li>

    <li class="tag item-2">Tag Item 2</li>

    <li class="tag item-3">Tag Item 3</li>

    <li class="tag item-4">Tag Item 4</li>

    <li class="tag item-5">Tag Item 5</li>

    <li class="tag item-6">Tag Item 6</li>

    <li class="tag item-7">Tag Item 7</li>

    <li class="tag item-8">Tag Item 8</li>

    <li class="tag item-9">Tag Item 9</li>

    <li class="tag item-10">Tag Item 10</li>

    <li class="tag item-11">Tag Item 11</li>

    <li class="tag item-12">Tag Item 12</li>

    <li class="tag item-13">Tag Item 13</li>

    <li class="tag item-14">Tag Item 14</li>

    <li class="tag item-15">Tag Item 15</li>

    <li class="tag item-16">Tag Item 16</li>

  </ul>

</div>

更好的方法可能是为所有项目的边分配相同的边距,尽管价值是一半。

* {

  margin: 0;

  padding: 0;

}



html, body {

  box-sizing: border-box;

}



.container {

  width: 600px;

  margin: 0 auto;

  margin-top: 25px;

  border: 1px solid;

  padding: 5px;

}



.tags {

  list-style-type: none;

  display: flex;

  flex-direction: row;

  flex-wrap: wrap;

  justify-content: flex-start;

}



.tag {

  padding: 5px;

  background-color: #76FF03;

  margin: 2.5px;

}


<div class="container">

  <ul class="tags">

    <li class="tag item-1">Tag Item 1</li>

    <li class="tag item-2">Tag Item 2</li>

    <li class="tag item-3">Tag Item 3</li>

    <li class="tag item-4">Tag Item 4</li>

    <li class="tag item-5">Tag Item 5</li>

    <li class="tag item-6">Tag Item 6</li>

    <li class="tag item-7">Tag Item 7</li>

    <li class="tag item-8">Tag Item 8</li>

    <li class="tag item-9">Tag Item 9</li>

    <li class="tag item-10">Tag Item 10</li>

    <li class="tag item-11">Tag Item 11</li>

    <li class="tag item-12">Tag Item 12</li>

    <li class="tag item-13">Tag Item 13</li>

    <li class="tag item-14">Tag Item 14</li>

    <li class="tag item-15">Tag Item 15</li>

    <li class="tag item-16">Tag Item 16</li>

  </ul>

</div>


 类似资料:
  • 我有一个flex容器,其中有两个固定尺寸的子容器,它们对齐flex end(父容器的底部)。 当我调整父对象的大小时,我希望它们彼此包裹在一起,但它们各自占据父对象高度的50%。 有没有一种方法可以在不添加另一个div的情况下执行此操作? 小提琴

  • 问题内容: 我有一个伸缩框(请参见下面的示例片段)。 我想进行设置,以便在所有情况下,都位于 弹性框 的中心,其他跨度将根据其标记在其周围流动。 我基本上是在寻找CSS代码,但在寻找主轴,而不是在交叉轴这可能有助于解释我的要求)。 我也正在申请我的,这是我在阅读本文后了解到的(很棒的页面,但仍然让我提出以下问题-除非我不完全理解所有问题)。 这是我得到的代码: 为了充分重申我的问题:我想知道如何中

  • 问题内容: 我的网站上移动菜单的底部有一个基于伸缩的无序社交媒体图标列表。 我正在尝试让三排并排坐,等距离分开。我已经用规则来解决了 但是 我的问题是,当有三个以上的项目时,下一行从中间开始填充,而我希望 随着用户添加更多图标, 它从左侧开始填充 。 我越深入地解释这一点,就越不确定这是否可能,但是我想我还是把它扔出去了,以防万一。 是否可以使下一行中的列表项从容器的左侧开始,而不会弄乱规则? 目

  • 相比于单纯的数据对象,将context包装成一个提供一些方法的对象会是更好的实践。因为这样能提供一些方法供我们操作context里面的数据。 // dependencies.js export default { data: {}, get(key) { return this.data[key]; }, register(key, value) { this.da

  • TimeDistributed包装器 Bidirectional包装器

  • R包是R函数的集合,包含代码和样本数据。 它们存储在R环境中名为"library"的目录下。 默认情况下,R在安装期间安装一组软件包。 当某些特定用途需要时,会在以后添加更多软件包。 当我们启动R控制台时,默认情况下只有默认包可用。 必须明确加载已安装的其他软件包,以供将要使用它们的R程序使用。 所有R语言版本的软件包都列在R软件包中。 以下是用于检查,验证和使用R软件包的命令列表。 检查可用的R