2

我正在使用 react.js 的 HTML 到 JSX 转换器,此处演示:

https://magic.reactjs.net/htmltojsx.htm

并注意到一个奇怪的行为。

翻译这段代码时:

<div style="font-size: 14px; line-height: 14px">Hello world</div>

返回短语中的翻译是:

<div style={{ fontSize: 14, lineHeight: 14 }}>Hello world</div>

请注意,“px”已被删除。现在,虽然“fontSize”特性很好,但css中的“lineHeight”表现完全不同,14的行高根本不等于14px。

任何建议的解决方法或解释都将受到高度赞赏。

4

1 回答 1

2

这是一种已知行为,可能是一个错误。不过,MDN不鼓励使用为line-height.

因为您已经font-size为该元素指定了(并且因为它正确解析了它),所以您实际上不需要px为您的 使用 -values line-height,因为它将引用元素的font-size属性。

使用的值是这个无单位number乘以元素的字体大小。计算的值与指定的 相同number。在大多数情况下,这是设置 line-height 的首选方法,在继承的情况下不会出现意外结果。

相反,只需执行以下操作:

<div style="font-size:14px; line-height:1">Hello world</div>

line-height这应该与设置为 14px具有相同的效果。

编辑:

似乎您可以通过使用14px !important. 以防万一你真的需要使用px.


2016 年 3 月 8 日更新

从 React v15.0 开始,您应该不再面临这个问题。根据变更日志

React DOM:将无单位 CSS 值指定为字符串时,未来版本将不会自动添加 px。这个版本现在在这种情况下发出警告(例如:写作风格=。(无单位数值,如宽度:300 不变。)

于 2016-02-25T07:56:43.377 回答