2015-10-15 37 views
-1

我有一个div被设置为display: 'none'我们公司正在使用的框架。CSS属性没有值选择器问题

<div id="mydiv" style="display: none">...</div> 

然而,当显示它,它被设置为display: block,但我需要它是display: inline-block。所以我试图像这样设计div的样式:

#mydiv:not([display='none']) { 
    display: inline-block !important; 
} 

但它不像我期待的那样工作。我只想用CSS实现这一点。有人知道如何,如果这是可能的?

+1

其足够'#mydiv {显示:inline-block的重要; }' – Chris

+0

[无效的选择器](http://www.w3schools.com/cssref/sel_attribute_value.asp) – Alex

+0

[display ='none'] - 这不是元素本身的属性。风格将是属性。但是,应该使用#(ID)来定位特定/唯一元素,不应该有倍数。所以瞄准ID本身就足够了。 –

回答

1

尝试这个例子:http://codepen.io/anon/pen/WQZada
这里的属性,以检查是style,(不display

#mydiv[style="display: none"] { 
    display: inline-block !important; 
} 

反正这是一个软弱的做法,因为在标记的变化(如内嵌stlye的缩小或者编辑者改变)会影响风格(反之亦然)。

+0

感谢您的回答!我只是意识到我的问题包含一些错误..哈哈 – sfandler

+0

嗯,它不是真的工作..但你的答案是正确的一般。我现在知道它是这样的'#module_area [style * =“display:block”]){ \t display:inline-block!important; }',但是当设置'display:block' style时,它不会更改为'display:inline-block!important'。我在这里做错了什么?还是仅仅因为'!important'以某种方式阻止了它? – sfandler

0

只是针对通过它的ID的元素应该足以覆盖其内嵌样式:

#mydiv { 
 
    display: inline-block !important; 
 
}
<div id="mydiv" style="display: none">Test Div</div>

对于这个问题的缘故,就以选择一个由其内联样式值组成的元素,您可以定位[style]属性并检查所需的文本值

(麻烦的是,你需要相匹配的样式属性的详细书面形式)

#mydiv[style*="display: none"] { 
 
    display: inline-block !important; 
 
}
<div id="mydiv" style="display: none">Test Div</div>

+0

感谢您的回答。今天我意识到我的问题包含错误。我只想选择#mydiv,只要它的显示风格不设为none。我现在明白了,谢谢! :) – sfandler