Решение 1
Абсолютно расположите каретку, если вам нужно показать ее над или под текстовой строкой.
.parent-container {
position: relative;
}
#caret {
display: inline-block;
animation: blink 1s linear infinite;
position: absolute;
/* Change top to change the vertical position of the caret */
top: -5px;
margin: 0 5px;
font-size: 25px;
}
@keyframes blink {
0% {
color: #fff;
}
100% {
color: #000;
}
}
<div class="parent-container">
Lorem ipsum <span id="caret">|</span> dolor sit amet consectetur adipisicing elit. Tempore dicta quod deleniti nemo iure aliquam et. Hic error illum cumque nobis eum et saepe esse, ut cum, magnam aliquam velit.
</div>
Решение 2
Используйте css псевдо-класс :: после и абсолютно поместите его.
#caret {
position: relative;
}
#caret::after {
content: "|";
display: inline-block;
animation: blink 1s linear infinite;
font-size: 25px;
position: absolute;
top: -5px;
left: -2px;
}
@keyframes blink {
0% {
color: #fff;
}
100% {
color: #000;
}
}
<div class="parent-container">
Lorem ipsum do<span id="caret"></span>lor sit amet consectetur adipisicing elit. Tempore dicta quod deleniti nemo iure aliquam et. Hic error illum cumque nobis eum et saepe esse, ut cum, magnam aliquam velit.
</div>
Однако я рекомендую использовать актив фиксированного размера: либо img, либо svg для каретки.