A more flex approach would be to use an auto left margin (flex items treat auto margins (also MDN) a bit differently than when used in a block formatting context).

.c {
    margin-left: auto;
}

Updated fiddle:

.main { display: flex; }
.a, .b, .c { background: #efefef; border: 1px solid #999; }
.b { flex: 1; text-align: center; }
.c {margin-left: auto;}
<h2>With title</h2>
<div class="main">
    <div class="a"><a href="#">Home</a></div>
    <div class="b"><a href="#">Some title centered</a></div>
    <div class="c"><a href="#">Contact</a></div>
</div>
<h2>Without title</h2>
<div class="main">
    <div class="a"><a href="#">Home</a></div>
    <!--<div class="b"><a href="#">Some title centered</a></div>-->
    <div class="c"><a href="#">Contact</a></div>
</div>
<h1>Problem</h1>
<p>Is there a more flexbox-ish way to right align "Contact" than to use position absolute?</p>

Answer from Adrift on Stack Overflow
🌐
W3Schools
w3schools.com › cssref › css3_pr_align-items.php
CSS align-items property
For this property to have any alignment effect, the items need available space around themselves in the appropriate direction. Tip: Use the align-self property of each item to override the align-items property.
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › CSS › Reference › Properties › align-items
align-items - CSS - MDN Web Docs - Mozilla
/* Basic keywords */ align-items: normal; align-items: stretch; /* Positional alignment */ /* align-items does not take left and right values */ align-items: center; align-items: start; align-items: end; align-items: flex-start; align-items: flex-end; align-items: self-start; align-items: self-end; align-items: anchor-center; /* Baseline alignment */ align-items: baseline; align-items: first baseline; align-items: last baseline; /* Overflow alignment (for positional alignment only) */ align-items: safe center; align-items: unsafe center; /* Global values */ align-items: inherit; align-items: initial; align-items: revert; align-items: revert-layer; align-items: unset;
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › CSS › Guides › Flexible_box_layout › Aligning_items
Aligning items in a flex container - CSS - MDN Web Docs
Keeping the same writing mode, when the flex-direction is changed to column, the align-items and align-self properties will align the items to the left and right instead of top and bottom; these properties are still aligning items along the cross axis, but the cross axis is now horizontal!
🌐
Tailwind CSS
tailwindcss.com › docs › align-items
align-items - Flexbox & Grid - Tailwind CSS
Utilities for controlling how flex and grid items are positioned along a container's cross axis.
🌐
Bootstrap
getbootstrap.com › docs › 4.0 › utilities › flex
Flex · Bootstrap
Use align-items utilities on flexbox containers to change the alignment of flex items on the cross axis (the y-axis to start, x-axis if flex-direction: column).
Find elsewhere
🌐
Medium
medium.com › 12-developer-labors › css-all-the-ways-to-align-elements-left-and-right-52ecce4a4af9
CSS. All the ways to align elements left and right. | by piotr szybicki | 12 developer labors | Medium
November 22, 2019 - All I have to do is set the relative positioning on the container and absolute on the right wrapper (left wrapper will be aligned to the left automatically) and then set right property to 0. Meaning zero pixels from the right.
🌐
GeeksforGeeks
geeksforgeeks.org › css › how-to-right-align-flex-item
How to Right-align flex item? - GeeksforGeeks
October 10, 2024 - Unlike the previous example, the items retain their original order and are laid out from left to right. ... <!DOCTYPE html> <html> <head> <title>Right alignment</title> <style> #container { width:600px; height: 300px; border: 5px solid black; display: flex; justify-content: flex-end; } #container div { width: 100px; height: 50px; } </style> </head> <body> <div id="container"> <div style="background-color:#389900;">one</div> <div style="background-color:#08ebb2;">two</div> <div style="background-color:#dd2289;">three</div> <div style="background-color:#fcff66;">four</div> </div> </body> </html>
🌐
GeeksforGeeks
geeksforgeeks.org › css › how-to-make-right-align-div-elements-in-css
How to Right Align Div Elements in CSS? - GeeksforGeeks
July 23, 2025 - CSS Grid allows precise control over both rows and columns, making it perfect for right-aligning elements. To align a <div> to the right, set the parent container to display: grid; and use justify-items: end;.
🌐
W3Docs
w3docs.com › css
How to Right-Align a Flex Item
In this snippet, we’re going to demonstrate how you can right-align a flex item. For that, use the CSS justify-content property with the “space-between” value.
🌐
CSS-Tricks
css-tricks.com › almanac › properties › a › align-items
align-items | CSS-Tricks
April 19, 2025 - The align-items property defines the default behavior for how items are laid out along the cross axis (perpendicular to the main axis).
🌐
PrimeFlex
primeflex.org › alignitems
Align Items - PrimeFlex
Defines the alignment on the cross axis. Items are stretched to fit the container.
🌐
TutorialsPoint
tutorialspoint.com › how-to-right-align-flex-item
How to Right-align flex item?
April 10, 2023 - In the below example, we have a container with three child elements, each child element has the class child. To create a right-aligned flex item, we add another class called right-align to the third item. In the CSS, we set the display property of the container to flex to enable flexbox layout.
🌐
CSS Reference
cssreference.io › property › align-items
align-items - CSS Reference
Defines how flexbox items are aligned according to the cross axis, within a line of a flexbox container.
🌐
Tutorial Republic
tutorialrepublic.com › faq › how-to-right-align-flex-item-using-css.php
How to Right Align Flex Item Using CSS
You can simply use the CSS margin-left property with the value auto to right align flex item within a flex container.
🌐
GeeksforGeeks
geeksforgeeks.org › css › how-to-align-one-item-to-the-right-using-css-flexbox
How to Align One Item to the Right using CSS Flexbox ? - GeeksforGeeks
July 23, 2025 - While justify-content: flex-end aligns all items to the right, combining it with margin-left: auto on a specific item can push that item further to the right, effectively separating it from the others.
🌐
Bootstrap
getbootstrap.com › docs › 5.3 › utilities › flex
Flex · Bootstrap v5.3
Use align-items utilities on flexbox containers to change the alignment of flex items on the cross axis (the y-axis to start, x-axis if flex-direction: column).