例如,我想将的背景颜色更改www.google.com
为red
。我已经用过了webview
,我的style.css
文件在assest folder
。我想将此style.css
文件注入www.google.com
。我的代码有什么问题?请为我写正确的代码。谢谢。我的MainActitviy.java
档案:
package com.example.mysina;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = new WebView(this);
setContentView(webView);
String html = "<html><head><style> src: url('file:///android_asset/style.css')</style></head></html>";
webView.loadData(html, "text/html", "utf-8");
webView.loadUrl("https://www.google.com");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
您不能直接注入CSS,但是可以使用Javascript来操纵页面dom。
public class MainActivity extends ActionBarActivity {
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webView = new WebView(this);
setContentView(webView);
// Enable Javascript
webView.getSettings().setJavaScriptEnabled(true);
// Add a WebViewClient
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// Inject CSS when page is done loading
injectCSS();
super.onPageFinished(view, url);
}
});
// Load a webpage
webView.loadUrl("https://www.google.com");
}
// Inject CSS method: read style.css from assets folder
// Append stylesheet to document head
private void injectCSS() {
try {
InputStream inputStream = getAssets().open("style.css");
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
inputStream.close();
String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP);
webView.loadUrl("javascript:(function() {" +
"var parent = document.getElementsByTagName('head').item(0);" +
"var style = document.createElement('style');" +
"style.type = 'text/css';" +
// Tell the browser to BASE64-decode the string into your script !!!
"style.innerHTML = window.atob('" + encoded + "');" +
"parent.appendChild(style)" +
"})()");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
我想加载facebook。com在webview中使用自定义CSS来更改一些内容。我使用jsoup,但每次启动应用程序时都会崩溃。 这是我的代码: Logcat输出 FATAL EXCEPTION: main Process:android.app., PID: 23936hread.mainRuntimeException:无法启动活动ComponentInfo{hread.java:5417}
所以现在我有一个简单的datalist下拉菜单,我想改变它的CSS,以便样式与网站上的其他字段匹配。然而,我是一个网页设计的noob,我有点困惑,因为要完成这个过程。 我有CSS在那里以及imo这将是最容易的内联CSS,但如果有人能指导我通过这将是伟大的感谢!
我想创建一个超文本标记语言web组件,我需要导入CSS文件,但我想将其注入到我的影子dom中。我有一些代码如下: 但是“rollup plugin postss”不断向我的主html头部注入css,我不知道如何阻止它
问题内容: 我正在尝试使用CSS Grid创建一个简单的页面。 我无法做的是将HTML文本集中到相应的网格单元格。 我尝试将内容放置在和选择器内部和外部的单独s中,并使用某些CSS属性无效。 我该怎么做呢? 问题答案: 这个答案有两个主要部分: 了解对齐方式在CSS Grid中的工作方式。 在CSS Grid中居中的六种方法。 如果您仅对解决方案感兴趣,请跳过第一部分。 网格布局的结构和范围 要完
问题内容: 我正在尝试让我的粘性标头具有过渡效果,因此它不仅易于移动,而且易于释放。 我究竟做错了什么? 基本上,以下代码将tiny类添加到我的包装器类中,这很好。 这是CSS部分: 所以标题确实会收缩,但是没有动画,我是否错过了某些东西,或者转换根本不适用于网格? 这是css-grid文档的链接。 问题答案: 根据规范,过渡应该在和上进行。 7.2。 明确的轨道尺寸:和 属性 可动画的: 作为长
在代码中合理的添加注释是个非常好的习惯,通过注释您可以对代码加以解释说明(例如描述某段代码的功能、使用方法等),浏览器会自动忽略注释的内容。注释对开发人员非常重要,它可以帮助开发人员更快的理解代码的用途。 在 CSS 中注释以 开头(起始符),以 结尾(结束符), 与 是成对出现的,所有在 与 之间的内容都会被看作注释的内容。CSS 中的注释只有这一种写法,无论是在单行中使用还是跨越多行使用,只要