如果您对何时在CSS中使用!important属性感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于何时在CSS中使用!important属性的详细内容,我们还将为您解答css
如果您对何时在CSS中使用!important属性感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于何时在CSS中使用!important属性的详细内容,我们还将为您解答css中的!important的相关问题,并且为您提供关于css – 为什么不鼓励使用`!important`?、css – 为什么我的!important属性不适用于Google Chrome?、css – 如何使用LESS将变量声明为!important?、css – 将“!important”添加到mixin中的有价值信息。
本文目录一览:- 何时在CSS中使用!important属性(css中的!important)
- css – 为什么不鼓励使用`!important`?
- css – 为什么我的!important属性不适用于Google Chrome?
- css – 如何使用LESS将变量声明为!important?
- css – 将“!important”添加到mixin中
何时在CSS中使用!important属性(css中的!important)
考虑:
#div p { color: red !important;}...#div p { color: blue;}
我了解!important
运作方式。在这种情况下,div将呈现红色,因为现在它具有优先级(!important
)。但是我仍然找不到适合的情况来使用它。是否有!important
节省时间的示例?
答案1
小编典典这是现实生活中的场景
想象一下这种情况
- 您有一个全局CSS文件,该文件可以全局设置网站的外观。
- 您(或其他人)对元素本身使用内联样式,这
通常是非常不好的做法。
在这种情况下,您可以将全局CSS文件中的某些样式设置为重要样式,从而覆盖直接在元素上设置的内联样式。
实际的真实世界示例?
当您无法完全控制HTML时,通常会发生这种情况。例如,考虑一下SharePoint中的解决方案。您希望对零件进行全局定义(样式化),但是存在一些您无法控制的内嵌样式。!important
使这种情况更易于处理。
其他现实生活场景还包括一些写得不好的 jQuery插件 ,这些 插件 也使用内联样式…
我想您现在已经有了主意, 也可以提出其他 想法 。
您何时决定使用!important
?
我建议您不要使用,!important
除非您无法以其他任何方式使用它。只要有可能避免它,就避免它。使用很多!important
样式会增加维护难度,因为您破坏了样式表中的自然_层叠_ 。
css – 为什么不鼓励使用`!important`?
解决方法
如果您使用Firebug或Chrome开发工具检查标题元素“理查德”,您应该按以下顺序查看这些规则:
/**************************/ /* /hXPk7/show/ (line 20) */ /**************************/ #myExample #title .name { color: yellow; } /********************************************************/ /* /hXPk7/show/ (line 14) - Inherited fromdiv#myExample */ /********************************************************/ #myExample { color: blue; }
请注意,这不是它们在CSS样式表中出现的顺序 – 而是按照它们的特异性降序排列.首先列出优先级,其他(其规则被更具体的规则覆盖)可能具有划掉的属性.这表明特殊性可以很容易地跟踪(调试?)元素从哪里获取其CSS属性.
现在,与this JS fiddle进行比较 – 实际上是相同的,但是现在使用了一条新规则!important:http://jsfiddle.net/hXPk7/1/
使用Firebug或Chrome开发工具检查相同的元素,您将看到如下内容:
/**************************/ /* /hXPk7/1/show/ (line 20) */ /**************************/ #myExample #title .name { color: yellow; } /**************************/ /* /hXPk7/1/show/ (line 26) */ /**************************/ span { color: black !important; } /********************************************************/ /* /hXPk7/1/show/ (line 14) - Inherited fromdiv#myExample */ /********************************************************/ #myExample { color: blue; }
同样,规则是根据它们的特殊性排序的 – 但请注意,这次,虽然最先列出的最具体的规则指定了黄色,但浏览器却将文本呈现为黑色!这是因为!important声明打破了特异性的正常行为,优先采用可能难以追踪的方式.想象一个更现实的网站,可能有数百条规则,控制颜色的网站并不容易找到或改变.
现在,也许这是开发人员工具的一个问题,但我认为它反映了这样一个事实:重要的是需要一个通常易于预测的优先系统并使其更具挑战性.也许有时候使用它,但它不应该是你编写CSS时的第一个工具.
css – 为什么我的!important属性不适用于Google Chrome?
在reset.css中,发生以下样式定义:
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td { border-bottom-width:0; border-color:initial; border-left-width:0; border-right-width:0; border-style:initial; border-top-width:0; font-family:inherit; font-size:100%; font-style:inherit; font-weight:inherit; margin-bottom:0; margin-left:0; margin-right:0; margin-top:0; outline-color:initial; outline-style:initial; outline-width:0; padding-bottom:0; padding-left:0; padding-right:0; padding-top:0; vertical-align:baseline; }
您可以看到该范围位于此列表中,默认情况下,字体大小为100%.
在我的screen.css中,我有以下内容:
dl.labels-left dt span.req { display:inline; font-size:14px !important; }
我的HTML有以下摘录:
<div> <dl> <dt> <label>Name:</label> <span>*</span> </dt> ...
我遇到的问题是font-size:14px!important;被重置文件中的CSS覆盖,但仅限于谷歌浏览器.我无法理解为什么!
这是一个Firebug Lite截图,显示了划掉的字体大小:
Firebug Screenshot http://www.damianbrady.com.au/images/firebug_screenshot.png
为什么我的reset.css样式被认为比特定的类定义更重要?
根据我对W3C CSS 2.1 Specificity的理解,这不应该发生!
解决方法
css – 如何使用LESS将变量声明为!important?
例如:
@fontColor: #000000 !important; p { color: @fontColor; }
应呈现为:
p { color: #000000 !important; }
我知道有一种逃避的方法,提到HERE,使用以下内容:
@fontColor: #000000 ~'!important';
很久以前有人谈到将它作为简单的语法实现,就像我的第一个例子一样,只是不确定它们是否曾经 – https://github.com/less/less.js/issues/1401
使用Visual Studio 2013(更新4)
解决方法
最合理的是一个字符串,在使用时应引用并确实转义:
因此,以下代码似乎是正确的(对我来说)
@fontColor: "#000000 !important"; p { color: ~"@{fontColor}"; }
我还发现了以下代码:
@wrong: red noncolor; selector { property: @wrong; } @wrongtoo: red !important; selector { propertytoo: @wrongtoo; }
输出:
selector { property: red noncolor; } selector { propertytoo: red; }
编译器(Less v2)在两种情况下都不会抛出错误.但在第二种情况下!重要的是没有在CSS代码中编译.也是红色!noncolor编译成CSS代码.可能!重要的是某种关键字,但对我而言,现在似乎是inconsequence in the compiler.
另请注意,文档描述了如何使用!important与mixins在http://lesscss.org/features/#mixins-feature-the-important-keyword
css – 将“!important”添加到mixin中
@include linear-gradient(hsl(68%,94%,90%),hsl(68%,90%,80%)); !important @include linear-gradient(hsl(68%,80%)) !important;
有没有办法正确地做到这一点?
解决方法
它最终会给你一个SASS语法错误.
见this question for more information
关于何时在CSS中使用!important属性和css中的!important的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于css – 为什么不鼓励使用`!important`?、css – 为什么我的!important属性不适用于Google Chrome?、css – 如何使用LESS将变量声明为!important?、css – 将“!important”添加到mixin中等相关内容,可以在本站寻找。
本文标签: