Конечно, было бы проще с flexbox:)
Если вы можете использовать таблицу, то вы можете сделать что-то похожее:
/* Added */
#wrapper{
display: table;
width: 100%;
}
.a {
display: table-cell; /* Added */
vertical-align: top; /* Added */
/* display: inline-block; */
background-color: yellow;
width: 50%; /* Changed */
border: 1px solid black;
}
.b {
display: table-cell; /* Added */
vertical-align: top; /* Added */
/* display: inline-block; */
background-color: red;
width: 50%; /* Changed */
border: 1px solid black;
}
<div id="wrapper">
<div class='a'>Element A</div>
<div class='b'>Element B: Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. </div>
<div>
Если вам нужны отдельные столбцы, вы можете просто добавить пустой столбец и соответственно установить другую ширину:
#wrapper{
display: table;
width: 100%;
}
.a {
display: table-cell;
vertical-align: top;
background-color: yellow;
width: 45%; /* Changed */
border: 1px solid black;
}
.b {
display: table-cell;
vertical-align: top;
background-color: red;
width: 45%; /* Changed */
border: 1px solid black;
}
/*added*/
.gap{
display: table-cell;
vertical-align: top;
width: 10%; /* which is 100 - 2* 45 */
}
<div id="wrapper">
<div class='a'>Element A</div>
<!-- ------------------------Added------------------------------ -->
<div class='gap'></div>
<!-- ----------------------------------------------------------- -->
<div class='b'>Element B: Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. </div>
<div>
Если вы можете использовать CSS переменные ( см. Совместимость ):
#wrapper{
display: table;
width: 100%;
--column-width: 49%; /* so you can set any value between 0 & 50% and the gap will fill the rest */
--number-of-column: 2; /* minimun 2 */
--number-of-gap: calc(var(--number-of-column) - 1);
--column-gap: calc((100% - var(--column-width) * var(--number-of-column)) / var(--number-of-gap));
}
.columns{
display: table-cell;
vertical-align: top;
}
.column-content{
width: var(--column-width);
border: 1px solid black;
}
.column-gap{
width: var(--column-gap, 0%); /* If we set just one column, --column-gap is undefined (because it divises by 0), so we need a default value, which is 0% because in this case of only one column, we have no gap column */
}
.a {
background-color: yellow;
}
.b {
background-color: red;
}
<div id="wrapper">
<div class='columns column-content a'>Element A</div>
<div class='columns column-gap'></div>
<div class='columns column-content b'>Element B: Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. Here is more text. </div>
<div>