【发布时间】:2013-02-17 10:47:40
【问题描述】:
我有一个带有 display:table/table-cell:auto 布局的 ul/li 菜单,它被拉伸以填充容器并在菜单项之间分配水平空间。我必须将一个额外的 UI 元素与最后一个菜单项对齐。我可以通过将该元素添加为最后一个 li 元素的子元素并使其 100% 宽来实现这一点。
但是,我需要将此 UI 元素(语言选择器)部分定位在主要内容之外,因此我将其定位在相对右侧:-10px。但副作用是,与菜单元素相比,选择器的左边缘向右移动。通常我会将选择器 div 的宽度增加 10px,但因为它是 100%,所以我不能这样做。而父li的宽度由其文本内容决定。
有没有办法使用纯 css 来解决这个问题?我无法在选择器上添加填充,因为我需要它的子内容来填充整个 div。
<div class="menu">
<ul>
<li><a href="#">first</a>
</li>
<li><a href="#">second</a>
<div id="selector">
<a href="#">EN</a>
<a href="#">FR</a>
</div>
</li>
</ul>
</div>
这是一个工作示例: http://jsfiddle.net/hJXng/13/
【问题讨论】:
-
这就是你想要的吗?我删除了 -10px 右规则,并添加了一些左填充和背景颜色以匹配。 jsfiddle.net/hJXng/16
-
谢谢,不,请参阅:“我无法在选择器上添加填充,因为我需要它的子内容来填充整个 div”。将鼠标悬停在锚点上时,填充不会改变其颜色。至少不是我知道的纯 css 解决方案。 (顺便说一句,在发布我的问题之前,我已经在#selector 上实现了一个非常相似的解决方案,包括右填充和 onmouseover bg-color 变化。)
-
一个小评论:您对
display:table、table-cell等的使用使我尝试过的大多数 CSS 技巧难以使用(例如 - 绝对相对或负边距。
标签: html css menu width css-position