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

使弹性项目重叠

岳正浩
2023-03-14
问题内容

我想展示水平系列的未知数量的纸牌。为此,如果太多,它们将必须重叠。我很难说服伸缩盒在不缩小卡片的情况下重叠卡片。下面的示例缩小卡片。我尝试过flex- shrink: 0,但后来max-width没有受到尊重。

.cards {

  display: flex;

  max-width: 300px;

}



.card {

  width: 50px;

  height: 90px;

  border: 1px solid black;

  border-radius: 3px;

  background-color: rgba(255, 0, 0, 0.4);

}


<div class='cards'>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

  <div class='card'></div>

</div>

问题答案:

这就是我使用flexbox做到的方式。

.cards {

  display: flex;

  align-content: center;

  max-width: 35em;

}



.cardWrapper {

  overflow: hidden;

}



.cardWrapper:last-child, .cardWrapper:hover {

    overflow: visible;

}



.card {

    width: 10em;

    min-width: 10em;

    height: 6em;

    border-radius: 0.5em;

    border: solid #666 1px;

    background-color: #ccc;

    padding: 0.25em;



    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

}


<div class="cards">

  <div class="cardWrapper">

    <div class="card">card 1 blah blah blah</div>

  </div>

  <div class="cardWrapper">

    <div class="card">card 2 blah blah blah</div>

  </div>

  <div class="cardWrapper">

    <div class="card">card 3 blah blah blah</div>

  </div>

  <div class="cardWrapper">

    <div class="card">card 4 blah blah blah</div>

  </div>

  <div class="cardWrapper">

    <div class="card">card 5 blah blah blah</div>

  </div>

</div>

请注意,从技术上讲,卡并不是重叠的,它们只是被剪裁了。但是它们 看起来 像是重叠的。诀窍是将每张卡包裹在另一个带有溢出的元素中:隐藏。

包装元素将缩小以适应可用空间,并且在该空间中显示尽可能多的卡片。

我加入了:hover规则只是为了展示如何从“堆栈”的中间完全显示一张牌,但是在一个真实的项目中,我可能会为选定的牌而不是悬浮的牌这样做。



 类似资料:
  • 我正在尝试设计一个菜单项列表,它有四个选项,其中三个选项始终存在: 项目 价格 置顶 订购按钮 我想不出如何始终确保Order按钮固定在列表的末尾,以便为缺少的选项分配空间 null null

  • 问题内容: 是否有比使用方法更灵活的“联系人”右对齐方式? http://jsfiddle.net/vqDK9/ 问题答案: 干得好。设置柔性容器上。

  • 问题内容: 我正在尝试制作多个具有相同高度的正方形行(每行3个)。 我为此编写了一些HTML和CSS,但所有框都在同一行上。 这是我到目前为止的内容: 当我用此页面加载页面时,所有框都出现了,但是它们都在一行上,超过了父div的100%宽度。 任何帮助深表感谢。 问题答案: flex容器的初始设置为 。 这意味着,当您创建一个伸缩容器(通过应用元素或将其应用于元素)时,所有子元素(“伸缩项”)都限

  • 问题内容: 我正在使用flexbox将某些项目居中放置在一个块中,但我希望其中的每个项目都位于其自己的行中。例如,我希望橙色方块位于文本上方,但是在使用flex之后,将其移动到了文本的侧面- 请问有人知道解决这个问题的方法吗? 问题答案: 添加此样式: 这告诉flexbox在行而不是列中显示其子级。(我知道,很奇怪,对吧?) 更新的代码段:

  • 问题内容: 如果您看下面的示例,我希望标头()在父容器内具有相同的长度。 但是我并没有成功实现这一目标。 任何帮助表示赞赏。 问题答案: 弹性盒法 为了使文本项()的宽度相等,您需要使用已完成的。这和说的一样。 但是,由于两个原因,这本身无法实现目标: 默认情况下,flex容器的父级,但更大容器中的flex项,仅限于其内容的宽度。因此它不会扩展,文本可能会溢出容器。你需要申请到,也是如此。 默认情

  • 问题内容: 我有一个具有以下属性的flex容器(蓝色正方形): 因此,其子项(浅蓝色方块)如下所示排列它们自己。但是,我想从正常流程中添加另一个孩子(绿色正方形)并将其相对于其父对象放置。要将其定位在下面,如您所见,我最好编写类似bottom: 20px;和的内容margin: auto;。 我试着z-index无济于事。我应该如何处理?我应该使用另一个父元素吗? 问题答案: 以下是实现此布局的五