OK, so you’re primarily concerned about a single axis. I consider myself very weak at CSS, so this may be very unidiomatic or suboptimal, but these “security blanket” classes have stayed with me for years now:
.fullheight {
height: 100%;
}
.xc {
display: flex;
align-items: center;
justify-content: center;
}
.vcs {
display: flex;
flex-direction: column;
align-items: center;
}
.hcs {
display: flex;
flex-direction: row;
align-items: center;
}
fullheight
is pretty self-explanatory. vcs
means “vertical list of centered stuff”, and hcs
is correspondingly “horizontal list of centered stuff”. They are designed to have multiple children, and center them on a single axis. xc
is a visual metaphor for centering a single child right in the cross of an “x”.
I figure “Ionic gonna Ionic” when it comes to top-level elements like <ion-header>
or <ion-content>
, so I just leave them be and work one level inside them. So what I think you’re asking for, if you throw those classes into global.scss
, would be something like this:
<ion-content>
<div class="vcs">
<div>we only care</div>
<div>about side to side</div>
</div>
</ion-content>
If by “center” you had meant both horizontal and vertical, we could do:
<ion-content>
<div class="fullheight xc">
<div class="vcs">
<div>now we control the horizontal</div>
<div>and the vertical</div>
</div>
</div>
</ion-content>
Hopefully you can adapt this to your needs.