# different vertical alignment of text for different columns in tabularx environment

I asked a question before, howerver it was marked as a duplicate and closed down. Unfortunately the provided solution did not answer the problem, so I am reposting it.

I am using tabularx environment and in the MWE I have three columns. The first column contains short text, the second column contains long text and the third column contains short text again.

\documentclass{article}
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{6cm}{|p{2cm}|b{2cm}|p{2cm}|}
short 1 & long text spanning more than one row & short 2 \\
\end{tabularx}

\end{document}


As expected, the result is that both short 1 and short 2 align to the bottom.

If I change the setting on middle column from b{2cm} to p{cm}, as expected both short 1 and short 2 align to the top.

I would like to make short 1 align to the top and short 2 align to the bottom. How can I achieve that?

SUGGESTED SOLUTION THAT DOES NOT WORK:

Following a suggestion by @NBur who pointed me to this post, I've implemented the following changes:

\documentclass{article}
\usepackage{tabularx}

\newcolumntype{C}{b{2cm}<{\vfill}}

\begin{document}

\begin{tabularx}{6cm}{|C|b{2cm}|p{2cm}|}
short 1 & long text spanning more than one row & short 2 \\
\end{tabularx}

\end{document}


Unfortunately this code brings up the text only by one line and not all the way up to the top of the cell, so it does not work.

Are there any other suggestions?

An alternative solution with tblr environment of tabularray package, using head and foot alignmnet types:

\documentclass{article}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{|h{2cm}|m{2cm}|f{2cm}|}
short 1 & long text spanning more than one row & short 2 \\
\end{tblr}

\end{document}