Interprétation HTML d'un objet js littéral simple
sur Githubmerci à William
Côté JavaScript
function objectToDl(o)
{
let objectKeys = Object.keys(o);
return '<dl>'
+ objectKeys.map(key => {
let value = typeof o[key] === 'object' ?
objectToDl(o[key]) : `'${o[key]}'<span>,</span>`;
return `<dt>${key}</dt><dd>${value}</dd>`;
})
.join('')
+ '</dl>';
}
Côté CSS
dl {
background: #80000022;
border: 1px dotted maroon;
display: inline-block;
font-size: 1.2rem;
margin-left: 1.2rem;
overflow: hidden;
padding-left: 2.4rem;
}
dl::before,
dl::after {
content: '{';
float: left;
margin-left: -2rem;
}
dl::after {
clear: both;
content: '}';
}
dt,
dd {
float: left;
}
dt {
clear: left;
}
dd {
margin-left: .4rem;
position: relative;
}
dd:not(:last-child) > dl::after {
content: '},';
}
dt::after {
content: ':';
}
dd:last-child > span {
display: none;
}