clip-path: path(...)
Но, конечно, макет в фотошопе в 2025 году это просто праздник.
Ну и всё равно остаётся вопрос об очевидности, т.е. чем руководствовались программеры, выбрав вместо прямого указания даты эту самую всплывалку, а впридачу к ней целую отдельную процедуру, рассчитывающую, больше или меньше трёх лет прошло.
const INPUT = document.addEventListener('DOMContentLoaded', function(event) {
fetch('/message.txt')
.then(function(response) {
if (response.ok) {
return response.text();
}
throw new Error('Не удалось загрузить файл.');
}).then(function(text) {
renderTable(text);
document.querySelectorAll('.table_top td:nth-child(2)').forEach(td=>{
let txt = td.textContent;
td.innerHTML = `<a href="www.site.com/?q=${txt}">${txt}</a>`;
});
})
.catch(function(error) {
console.error('Произошла ошибка при попытке отобразить файл: ' + error.message);
});
});
Потому что без него для коллекции нельзя вызвать метод forEach напрямую.
<div style="2rem"><div style="2rem">text</div></div> - размер текста - 32px
<div style="2em"><div style="2em">text</div></div> - размер текста - 64px
function convertRemToEm(value: string): string {
return value.replace(/(\d*\.?\d+)rem/g, (match, p1) => {
let px = parseFloat(p1) * 16;
return `${px.toFixed(4)}px`;
});
}
Без указания высоты тоже можно обойтись: height:100%; aspect-ratio: 1;
ну и позиция top: 100%; left: 0;