2014-12-27 74 views
-2

我用口径(http://calibre-ebook.com/)来管理我的电子书,它给了我一个工具来编辑于EPUB & azw3格式,CSS & HTML文档。CSS样式表使语言警告

当我运行调试器,它给了我下面的错误&警告:(我已经剥离了大部分的CSS文件了)

@namespace h "http://www.w3.org/1999/xhtml"; 
.calibre2 { 
    height: 422; <!-- ERROR: CSS: Property: Invalid value for "CSS Level 2.1" 
          property: 422 [91:5: height]    [stylesheet.css] --> 
    width: 601; <!-- ERROR: CSS: Property: Invalid value for "CSS Level 2.1" 
          property: 601 [92:5: width]    [stylesheet.css] --> 
} 
.western { 
    color: #000; 
    direction: ltr; 
    display: block; 
    font-family: "Times New Roman", serif; 
    font-size: 1em; 
    margin-bottom: 0; 
    margin-left: 0; 
    margin-right: 0; 
    margin-top: 0; 
    orphans: 2; 
    so-language: en-GB; <!-- WARNING: CSS: Property: Unknown Property name. 
             [109:5: so-language]    [stylesheet.css] --> 
    text-align: center; 
    widows: 2; 
} 

坦率地说,我没有花了很多时间上的高度&宽度错误,认为它们可能与我的阅读设备有关(三星注)。

由于出现这样的语言错误,我试图将其更改为lang: en;:lang en;,这两者都会出错。我试过Google搜索“so-language”,认为它可能已被弃用&取代,但我发现甚至包含它的页面很少,&没有提供任何信息。

+6

高度和宽度需要指定单位。像10px或10%。我不知道语言是什么。可能是一个口径的东西?这可能是因为这种语言不是css规范中的属性,但是您使用的软件正在使用它,但调试器无法识别它。由于它只是一个警告我会忽略它,因为它听起来不像是影响你的用户体验 – Vall3y 2014-12-27 19:26:53

回答

1

CSS 2.1 reference about width

Value: <length> | <percentage> | auto | inherit
[...]
<length> 指定使用一个长度单元中的内容区域的宽度。

...和length is defined as

一个长度值(由<length>在本说明书 表示)的格式是一个<number>(带有或不带有小数点) 紧跟一个单元标识符(例如,px,em等)。在 之后零长度,单位标识符是可选的。

换句话说,如果长度为零,则只能省略单位。

我已经测试了几个浏览器,他们都通过假设像素来修复无效宽度,因此可能会安全地添加px后缀;但最好在代码中找到class="calibre2",并了解该元素用于什么,因此您可以确定不会破坏它。

至于so-language,我一直无法找到适当的参考资料(只有一些来自电子书的代码样本),所以我怀疑它是一个专有的亚马逊属性。 Calibre可能使用标准的第三方CSS验证器,因此它不知道W3C建议中没有的东西。忽略警告可能是可以的。

1

这是我可以找到的CSS语言标记的唯一目的。

.western:lang(en-GB) { ... } 

html - 元素具有lang属性将会选择该和风格吧。

例如: <span lang="en-GB">English</span>

而且确如@ Vall3y说。 Positiondimension属性需要units,如px,%em

但是我无法彻底回答这个问题,因为您的帖子中没有真正的问题。

+0

显然,无效的“so-language”属性是OpenOffice CSS生成器添加的东西。显然它不会伤害任何东西,我简直就是一个足够让这些事情烦扰我的人。 :) – 2015-02-06 03:48:06

0

您提到的高度和宽度错误位于应用于epub或azw3源中图像标记的口径类中。通常情况下,图像标记将是这个样子:

<img src="foo.gif" height="422" width="601"> 

注意,因为它被认为是由pixes你没有指定像像素在图像标记的高度和宽度的“像素”后缀默认的,但你会发现它在你的电子书被渲染为:

<img src="foo.gif" class="calibre2"> 

,并加上CSS:

.calibre2 { 
height: "422"; 
width: "601" 
} 

这就是为什么CSS解析器抛出一个错误。当高度和宽度属性以这种方式出现在CSS中时,它们确实会在口径上引发解析错误。这可能不会给电子书阅读器带来问题,并且您始终可以将高度和宽度属性移回到epub/azw3 html文件中以摆脱CSS解析错误,但摆脱错误消息的最简单方法是将CSS类更改为:

.calibre2 { 
    height: 422px; 
    width: 601px; 
} 

因为指定图像标记的px(虽然不是必需的)并没有害处。至于这样的语言属性,只需使用口径编辑器搜索并替换为空白文本即可。我就是做这个的。但它会被电子书阅读器忽略,应该不会出现任何问题。