字体族在Chrome中不能正确读取

font-family not read correctly in Chrome

本文关键字:读取 不能 Chrome 字体      更新时间:2023-09-26

我有一个jsfiddle在这里- http://jsfiddle.net/qYR6U/8/-我设置的font-family与jQuery和读取它回来用jQuery。如果我设置的font-family是"Arial…",它会返回一个双引号。但是,如果我设置的font-family是"漫画…",它返回在一组单引号内的一组双引号。

这只发生在Chrome上。有人知道发生了什么吗?

$('#box').css('font-family', 'Arial,Helvetica,sans-serif');
var fontFamily1 = $('#box').css('font-family');
console.log(fontFamily1);
$('#box').css('font-family', 'Comic Sans MS');
var fontFamily2 = $('#box').css('font-family');
console.log(fontFamily2);
debugger;

谢谢。

这是因为当字体名称有空格时,浏览器会将任何需要引号的字符串解释为需要引号,因此会添加引号(这对浏览器来说是合适的)。为什么只有Chrome似乎做这个(正常)引用时,它的属性被读取回,你得到了我。

试试Times New Roman,你会得到相同的引号字符串。

从W3:

为避免转义错误,建议引用包含空格、数字或标点符号的字体族名称,而不是连字符:

body { font-family: "New Century Schoolbook", serif }
<BODY STYLE="font-family: '21st Century', fantasy">

你使用单引号的JS函数参数。若要将font-family设置为名称包含多个单词的字体,您也应该将名称括在引号中。

所以不要在你的代码中使用'Comic Sans MS',试试'"Comic Sans MS"'。(单引号和双引号)。我相信Arial是有效的,因为它只是一个单词。

编辑:我可能误解了。如果问题是字符串周围有引号,而您不想使用引号,则只需通过字符串操作删除它们。