Проблема решена. Теории не знаю, но помог display: inline-block;
Так работает
<head>
<style>
.und {
text-decoration: underline;
text-decoration-thickness: 2px;
text-underline-offset: 3px;
}
.num {
text-decoration: none;
display: inline-block;
}
.num::after {
content: "( " attr(data-num) " )";
text-decoration: none;
}
}
</style>
</head>
<body>
Lorem ipsum dolor sit amet,
<span class="und">
consectetur adipiscing
<span class="num" data-num="1742"></span>
elit
</span>
, sed do eiusmod tempor ...
</body>
Смотрел в спеке, не очень хорошо понял, но там сказано, что подчеркивание как то по разному распространяется на строчные и блочные дочерние элементы.