【问题标题】:overflow:hidden hiding borders but not the element that overflowsoverflow:hidden 隐藏边框但不是溢出的元素
【发布时间】:2014-02-01 20:41:03
【问题描述】:

我正在处理带有过渡的标题。但是有些东西不起作用。

我将 ul 设置为 120 像素,将 li 设置为 60 像素。 我给了 li:hover 一个 translateY(-60px)。这样当您将鼠标悬停在 li 上时它会弹出。

我想隐藏溢出的内容,直到您将鼠标悬停在它上面。但这似乎不起作用。它确实悬停隐藏了溢出的 li 的边界。

有人知道为什么吗?

提前谢谢你!

<header>
    <ul>
        <li>
            <a id="p1" href="#">Vibe</a>

            <a id="p2" href="#">Vibe</a>
        </li>
        <li>
            <a id="p1" href="#">Creations</a>

            <a id="p2" href="#">Creations</a>
        </li>
        <li>
            <a id="p1" href="#">Vision</a>

            <a id="p2" href="#">Vision</a>
        </li>
        <li>
            <a id="p1" href="#">Just tell us</a>

            <a id="p2" href="#">Just tell us</a>
        </li>
    </ul>
</header>

这是css

header {
height: 60px;
width: 100%;
background-color: #34495e;
}

header ul  {
    margin-right: 20px;
    float: right;
    height: 60px;   
    overflow: hidden;
}

header ul li {
    display: inline-block;
    height: 120px;
    padding-left: 40px;
    padding-right: 40px;
    overflow: hidden;
    -webkit-transition: -webkit-transform 0.2s ease-in-out;
    overflow: hidden;
    border-left: 1px solid #2c3e50;
}

header ul li a {
    text-decoration: none;
    line-height: 60px;
    font-size: 14px;
    font-family: "lato", sans-serif;
    font-weight: 700;
    color: #e74c3c;
    text-transform: uppercase;
    -webkit-transform: rotate(10deg);
}

#p2 {
    position: absolute;
    text-align: center;
    color: #c0392b;
    line-height: 60px;
}

header ul li:hover {
    -webkit-transform: translateY(-60px);   
}

【问题讨论】:

  • 请创建一个JSFiddle。顺便说一下...ID(例如#p1)每页只能使用一次。您应该将ID更改为类。

标签: css overflow hidden


【解决方案1】:

添加

position: relative;

到你的 ul 课

这里是 jsfiddle http://jsfiddle.net/2jabu/

【讨论】:

  • 谢谢!这完全有效;)。但是我能问你为什么我必须添加相对于 ul 类的位置。而不是去礼班。因为我在 li 中的 .p2 上使用了 position:absolute?
【解决方案2】:

这是一种可能适合您的解决方案:

Example Fiddle

第一个 ID 应保留供一次性使用。你的 #p1 & #p2 最好写成类。要解决您的问题,您只需要在最高级别的容器上使用overflow:hidden;,在这种情况下是标题。此外,由于您已经给出了#p2 的绝对位置,因此您还需要给出标题position:relative;

CSS:

header {
  // existing styles

  position: relative;
  overflow: hidden;
}

【讨论】:

  • 这是完美的。谢谢。我认为我必须给 ul 一个 position:relate 因为它是父级。但它也适用于最高级别的容器。太棒了。
  • 当你给一个元素绝对位置时,它将基于最近的容器定位position: relative;
猜你喜欢
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 2012-03-24
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多