在本文中,我们将给您介绍关于CSS解析错误的处理规则的详细内容,并且为您解答css解析错误的处理规则是的相关问题,此外,我们还将为您提供关于360浏览器提示解析错误怎么办浏览器域名解析错误怎么解决、3
在本文中,我们将给您介绍关于CSS 解析错误的处理规则的详细内容,并且为您解答css 解析错误的处理规则是的相关问题,此外,我们还将为您提供关于360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决、360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?、Access restriction错误的处理、android layout XML解析错误的解决方法的知识。
本文目录一览:- CSS 解析错误的处理规则(css 解析错误的处理规则是)
- 360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决
- 360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?
- Access restriction错误的处理
- android layout XML解析错误的解决方法
CSS 解析错误的处理规则(css 解析错误的处理规则是)
css 句法( css Syntax )
语法是语言表达的规则。各种语言都有不同的语法,包括人类语言和计算机语言等。
语法有时候也指句法( Syntax ),指的是句子由词汇构成的规律。也可以将它看作组成句子的规则。它包含两个方面的涵义:
- 词汇:即,可以构成句子的有效用词。例如,英语中的单词,JavaScript 中的 "var"、"for" 等等;
- 规律:也可以将它看作规则,即,如何使用有效的词汇组成句子。比如,JavaScript 中要用 ''var toolName;'' 定义变量, 但是 Java 中却应该使用 ''String toolName;'' 等定义变量。 不同的语言,组成句子的规则不同。
CSS,同我们所认识的其他语言,例如 JavaScript 一样,有它自己的句法,适用于任何版本的 CSS。后续版本的应该坚持使用此核心句法,当然可以增加句法规则。
CSS 句法描述了 CSS 的关键字、厂商扩展、可用字符集、规则集合、声明块、选择器、特性以及注释等所有 CSS 的构成部分。
如常用的 Class 选择器命名规范被定义为:
class : ''.'' IDENT
他由 ''.'' 字符开头,其后跟随 IDENT 规则。因此,根据断词书写规则检查 IDENT 书写规范如下:
Macro | DeFinition |
---|---|
ident | [-]?{nmstart}{nmchar}* |
nmstart | [_a-z]|{nonascii}|{escape} |
nmchar | [_a-z0-9-]|{nonascii}|{escape} |
nonascii | [^\0-\177] |
escape | {unicode}|\\[^\n\r\f0-9a-f] |
unicode | \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])? |
nmstart | [_a-z]|{nonascii}|{escape} |
nmchar | [_a-z0-9-]|{nonascii}|{escape} |
nonascii | [^\0-\177] |
escape | {unicode}|\\[^\n\r\f0-9a-f] |
unicode | \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])? |
对照表中内容可以组合出 Class 整体命名规范表达式为:
class : ''.'' [-]?([_a-z]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?|\\[^\n\r\f0-9a-f])([_a-z0-9-]|[^\0-\177]|\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?|\\[^\n\r\f0-9a-f])*
CSS 解析错误
CSS 代码,可以看作是依照 CSS 句法所写的句子,而读这个句子的人,就是浏览器。因此,错误可能出自两个地方,一是不遵照 CSS 句法写代码的人, 一是不能正确解析 CSS 代码的浏览器。
在符合句法的情况下,一段 CSS 代码的解析,也可能在各个浏览器中都相同,但在不符合句法的时候,浏览器可能要加入自己的处理方式。正是因为浏览器的多样化, 才造成了对同一段 CSS 代码解析方式的多样化。
这里所讲的 CSS 解析错误,指的是,如果浏览器遇到不遵循句法(不合法)的 CSS 代码,会因无法正确的解析,而产生的错误。
某些不合句法的 CSS 错误,W3C 给出了确切的处理规则。
广州包装设计公司http://www.maiqicn.com 电脑刺绣绣花厂 ttp://www.szhdn.com
CSS 解析错误的处理规则
错误处理总则
对于不合法的 CSS 代码,浏览器需要忽略一部分不合法的样式表。
CSS2.1 及所有后继版本中,对于任何以破折号、下划线开头的 ''property:value'' 组合和不包含标识符的 @-keywords 组合,都以忽略的方式处理。
分析以下代码:
div{
_height: 19px;
width:100px;
}
对于此类样式中的 ''_height'' 特性,浏览器应该以忽略的方式处理。经解析错误处理后的样式应该是:
div{
_height: 19px;
width:100px;
}
未知的特性( properties )
未知的特性,即属于以上所说不属于它句法中有效词汇的词汇。浏览器必须忽略带有未知特性的声明。
例:
div{
yes:100px;
width:100px;
}
其中,''yes'' 不是 CSS 的特性,因此上述的声明 ''yes:100px;'' 应该被忽略。
不合法的值
不合法的值,也属于句法中无效的词汇。浏览器必须忽略带有不合法值的声明。
例:
div{
height:100;
width:100px;
}
''height'' 特性的值应该是一个数字后加一个单位构成的值。只有一个数字的值是不合法的,应当忽略。
畸形的声明
当浏览器解析一个声明时,读取它的代码直到这个声明的结束,同时,检查 (),[],{},"",和 '''' 的匹配规则, 并且正确的处理编码,这时候,浏览器必须处理它所遇到的意外出现的标记。 怎样处理?标准没有明确指出。 因为针对不同的情况,应该采取不同的处理手段。
例:
p{height} /* 丢失了 ”:” 和后面的值,此属性应被忽略 */
({)P{width:100px} /* 多余的 ({),此行应被忽略*/
这两条声明都是畸形的声明,应该被忽略。
不可用的 @ 关键字
本条类似于未知的特性。
例:
@google{
height:100px;
width:100px;
}
@google 不是标准中的 @ 关键字,声明应当被忽略。
样式表的意外结束
浏览器必须自动闭合敞开的结构(如,块,字符串和注解等)
例:
p{
height:100px;
width:100px;
缺少了闭合的大括号,浏览器应该自动补齐:
p{
height:100px;
width:100px;
}
字符串的意外结束
若值为字符串,却没有用单双引号闭合的情况。用户端应该在一行的结尾处,闭合字符串,一般都是以分号结尾。
例:
p {
color: green;
font-family: ''Courier New Times
color: red;
color: yellow;
}
以上代码相当于:
p {
color: green;
color: yellow;
}
以分号为界限,"font-family: ''Courier New Times color: red;" 这条声明中,‘font-family’ 的值不合法,应当被忽略。实际情况是,在 IE 中被忽略的是 "font-family: ''Courier New Times color: red; color: yellow;"
建议
虽然 W3C 明确规定了这些解析错误的处理规则,但各浏览器的处理还是不尽相同。而且,从上面的规则例子中可以看到,所有的错误都是人为的疏忽造成的,也有的是故意为之。 因此,为了更好的避免浏览器兼容性问题,一定要仔细检查,尽量不要出现 CSS 句法错误。
总结
以上是小编为你收集整理的CSS 解析错误的处理规则全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决
360浏览器提示解析错误,令不少用户头疼。本文将深入探讨造成此错误的常见原因,并提供一系列可行的解决方案。php小编百草将在下文详细阐述:错误原因:分析导致解析错误的常见根源,包括浏览器扩展、缓存问题和恶意软件感染。解决方案:提供分步指南,展示如何禁用扩展、清除缓存,以及使用防病毒软件扫描和修复系统。其他修复方法:介绍其他有效的修复方法,例如重置浏览器设置、重新安装浏览器,以及更新系统。通过遵循本文提供的修复步骤,您将能够有效解决360浏览器解析错误,恢复流畅的浏览体验。
方法1:修改DNS服务器地址
1、在网络上右键点击属性。
2、点击更改适配器。
3、在电脑连接的网络上右键,点击属性。
4、在弹出的属性对话框中,先点击网络,再点击Internet协议版本4(TCP/IPv4),再点击属性。
5、将DNS服务器地址改成如图所示,点击确定。
方法2:使用360的断网急救箱
1、打开360安全卫士,点击更多。
2、点击断网急救箱。
3、点击全面诊断。稍等片刻,就可以为你诊断出你的网络究竟出了什么问题,然后对症下药即可。
以上就是
360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?
360浏览器提示解析错误怎么办?最近有用户询问这个问题,在使用360浏览器的时候遇到了这种情况,不知道怎么回事,应该怎么处理呢?针对这一问题,本篇带来了详细的解决方法,操作简单,分享给大家,感兴趣的继续看下去吧。
360浏览器提示解析错误怎么办?
方法1:修改DNS服务器地址
1、在“网络”上右键点击“属性”。
2、点击“更改适配器”。
3、在电脑连接的网络上右键,点击“属性”。
4、在弹出的属性对话框中,先点击“网络”,再点击“Internet协议版本4(TCP/IPv4)”,再点击“属性”。
5、将DNS服务器地址改成如图所示,点击确定。
方法2:使用360的断网急救箱
1、打开360安全卫士,点击“更多”。
2、点击“断网急救箱”。
3、点击“全面诊断”。稍等片刻,就可以为你诊断出你的网络究竟出了什么问题,然后对症下药即可。
Access restriction错误的处理
一、开发环境
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.RSAPublicKeySpec;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import com.sun.org.apache.xml.internal.security.utils.Base64;
/*
* This Java source file was generated by the Gradle ''init'' task.
*/
public class Library {
public boolean someLibraryMethod() {
return true;
}
static SecretKeySpec sk = new SecretKeySpec("propsoft".getBytes(), "DES");
public static String dencry(String password) {
try {
byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(password);
Cipher c1 = Cipher.getInstance("DES");
c1.init(Cipher.DECRYPT_MODE, sk);
byte[] cipherByte = c1.doFinal(dec);
return new String(cipherByte, "utf-8");
} catch (Exception e) {
}
return null;
}
public static String encryptByPublicKey(String str, String module, String exponentString) {
try {
byte[] modulusBytes = com.sun.org.apache.xml.internal.security.utils.Base64.decode(module.getBytes("UTF-8"));
byte[] exponentBytes = com.sun.org.apache.xml.internal.security.utils.Base64.decode(exponentString.getBytes("UTF-8"));
BigInteger modulus = new BigInteger(1, modulusBytes);
BigInteger exponent = new BigInteger(1, exponentBytes);
RSAPublicKeySpec rsaPubKey = new RSAPublicKeySpec(modulus, exponent);
KeyFactory fact = KeyFactory.getInstance("RSA");
PublicKey publicKey = fact.generatePublic(rsaPubKey);
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherData = cipher.doFinal(str.getBytes("UTF-8"));
return Base64.encode(cipherData);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
在开发工具,如eclipse中调用时,报错
Access restriction: The type ''Base64'' is not API (restriction on required library ''D:\Program Files\jdk1.8.0_72\jre\lib\rt.jar'')
解决方法:
方法1、项目右键->Build Path ->Libraries -> 加载默认JDK即可
方法2、将Error 改为 Warning
二、编译环境
1、使用gradle编译,build会报错
D:\develop\workspace\demo\src\main\java\Library.java:9: 错误: 程序包com.sun.org.apache.xml.internal.security.utils不存在
import com.sun.org.apache.xml.internal.security.utils.Base64;
^
D:\develop\workspace\demo\src\main\java\Library.java:23: 警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除
byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(password);
^
D:\develop\workspace\demo\src\main\java\Library.java:36: 错误: 找不到符号
byte[] modulusBytes = Base64.decode(module.getBytes("UTF-8"));
^
符号: 变量 Base64
位置: 类 Library
D:\develop\workspace\demo\src\main\java\Library.java:37: 错误: 找不到符号
byte[] exponentBytes = Base64.decode(exponentString.getBytes("UTF-8"));
^
解决方法:
在build.gradle中添加
import org.apache.tools.ant.taskdefs.condition.Os
tasks.withType(JavaCompile) {
def sep = '':''
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
sep = '';''
}
options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar"+sep+"$System.env.JAVA_HOME/jre/lib/jce.jar"
}
2、在maven中报错
解决方法:
pom.xml中添加编译参数
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
android layout XML解析错误的解决方法
提示:
org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unkNown @1:5 in java.io.InputStreamReader@47ec2770)
org.xml.sax.SAXParseException: PI must not start with xml (position:unkNown xm@3:5 in java.io.InputStreamReader@43e4b480)
经过多次查找确认XML语法没错误。
问题原因:
为XML文件第一行格式错误,仔细修改第一行即可
<?xml version="1.0" encoding="utf-8" ?> (具体原因未知,如果删除这行也可以成功预览。)
更合理的解决办法:
删除XML文档,通过系统New->other->android xml file 重新建XML文档,然后把XML文档内容重新copY或者输入就行了。
关于CSS 解析错误的处理规则和css 解析错误的处理规则是的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决、360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?、Access restriction错误的处理、android layout XML解析错误的解决方法等相关内容,可以在本站寻找。
本文标签: