Javascript 是否有一种简单的方法来转换;“字体”;为每个属性设置样式';什么是个人风格?

Javascript 是否有一种简单的方法来转换;“字体”;为每个属性设置样式';什么是个人风格?,javascript,css,Javascript,Css,例如: 下面是一个样式对象: { font: normal normal bold 14px/14px arial, color: black } 我希望更正的对象类似于: { fontStyle: normal, fontVariant: normal, fontWeight: bold, fontSize: 14px, lineHeight: 14px, fontFamily: arial, color: black

例如:

下面是一个样式对象:

{
    font: normal normal bold 14px/14px arial,
    color: black
}
我希望更正的对象类似于:

{
    fontStyle: normal,
    fontVariant: normal,
    fontWeight: bold,
    fontSize: 14px,
    lineHeight: 14px,
    fontFamily: arial,
    color: black
}
{
    font: bold 14px arial
}
我可以轻松地将字符串拆分并解析出每个属性,但有时可能不存在所有属性。例如,您可能会收到类似以下内容的样式对象:

{
    fontStyle: normal,
    fontVariant: normal,
    fontWeight: bold,
    fontSize: 14px,
    lineHeight: 14px,
    fontFamily: arial,
    color: black
}
{
    font: bold 14px arial
}

谢谢

您对哪个部分有问题?每个属性都有一个属性顺序和一些可接受的值,只需浏览它们,跳过那些没有该属性任何有效值的属性

如果样式已实际应用于元素,则在当前浏览器上可以使用:

window.getComputedStyle(el).getPropertyValue(...)

要提取各个字段的值(例如,
字体系列
行高

我正在编写的脚本的一部分将样式对象发送到服务器。因为这种情况每秒可能发生多次,所以我将上次发送到服务器的样式对象与即将发送的样式对象进行比较,然后只发送增量,以尽量减少发送的数据量。同时应避免使用
font:
。详情请看上面的黄色方框。老师,我完全同意。在这种情况下,这是不可避免的,因为粘贴到safari浏览器中的文本会强制接收输入(在我的情况下是可编辑的div)使用此属性。我考虑过这一点,但某些属性可以具有相同的值。“Normal”和“inherit”是两个例子。我仍然不认为有什么问题,你首先要查找style,它接受inherit和Normal,所以如果它说Normal就是style,那么下一个属性就是variant,为它查找有效的属性