Показать сообщение отдельно
  #2 (permalink)  
Старый 12.01.2021, 23:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,129

Сообщение от voraa
исключая разбор текста правил вручную

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" >
<style id=stv>
#el{
    width: 100px;
    height: 50vh;
}
.cl {
    width: 300px;
    height: 100em;
    color: rgb(255,220,220);
    --var1: 100px;
}
</style>
 </head>
 <body>
<script>
let getStyle = (st, sel, name) => {
    const rules = st.sheet.cssRules
    for (let i=0; i<rules.length; i++) {
        if (sel == rules[i].selectorText) {
            const reg = new RegExp(`(?<=${name}:\\s+)([^;]+)`);
            return rules[i].cssText.match(reg)[0]
        }
    }
}
let st = document.getElementById('stv')
console.log('#el', 'width:',  getStyle(st, '#el', 'width')) //  100px
console.log('.cl', 'color:',  getStyle(st, '.cl', 'color'))  //  rgb(255,220,220)
console.log('.cl', '--var1:',  getStyle(st, '.cl', '--var1')) //  undefined ???
</script>
</body>
</html>

Последний раз редактировалось рони, 12.01.2021 в 23:23.
Ответить с цитированием