加载 epub3 内容时 webView 忽略 CSS

webView ignoring CSS when loading epub3 content

我正在研究一个 reader,我们曾经在 epub2 上工作,我使用 CSS 文件研究分页效果。我最近收到了一个 ePub 3 文件,它不遵守我提供的 CSS 规则,尽管在 Play Books android 应用程序上试用时它可以正常工作。

请注意,我已经操纵了几个与网络视图相关的功能,例如:

testWV.getSettings().setUseWideViewPort(true);
testWV.getSettings().setLoadWithOverviewMode(true);

这是前面提到的在 epub2 文件上完美运行的分页 CSS

html {
     height:heightplaceholderpx;  //set dynamically depending on phone screen size 

     width:100%;
   }

body {
     margin:0px;
     padding:0px;
     width:100%;

     pointer-events: none;
  }


#viewer {
     width:widthplaceholderpx;
     height:heightplaceholderpx; 
 }

#book {
    width:widthplaceholderpx;
    height:heightplaceholderpx;

    margin-left:50px;
    margin-right:50px;
    margin-top:10px;

    -webkit-column-count:auto;
    -webkit-column-width:widthplaceholderpx;
    -webkit-column-gap:100px;
    text-align:justify;
}

.h {
    margin-top:60px;
    margin-left:100px; 
    margin-right:100px;
 }


img {
    max-width: 100%;
    height:auto;
 }

这就是我整合 CSS 文件的方式:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <link rel="stylesheet" href="columnPaging.css" type="text/css" media="screen"/>
    headplaceholder  //the header extracted from the xhtml file of the book
</head>
<body>
    <div id="viewer">
    <div id="book">
        bodyplaceholder   //the body extracted from the xhtml file of the book
    </div>
    </div>
</body>
</html> 

你可以看到你在他的 css 中使用了这个变量 widthplaceholderpx。通常应该在 Java 代码中覆盖它。但是当 bodyplaceholder 被添加到 HTML 的主体时,我需要再次覆盖 widthplaceholderpx 。所以 css 会知道实际高度是多少。