【发布时间】:2020-08-28 12:25:20
【问题描述】:
我正在尝试在 Row 单元格中使用 flexbox,以便在单元格的两个极端显示单元格内的两个项目。里面的一项是文本,另一项是使用 span 元素创建的彩色点/正方形。只要它仅用于该行的一个单元格,就可以按预期显示,但是一旦将相同的样式应用于该行中的其他单元格,它们就会开始一个接一个地排列。
This is how it appears with flexbox style added to only one cell
Codepen:https://codepen.io/sandeep10au/pen/XWdRvLb
.table {
width: 100%;
margin-top: 1rem;
color: #192038;
}
.table tr th {
background-color: #FFF;
border: 1px solid #DBDBDB;
padding: 8px 16px;
font-size: 1rem;
line-height: 2rem;
}
.flexBox {
display: flex;
justify-content: space-between;
}
.dotRed {
height: 15px;
width: 15px;
background-color: #ff3333;
border-radius: 50%;
display: inline-block;
}
.dotAmber {
height: 15px;
width: 15px;
background-color: #ffd480;
border-radius: 50%;
display: inline-block;
}
.dotGreen {
height: 15px;
width: 15px;
background-color: #5cd65c;
border-radius: 50%;
display: inline-block;
align-self: center;
}
.squareRed {
height: 15px;
width: 15px;
background-color: #ff3333;
align-self: center;
display: inline-block;
}
.squareAmber {
height: 15px;
width: 15px;
background-color: #ffd480;
align-self: center;
display: inline-block;
}
.squareGreen {
height: 15px;
width: 15px;
background-color: #5cd65c;
align-self: center;
display: inline-block;
}
<table class="table" style="width:100%;">
<thead>
<tr>
<th class="flexBox">
West Europe
<span class="squareGreen" />
</th>
<th>
North Europe
<span class="squareRed" />
</th>
<th>
East Europe
<span class="squareAmber" />
</th>
<th>
East US-2
<span class="squareGreen" />
</th>
</tr>
</thead>
<tr>
<td>
IoT Hub
<span class="dotGreen" />
</td>
<td>
IoT Hub
<span class="dotGreen" />
</td>
<td>
IoT Hub
<span class="dotGreen" />
</td>
<td>
IoT Hub
<span class="dotGreen" />
</td>
</tr>
<tr>
<td>
TimeSeries Insights
<span class="dotGreen" />
</td>
<td>
TimeSeries Insights
<span class="dotRed" />
</td>
<td>
TimeSeries Insights
<span class="dotGreen" />
</td>
<td>
TimeSeries Insights
<span class="dotGreen" />
</td>
</tr>
<tr>
<td>
Service Bus
<span class="dotGreen" />
</td>
<td>
Service Bus
<span class="dotGreen" />
</td>
<td>
Service Bus
<span class="dotAmber" />
</td>
<td>
Service Bus
<span class="dotGreen" />
</td>
</tr>
</table>
This is when the flexbox style is added to all cells in the row
Codepen:https://codepen.io/sandeep10au/pen/mdPmNNp
.table {
width: 100%;
margin-top: 1rem;
color: #192038;
}
.table tr th{
background-color: #FFF;
border: 1px solid #DBDBDB;
padding: 8px 16px;
font-size: 1rem;
line-height: 2rem;
}
.flexBox{
display: flex;
justify-content: space-between;
}
.dotRed {
height: 15px;
width: 15px;
background-color: #ff3333;
border-radius: 50%;
display: inline-block;
}
.dotAmber {
height: 15px;
width: 15px;
background-color: #ffd480;
border-radius: 50%;
display: inline-block;
}
.dotGreen {
height: 15px;
width: 15px;
background-color: #5cd65c;
border-radius: 50%;
display: inline-block;
align-self: center;
}
.squareRed {
height: 15px;
width: 15px;
background-color: #ff3333;
align-self: center;
display: inline-block;
}
.squareAmber {
height: 15px;
width: 15px;
background-color: #ffd480;
align-self: center;
display: inline-block;
}
.squareGreen {
height: 15px;
width: 15px;
background-color: #5cd65c;
align-self: center;
display: inline-block;
}
<table class="table" style="width:100%;">
<thead>
<tr>
<th class="flexBox">
West Europe
<span class="squareGreen"/>
</th>
<th class="flexBox">
North Europe
<span class="squareRed"/>
</th>
<th class="flexBox">
East Europe
<span class="squareAmber"/>
</th>
<th class="flexBox">
East US-2
<span class="squareGreen"/>
</th>
</tr>
</thead>
<tr>
<td>
IoT Hub
<span class="dotGreen"/>
</td>
<td>
IoT Hub
<span class="dotGreen"/>
</td>
<td>
IoT Hub
<span class="dotGreen"/>
</td>
<td>
IoT Hub
<span class="dotGreen"/>
</td>
</tr>
<tr>
<td>
TimeSeries Insights
<span class="dotGreen"/>
</td>
<td>
TimeSeries Insights
<span class="dotRed"/>
</td>
<td>
TimeSeries Insights
<span class="dotGreen"/>
</td>
<td>
TimeSeries Insights
<span class="dotGreen"/>
</td>
</tr>
<tr>
<td>
Service Bus
<span class="dotGreen"/>
</td>
<td>
Service Bus
<span class="dotGreen"/>
</td>
<td>
Service Bus
<span class="dotAmber"/>
</td>
<td>
Service Bus
<span class="dotGreen"/>
</td>
</tr>
</table>
我必须在表格的所有单元格中使用 flexbox 样式(表格出现在适当的表格中)。任何帮助/建议将不胜感激。提前致谢。
【问题讨论】: