I am having an interesting issue where I am building a dynamic navigation menu that is not rendering its contents correctly in Firefox (v114.01). It renders fine on both Edge (v114.0.1823.43) and Chrome (v114.0.5735.134).
It seems like the "writing-mode: vertical-lr" property is being applied differently in Firefox.
The reason why I am using writing-mode is to overcome the issue of flex box wrapped columns not growing its width When flexbox items wrap in column mode, container does not grow its width. Again, this seems to work fine in Edge/Chrome but not Firefox.
Here is a code pen with an example: https://codepen.io/Jean-Paul-Larach/pen/vYQNRPY
.wrapper {
display: flex;
flex-direction: row;
padding-top: 0px;
padding-bottom: 0px;
padding-right: 0px;
max-width: 90vw;
}
h4 {
margin: 0;
}
.group {
display: flex;
flex-direction: row;
>div {
display: inline-flex;
flex-flow: row wrap;
}
}
.groupHeader {
padding-top: 0px;
padding-left: 5px;
margin: 0 0 10px 0;
writing-mode: horizontal-tb;
font-style: italic;
}
.section {
writing-mode: horizontal-tb;
}
.navMenuLink {
writing-mode: horizontal-tb;
padding: 0 0.5rem;
margin: 0 0.5rem;
}
.header {
flex-wrap: wrap;
display: inline-flex;
flex-flow: row wrap;
writing-mode: vertical-lr;
max-height: 55vh;
}
<div class="wrapper">
<div style="padding-right: 15px; overflow-x: auto;">
<div class="header">
<div class="group">
<h3 class="groupHeader">Groups</span>
</h3>
<div>
<div class="section">
<h4><span><b>Group 1</b></span></h4>
</div><a class="navMenuLink">Child 1</a>
<div class="section">
<h4><span><b>Group 2</b></span></h4>
</div><a class="navMenuLink">Child 1</a><a class="navMenuLink">Child 2</a><a class="navMenuLink">Child 3</a><a class="navMenuLink">Child 4</a><a class="navMenuLink">Child 5</a>
<div class="section">
<h4><span><b>Group 3</b></span></h4>
</div><a class="navMenuLink">Child 1</a><a class="navMenuLink">Child 2</a><a class="navMenuLink">Child 3</a><a class="navMenuLink">Child 4</a><a class="navMenuLink">Child 5</a><a class="navMenuLink">Child 6</a><a class="navMenuLink">Child 7</a>
<div class="section">
<h4><span><b>Group 4</b></span></h4>
</div><a class="navMenuLink">Child 1</a><a class="navMenuLink">Child 2</a>
</div>
</div>
<div>
<div role="separator" aria-orientation="vertical"></div>
</div>
<div class="group">
<h3 class="groupHeader"><span>Sites</span></h3>
<div>
<div class="section">
<h4><span><b>Group 1</b></span></h4>
</div><a class="navMenuLink">Child 1</a><a class="navMenuLink">Child 2</a><a class="navMenuLink">Child 3</a><a class="navMenuLink">Child 4</a><a class="navMenuLink">Child 5</a><a class="navMenuLink">Child 6</a><a class="navMenuLink">Child 7</a>
<a class="navMenuLink">Child 8</a><a class="navMenuLink">Child 9</a><a class="navMenuLink">Child 10</a>
</div>
</div>
</div>
</div>
</div>
Any guidance or feedback will be much appreciated!
I tried to change my code to use other types of layouts but that presented many challenges. Flexbox should be the choice for creating navigation.