Consider the following MWE:
\documentclass{article}
\usepackage[framemethod=TikZ]{mdframed} % noteboxes, boxes, etc.
\usepackage{calc}
\newcommand{\definebox}[2]{%
\newcounter{#1}
\newenvironment{#1}[1][]{%
\stepcounter{#1}%
\mdfsetup{%
frametitle={%
\tikz[]
\node[rectangle,fill=white]
{\strut \MakeUppercase#1~\csname the #1\endcsname\ifstrempty{##1}{}{:~##1}};}}%
\mdfsetup{innertopmargin=1pt,linecolor=#2,%
linewidth=2pt,topline=true,
frametitleaboveskip={\dimexpr (\ht\strutbox)*-1\relax},}%
\begin{mdframed}[]\relax%
}{\end{mdframed}}%
}
\definebox{definition}{}
\begin{document}
\section{Cats}
Warm kitty, sweet kitty, little ball of fur. Warm kitty, sweet kitty, purr, purr, purr.
\begin{definition}[Kitten.]
A kitten is a baby cat.
\end{definition}
\end{document}
It produces this as output:
If I change frametitleaboveskip={\dimexpr (\ht\strutbox)*-1\relax} to frametitleaboveskip={\dimexpr (\ht\strutbox)*-2\relax}, the output will look like:
But if change it to frametitleaboveskip={\dimexpr (\ht\strutbox)*-1.99\relax}, the output seems to be the same as frametitleaboveskip={\dimexpr (\ht\strutbox)*-1\relax} except for a mysterious pt that appears:
How can I move the frametitle box up by a real amount?


