我在这里有一个jsfiddle - http://jsfiddle.net/qYR6U/8/ - 我用jQuery设置font-family
并用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;
感谢。
答案 0 :(得分:2)
这是因为当字体名称包含空格时,浏览器会将需要引用的任何字符串解释为需要引号,因此会添加引号(这适合浏览器执行)。为什么只有当Chrome的属性被回读时,Chrome才会显示(正常)引用,你得到了我。
尝试Times New Roman
,你会得到相同的带引号的字符串。
来自W3:
为避免转义错误,建议引用包含除连字符以外的空格,数字或标点字符的字体系列名称:
body { font-family: "New Century Schoolbook", serif }
<BODY STYLE="font-family: '21st Century', fantasy">
答案 1 :(得分:1)
您正在为JS函数参数使用单引号。要将font-family
设置为具有多个单词的字体,您也应该将名称括在引号中。
因此,不要在代码中使用'Comic Sans MS'
,请尝试使用'"Comic Sans MS"'
。 (单引号和双引号)。
我相信Arial
有效,因为这只是一个字。