GVKun编程网logo

CSS 解析错误的处理规则(css 解析错误的处理规则是)

29

在本文中,我们将给您介绍关于CSS解析错误的处理规则的详细内容,并且为您解答css解析错误的处理规则是的相关问题,此外,我们还将为您提供关于360浏览器提示解析错误怎么办浏览器域名解析错误怎么解决、3

在本文中,我们将给您介绍关于CSS 解析错误的处理规则的详细内容,并且为您解答css 解析错误的处理规则是的相关问题,此外,我们还将为您提供关于360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决、360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?、Access restriction错误的处理、android layout XML解析错误的解决方法的知识。

本文目录一览:

CSS 解析错误的处理规则(css 解析错误的处理规则是)

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浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

360浏览器提示解析错误怎么办?最近有用户询问这个问题,在使用360浏览器的时候遇到了这种情况,不知道怎么回事,应该怎么处理呢?针对这一问题,本篇带来了详细的解决方法,操作简单,分享给大家,感兴趣的继续看下去吧。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

360浏览器提示解析错误,令不少用户头疼。本文将深入探讨造成此错误的常见原因,并提供一系列可行的解决方案。php小编百草将在下文详细阐述:错误原因:分析导致解析错误的常见根源,包括浏览器扩展、缓存问题和恶意软件感染。解决方案:提供分步指南,展示如何禁用扩展、清除缓存,以及使用防病毒软件扫描和修复系统。其他修复方法:介绍其他有效的修复方法,例如重置浏览器设置、重新安装浏览器,以及更新系统。通过遵循本文提供的修复步骤,您将能够有效解决360浏览器解析错误,恢复流畅的浏览体验。

方法1:修改DNS服务器地址

1、在网络上右键点击属性。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

2、点击更改适配器。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

3、在电脑连接的网络上右键,点击属性。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

4、在弹出的属性对话框中,先点击网络,再点击Internet协议版本4(TCP/IPv4),再点击属性。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

5、将DNS服务器地址改成如图所示,点击确定。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

方法2:使用360的断网急救箱

1、打开360安全卫士,点击更多。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

2、点击断网急救箱。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

3、点击全面诊断。稍等片刻,就可以为你诊断出你的网络究竟出了什么问题,然后对症下药即可。

360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决

以上就是360浏览器提示解析错误怎么办 浏览器域名解析错误怎么解决的详细内容,更多请关注php中文网其它相关文章!

360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?

360浏览器提示解析错误怎么办?浏览器域名解析错误怎么解决?

360浏览器提示解析错误怎么办?最近有用户询问这个问题,在使用360浏览器的时候遇到了这种情况,不知道怎么回事,应该怎么处理呢?针对这一问题,本篇带来了详细的解决方法,操作简单,分享给大家,感兴趣的继续看下去吧。

360浏览器提示解析错误怎么办?

方法1:修改DNS服务器地址

1、在“网络”上右键点击“属性”。

2、点击“更改适配器”。

3、在电脑连接的网络上右键,点击“属性”。

4、在弹出的属性对话框中,先点击“网络”,再点击“Internet协议版本4(TCP/IPv4)”,再点击“属性”。

5、将DNS服务器地址改成如图所示,点击确定。

方法2:使用360的断网急救箱

1、打开360安全卫士,点击“更多”。

2、点击“断网急救箱”。

3、点击“全面诊断”。稍等片刻,就可以为你诊断出你的网络究竟出了什么问题,然后对症下药即可。

Access restriction错误的处理

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解析错误的解决方法

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解析错误的解决方法等相关内容,可以在本站寻找。

本文标签: