У меня 3 кнопки во флексбоксе в ОДНОЙ ячейке таблицы. Дело в том, что я хочу настроить ширину каждой кнопки так, чтобы кнопки заполняли горизонтальную ширину на 100% (насколько это возможно). Проблема в том, что если я не использую flexbox, они перекрываются, и размеры не меняются (не отображаются все кнопки). Однако, если я использую flexbox, поскольку это одна ячейка, все кнопки динамически сжимаются, ДАЖЕ ЕСЛИ они НЕ перекрываются по оси y (это ячейка с высотой 42 бэр, см. Рисунок ниже).
Вот фотография проблемы:
In the photo the red cell under the Monday column should be at full width and it is not.
My Question is: Can I have a way to dynamically change these widths (max-width didnt work) ONLY if they are overlapping. If they do not overlap they should fit the whole width. The caveat is I am going to be dynamically adding more events as time goes so I can just say put this one button at 50% because soon it may need to be 33%.
Alternatively: Is there a way to know exactly how many overlap, so I can just use JavaScript to readjust every time something is added (less nice).
Here is a codepen: https://codepen.io/samuel-solomon/pen/oNbKeRm?editors=1100 Примечание: я хочу сохранить y-позицию (это для календаря, поэтому он представляет время)
.day_Block {
position: relative;
}
.flexbox_Edits {
top: 0;
position: relative;
width: 100%;
height: 42rem;
}
.event_Button {
border-width: 2px;
max-width: 100%;
border-radius: 8px;
border-style: inset solid solid;
align-items: flex-start;
align-self: stretch;
position: relative;
width: 100%;
float: left;
left: 0;
overflow: hidden;
-webkit-box-sizing: border-box;
/* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box;
/* Firefox, other Gecko */
box-sizing: border-box;
/* Opera/IE 8+ */
}
.event_Button_Text {
word-wrap: break-word;
text-align: left;
float: left;
line-height: 1.25rem;
font-family: 'Montserrat';
font-weight: 550;
letter-spacing: 0.06rem;
display: inline-flex;
font-size: 0.8em !important;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<section class="container on_Left from_Top table-responsive">
<table class="calendar mt-5" id="calendar_Table">
<thead class="masthead">
<tr>
<th class="time_Col days"></th>
<th>
<str>Monday</span>
</th>
<th><span>Tuesday</span></th>
<th><span>Wednesday</span></th>
<th><span>Thursday</span></th>
<th><span>Friday</span></th>
</tr>
</thead>
<tbody id="calendar_Body">
<tr id="Time">
<td class="time_Col">
<div class="time_Block">8am</div>
<div class="time_Block">9am</div>
<div class="time_Block">10am</div>
<div class="time_Block">11am</div>
<div class="time_Block">12pm</div>
<div class="time_Block">1pm</div>
<div class="time_Block">2pm</div>
<div class="time_Block">3pm</div>
<div class="time_Block">4pm</div>
<div class="time_Block">5pm</div>
<div class="time_Block">6pm</div>
<div class="time_Block">7pm</div>
<div class="time_Block">8pm</div>
<div class="time_Block">9pm</div>
</td>
<td class="day_Block">
<div class="d-flex flexbox_Edits" id="M">
<button class="btn event_Button_Text event_Button event_Button_CS_2" style="height: 12rem; top: 0rem; background-color: rgb(83, 94, 235);">M8:00 - 12:00<br>CS 2<br></button>
<button class="btn event_Button_Text event_Button event_Button_CS_1" style="height: 21rem; top: 18rem; background-color: rgb(254, 44, 84);">M2:00 - 9:00<br>CS 1<br></button>
<button class="btn event_Button_Text event_Button event_Button_CS_1" style="height: 21rem; top: 18rem; background-color: rgb(19, 202, 145);">M2:00 - 9:00<br>CS 1<br></button>
</div>
</td>
<td class="day_Block">
<div class="d-flex flexbox_Edits" id="T"></div>
</td>
<td class="day_Block">
<div class="d-flex flexbox_Edits" id="W"></div>
</td>
<td class="day_Block">
<div class="d-flex flexbox_Edits" id="R"></div>
</td>
<td class="day_Block">
<div class="d-flex flexbox_Edits" id="F"></div>
</td>
</tr>
</tbody>
</table>
</section>