将css继承断开到子元素

时间:2014-03-25 23:17:23

标签: html css inheritance

我真的很喜欢这个场景,到目前为止只处理过基本的东西。我已经到处寻找了2天,但没有一个解决方案有效。或者我太愚蠢了,不能很好地执行它们......无论哪种方式,我都处于精神错乱的边缘。

我基本上有一个下拉菜单和一些非常拥挤的CSS,所以我不会在这里发布它们。这是jsfiddle http://jsfiddle.net/5k72c/

                <ul>
                    <li><a href="#">ÜRÜNLER</a>
                    <div class="sub1">
                          <ul class="subA">
                            <li><a href="#">Tırmanış Malzemeleri</a></li>
                            <li><a href="#">Kamp Malzemeleri</a></li>
                            <li><a href="#">Çadır</a></li>
                            <li><a href="#">Uyku Tulumu</a></li>
                          </ul>
                          <ul class="subB">
                            <li><a href="#">Üst Giyim</a></li>
                            <li><a href="#">Alt Giyim</a></li>
                            <li><a href="#">Erkek</a></li>
                            <li><a href="#">Kadın</a></li>
                          </ul>
                    </div>
                    </li>
               </ul>

我已经尝试过:之前和之后但没有任何改变。我也申请了“&gt;”仅将继承应用于直接子元素,但仅部分工作。如果没有给“a”或其他标签赋予通用风格,我怎么能完全破坏继承?

我基本上想要的是,我的下拉菜单是完全不同的东西。像这里http://lafuma.com/en/您看到实际菜单和子下拉菜单是如何不同的?我知道这是基本的,但只是让我失望。

请原谅写作的混乱。我的神经失灵了,英语不是我的母语。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我将以答案的形式继续这一点,因为评论时间太短

  

所以我必须为每一个ul和li提供课程或ID

不,当然不是。很少需要用“ids和类来解决所有问题”而使一个人的HTML代码“膨胀” - 如果只是选择了一些选择器的话。

让我们看一下your fiddle中的第一个子菜单链接,即文本Tırmanış Malzemeleri的链接。使用f.e.检查根据我的建议,我们会看到Firebug,例如,带有选择器color: #999999的规则中的.subA li a会显示为“划掉”并带有一条直线。这是因为带有选择器#headwrap > ul li a的规则定义了不同的color值 - 并且该选择器具有更高的特异性

#headwrap > ul li a具有0,1,0,3的特异性,而.subA li a具有0,0,1,2 - 因此第一个“获胜”,因此其颜色值为{{1}用于#FF8000元素。

如何解决这个问题?

好吧,要么通过限制当前获胜的规则选择器的“覆盖范围”,比如

a - 这只会匹配#headwrap > ul > li > a的{​​{1}}个子元素,这些元素是a的子级li的子级,请参阅此处:http://jsfiddle.net/5k72c/1/(我在那里删除了一些原始样式,以便更好地进行概述。)

或者通过将其他选择器的特异性提高到更高的水平(或者至少相同,如果它在第一个之后)。 (在这方面,您的示例有点次优,因为ul元素没有显示,只有#headwrap才会显示 - 所以让我们假设有问题的选择器是ul.subA,{{ 3}} - 适用于链接ul.subB,仍以橙色显示。

现在,让我们将选择器.subB li a更改为f.e. Üst Giyim - 使其具有更高的特定性,并且链接不再是橙色,但在规则中指定为灰色:http://jsfiddle.net/5k72c/2/(是的,字体大小和其他属性不同好吧,但是那些是我现有样式表中的副作用,我没有清理;但是这个例子应该足以显示我在那里谈论的基本知识。)