将CSS文件应用于JavaFX WebView

前端之家收集整理的这篇文章主要介绍了将CSS文件应用于JavaFX WebView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将CS​​S文件应用于JavaFX WebView对象.从我读过的内容来看,这应该可以解决问题,但显然我错过了一些东西,因为WebView显示没有任何样式.
package net.snortum.play;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebviewCssPlay extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("CSS Styling Test");
        stage.setWidth(300);
        stage.setHeight(200);

        WebView browser = new WebView();
        WebEngine webEngine = browser.getEngine();
        webEngine.loadContent("<html><body><h1>Hello!</h1>This is a <b>test</b></body></html>");

        VBox root = new VBox(); 
        root.getChildren().addAll(browser);
        root.getStyleClass().add("browser");
        Scene scene = new Scene(root);
        stage.setScene(scene);
        scene.getStylesheets().add("/net/snortum/play/web_view.css");
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

我的CSS文件如下所示:

.browser {
    -fx-background-color: #00ff80;
    -fx-font-family: Arial,Helvetica,san-serif;
}

解决方法

James_D already explained in his answer如何将“JavaFx CSS”转换为“HTML CSS”,但使用 WebEngine.setUserStylesheetLocation设置包含CSS的样式表可能更方便:
webEngine.setUserStyleSheetLocation(getClass().getResource("style.css").toString());

style.css包含css代码

body {
    background-color: #00ff80; 
    font-family: Arial,sans-serif;
}

猜你在找的CSS相关文章