css - 如何在悬停时向绝对定位框添加过渡

标签 css

您好,我已经用 overflow: hidden 创建了盒子,现在在 hover 上,我想让盒子下拉显示内部盒子。

我已经创建了这个并且它工作正常但是我想使用这个效果的过渡来平滑下拉。我已经添加了过渡,但它不起作用。

任何建议都会很好,谢谢。

<html>
<head>
<title></title>

<style type="text/css">
#items {width:300px;}
.item {width:100px;border:solid 1px #ccc;float:left;height:20px;
 z-index:0;overflow:hidden;position:relative;}

.item:hover{overflow:visible;z-index:100;}
.item:hover .inner{z-index: 100;}
.inner{position: absolute;
 background: white;
width: 100%;
}
</style>
</head>
<body>
<div id="items">

<div class="item"><div class="inner">text 1<br>text 1<br>text 1</div></div>
<div class="item"><div class="inner">text 2<br>text 2<br>text 2</div></div>
<div class="item"><div class="inner">text 3<br>text 3<br>text 3</div></div>
<div class="item"><div class="inner">text 4<br>text 4<br>text 4</div></div>
<div class="item"><div class="inner">text 5<br>text 5<br>text 5</div></div>
<div class="item"><div class="inner">text 6<br>text 6<br>text 6</div></div>
<div class="item"><div class="inner">text 7<br>text 7<br>text 7</div></div>
<div class="item"><div class="inner">text 8<br>text 8<br>text 8</div></div>
<div class="item"><div class="inner">text 9<br>text 9<br>text 9</div></div>
<div class="item"><div class="inner">text 10<br>text 10<br>text 10</div></div>


</div>
</body>
</html>

最佳答案

您可以只使用 CSS 构建您想要的菜单,但您需要更好的 html 结构。我不想重新造轮子,所以我得到了一个已经完成的(一个非常简单的):

http://cssdeck.com/labs/pure-css3-smooth-drop-down-menu

HTML

 <nav>
        <ul class="cf">
            <li><a href="#">Menu Item 1</a></li>
            <li><a class="dropdown" href="#">Menu Item 2</a>
                <ul>
                    <li><a href="#">Sub-menu Item 1</a></li>
                    <li><a href="#">Sub-menu Item 2</a></li>
                    <li><a href="#">Sub-menu Item 3</a></li>
                </ul>
                </li>
            <li><a href="#">Menu Item 3</a></li>
            <li><a href="#">Menu Item 4</a></li>
        </ul>
    </nav>

CSS

nav ul {
    -webkit-font-smoothing:antialiased;
    text-shadow:0 1px 0 #FFF;
    background: #ddd;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
nav li {
    float: left;
    margin: 0;
    padding: 0;
    position: relative;
    min-width: 25%;
}
nav a {
    background: #ddd;
    color: #444;
    display: block;
    font: bold 16px/50px sans-serif;
    padding: 0 25px;
    text-align: center;
    text-decoration: none;
    -webkit-transition: all .25s ease;
       -moz-transition: all .25s ease;
        -ms-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease;
}
nav .dropdown:after {
    content: ' ▶';
}
nav .dropdown:hover:after{
    content:'\25bc'
}
nav li:hover a {
    background: #ccc;
}
nav li ul {
    float: left;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 35px;
    visibility: hidden;
    z-index: 1;
    -webkit-transition: all .25s ease;
       -moz-transition: all .25s ease;
        -ms-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease;
}
nav li:hover ul {
    opacity: 1;
    top: 50px;
    visibility: visible;
}
nav li ul li {
    float: none;
    width: 100%;
}
nav li ul a:hover {
    background: #bbb;
}

/* Clearfix */

.cf:after, .cf:before {
    content:"";
    display:table;
}
.cf:after {
    clear:both;
}
.cf {
    zoom:1;
}​

关于css - 如何在悬停时向绝对定位框添加过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27013091/

相关文章:

html - 如果内联元素超过 max-width 并分成两行,CSS max-width 会导致太多空白

android - 如何使用 Jsoup 向 html 内容添加填充?

css - Angular 5 - 无法加载资源 : the server responded with a status of 404 (Not Found)

javascript - 使用 jQuery 切换 CSS

javascript - 更改移动设备上的背景图像

javascript - Bootstrap Switch 触发 switchChange 事件但视觉上没有变化

javascript - JavaScript 缩放后计算一个点的坐标

javascript - div的灵活高度?

html - 创建一个带有副标题和副标题的表格

css - zindex 和子元素