Тут вопрос не в замедлении — с эти как раз у absolte всё в порядке, раз элемент не участвует в формировании нормального потока. Вопрос как раз в том, что все абсолютно позиционированные элементы не участвуют в формировании этого самого потока, и не влияют на остальные элементы.
В идеале — с помощью flex. Вариант попроще — с помощью второго плавающего блока.
И самый простой вариант — сделать первый блок плавающим, и использовать calc().
Профессиональный подход — понимать, что и зачем ты делаешь.
Заменять нативные механизмы из-за «неэстетичного сдвига» — пустая трата времени и ресурсов ради достижения странной цели.
Как обычно, используем псевдоэлементы.
Чтобы не морочиться с учётом левой рамки, можно использовать linear-gradient, или overflow:hidden с другим transform-origin.
Смена плотности начертания или наклона шрифта почти всегда выглядит жутко. Безусловно, при этом происходит изменение размера строки, что влечёт такие неприятные эффекты.
Я так и не понял, что вам конкретно нужно, но верным решением будет декомпозиция матрицы и изменение отдельных матриц трансформаций для последующего умножения и получения итоговой матрицы.
Сделал примитивный пример с matrix2d — таскаем трасформированные объекты.
Очевидно, встроить второй элемент video с другим источником, а при клике не src менять в единственном, а переключать видимость элементов, останавливая воспроизведение у невидимого, а видимому элементу устанавливать текущее время.
Если так хочется оставить своё решение, второй элемент оставить невидимым.
Всё верно вы думаете. Применение col и colgroup уместно более чем.
Только не пойму, зачем в вашем примере используется colgroup. Если задавать ширину для каждой колонки отдельно, это не требуется.
Если же группировать, то следует сделать вот так.
Даже colпозволяет группировать.
Пы.Сы. совместное использование col и colgroup уместно, когда в группе однотипных элементов нужно вклинить один или несколько столбцов с другими стилями.