如JavaFX CSS参考指南所述:
CSS样式可以来自样式表或内联样式。样式表 从在stylesheets变量中指定的URL加载 场景对象。如果场景图包含Control,则为默认用户 代理样式表已加载。内联样式通过节点指定 setStyle API。内联样式类似于样式=" ..."属性 一个HTML元素。从Scene的样式表中加载的样式 用户代理样式表中的规则优先级。内联样式 优先于其他地方的风格。优先权 样式规则的顺序可以使用"!important"来修改。一种风格 声明。
这究竟是什么意思,两者之间有什么区别?提前谢谢。
答案 0 :(得分:1)
CSS样式可以来自样式表或内联样式。 您在屏幕上看到的样式由编译器读取包含CSS定义的独立文件或您在代码中编写的特定代码来确定。
样式表是从Scene对象的stylesheets变量中指定的URL加载的。如果场景图包含Control,则会加载默认的用户代理样式表。
样式表文件的位置是为您预定义的并且存在并影响您的程序,无论您是否执行了任何操作。该文件的位置由某些String或URL字段描述,该字段本身位于Scene对象中。
内联样式通过Node setStyle API指定。内联样式类似于样式=" ..." HTML元素的属性。
内联样式是在类中编写代码时有意识地定义的样式。你知道你这样做以及它如何影响你的应用程序。您编写的代码使用了某些称为" setStyle API"的方法。 " setStyle API"只不过是你调用MyStyleableNode.setStyle("等等等等,在这里以特定的方式定义我的风格")。这种方式在其他地方描述。
从Scene的样式表加载的样式优先于用户代理样式表中的规则。内联样式优先于其他地方的样式。可以使用"!important"修改样式规则的优先顺序。在样式声明中。
现在有多种风格信息来源,它们可能会相互冲突,而我们(JavaFX的作者)需要一种方法来决定如何在它们之间进行裁决。我们通过硬编码我们承诺始终遵循的一组优先规则来做到这一点。他们是:
UserAgent样式表的优先级最低。我们没有提到这些是什么,因为我们想在StackExchange上创建很多问题。现在你已经来了,我们会告诉你。
UserAgent样式表是使用特定方法在Application.java类中定义的样式表:
setUserAgentStylesheet(String URL)。
Trumping UserAgent Stylesheets是Scene的样式表,我们告诉过你(见上文)。
强调这两者都是内联样式表(它实际上是代码中的方法调用而不是"表"即完全独立的文件)。我上面也告诉过你。
可以使用"!important"修改样式规则的优先顺序。在样式声明中。
如果你让自己彻底困惑,或者你的经理有一天在紧急情况下来找你!要求彻底更改所有内容,我们创建了一个全能优先级运算符,您可以将其附加到样式表规则中:"!important" - 因为有时你只需要做你必须做的事情。
答案 1 :(得分:0)
1-样式表单与主文档分开加载,但在文档内部加入内联样式
2-内联样式会影响加载速度并使您的站点加载速度变慢,但样式表的速度很快
3-内联风格对你的网站SEO来说是件坏事,但样式表不是。
4-内联风格是强制适用,我的意思是它是强制性的。但是在样式表中你必须为力添加!important
!
5-如果您使用样式表更方便复制/抓取您的网站样式,但如果您使用内联CSS,则很容易为rippers复制!