0

我接收{patients}并将其放入一个 div 中:

<div className="patients">
   {patients}
</div>

它包含NameSurname,每行分为两个跨度:

开发工具 (开发工具)

当前状态 (当前状态)

如何将这些跨度设置为列(类似表格)?

预期结果 (扩展结果)

- -编辑 - -

变化的内容{patients}。这是搜索的结果,所以出现了不同的名字,有时更多,有时更少。我不能单独对它们应用样式。查看代码。

4

3 回答 3

1
    <div class="patients">
      <div class="patient">
        <span>Eric</span>
        <span>Car</span>
         <span>Car</span>
      </div>
      <div class="patient">
        <span>Eric</span>
        <span>Car</span>
         <span>Car</span>
      </div>
      <div class="patient">
        <span>Eric</span>
        <span>Car</span>
         <span>Car</span>
      </div>
      <div class="patient">
        <span>Eric</span>
        <span>Car</span>
         <span>Car</span>
      </div>
    </div>

CSS
----

.patients {
  border: 1px solid black;
  display: table;
  width: 100%;
  border-bottom: none;
}

.patient {
  display: table-row;
}

.patient > span {
  display: table-cell;
  border-bottom: 1px solid black;
}
于 2019-05-27T15:11:14.683 回答
1

Flexbox 非常适合这种布局。.patient通过提供wrapper在每一行中创建 flexbox 布局display: flex;

.patient {
  display: flex;
  justify-content: space-between;
}

justify-content: space-between规则将跨度放置在可用空间的左右两端,这是我最喜欢 flexbox 可以做的事情之一。

.patients {
  border: 1px solid black;
  max-width: 250px;
}
.patient {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid black;
}
.patient span {
  padding: 0 20px; // gives a little space around each span
}
.patient:first-child {
  border-top: none;
}
<div class="patients">
   <div class="patient">
    <span>Eri</span>
    <span>Car</span>
   </div>
   <div class="patient">
    <span>Dude</span>
    <span>Ok</span>
   </div>
   <div class="patient">
    <span>Nice</span>
    <span>One</span>
   </div>
</div>

于 2019-05-27T15:35:52.860 回答
0

您可以将 display 与 table/table-row/table-cell 一起使用,或者使用带有修复的显示块,或者使每一行成为具有固定宽度的 flexbox 或其他解决方案。有很多方法可以实现这一目标。

于 2019-05-27T14:56:22.203 回答