无法在此下拉菜单上应用过渡

时间:2019-09-19 17:09:15

标签: html css

我似乎无法对此所做的下拉菜单应用过渡。它看起来不好的原因是因为它仅用于测试目的,因此为什么我来这里寻求帮助。如果您能帮助我,将不胜感激:)

我可能做错了什么,或者我做的是下拉列表,这样过渡不会影响任何事情。

这里是我的HTML代码:

* {
    margin: 0;
    padding: 0;
    font-family: Arial, Helvetica, sans-serif;
    outline: 0;
}

body {
    display: grid;
    place-items: center;
    min-height: 90vh;
}

.container {
    width: 200px;
    height: 400px;
    border: 1px solid black;
    text-align: center;
    text-transform: capitalize;
    list-style: none;
    font-size: 20px;
}

li {
    padding: 10px;
    border-bottom: 1px solid black;
    cursor: pointer;
}

li, .box {
    transition: .25s;
}

li:hover, .box:hover {
    background-color: #f1f1f1;
}

.list-item-1:hover + .dropdown {
    display: grid;
}

.dropdown {
    display: none;
    padding: 10px 50px;
    border-bottom: 1px solid black;
}

.dropdown:hover {
    display: grid;
}

.box {
    padding: 5px 0;
    border-bottom: 1px solid black;
    cursor: pointer;
}

.box:last-child {
    border-bottom: 0;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <ul class="container">
        <li class="list-item-1">something</li>
        <div class="dropdown">
            <div class="box">link 1</div>
            <div class="box">link 1</div>
            <div class="box">link 1</div>
            <div class="box">link 1</div>
        </div>
        <li class="list-item-1">something</li>
        <div class="dropdown">
            <div class="box">link 1</div>
            <div class="box">link 1</div>
            <div class="box">link 1</div>
            <div class="box">link 1</div>
        </div>
    </ul>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

您尚未声明要转换的属性。通过MDN文档:

port=3306:

请记住,并非所有属性都可以转换。

资源:MySQL Connection Options

答案 1 :(得分:1)

如果要向下滑动动画,请使用 height 而不是 display 。它将从0px转换为设定高度或可变高度。使用显示只会使其显示和消失。

答案 2 :(得分:0)

您可以使用max-height处理此类事情

这是具有当前结构的动画

 * {
        margin: 0;
        padding: 0;
        font-family: Arial, Helvetica, sans-serif;
        outline: 0;
    }

    body {
        display: grid;
        place-items: center;
        min-height: 90vh;
    }

    .container {
        width: 200px;
        height: 400px;
        border: 1px solid black;
        text-align: center;
        text-transform: capitalize;
        list-style: none;
        font-size: 20px;
    }

    li {
        padding: 10px;
        border-bottom: 1px solid black;
        cursor: pointer;
    } 

    li:hover, .box:hover {
        background-color: #f1f1f1;
    }

    .list-item-1:hover + .dropdown {
        display: grid;
        max-height:999px;
        padding: 10px 50px;
        border-bottom: 1px solid black;
    }

    .dropdown {
        overflow:hidden;
        max-height:0em;
        transition: max-height .25s ease;
    }

    .dropdown:hover {
        display: grid;
    }

    .box {
        padding: 5px 0;  
        border-bottom: 1px solid black;
        cursor: pointer;
    }
    .box:first-child {  
        margin-top: 10px; 
    }

    .box:last-child {
        border-bottom: 0;
    }
<ul class="container">
    <li class="list-item-1">something</li>
    <div class="dropdown">
        <div class="box">link 1</div>
        <div class="box">link 1</div>
        <div class="box">link 1</div>
        <div class="box">link 1</div>
    </div>
    <li class="list-item-1">something</li>
    <div class="dropdown">
        <div class="box">link 1</div>
        <div class="box">link 1</div>
        <div class="box">link 1</div>
        <div class="box">link 1</div>
    </div>
</ul>

但我认为您可能希望将其更改为类似的内容

* {
    margin: 0;
    padding: 0;
    font-family: Arial, Helvetica, sans-serif;
    outline: 0;
}

body {
    display: grid;
    place-items: center;
    min-height: 90vh;
}

.container {
    width: 200px;
    height: 400px;
    border: 1px solid black;
    text-align: center;
    text-transform: capitalize;
    list-style: none;
    font-size: 20px;
}
[class^="list-item"],
.dropdown li {
    padding: 10px;
    border-bottom: 1px solid black;
    cursor: pointer;
} 

.box:hover {
    background-color: #f1f1f1;
}

.list-item-1:hover .dropdown {
    display: grid;
    max-height:999px;
}

.dropdown {
    overflow:hidden;
    max-height:0em;
    transition: max-height .25s ease;
}

.dropdown:hover {
    display: grid;
}

.box {
    padding: 5px 0;  
    border-bottom: 1px solid black;
    cursor: pointer;
}
.box:first-child {  
    margin-top: 10px; 
}

.box:last-child {
    border-bottom: 0;
}
<ul class="container">
    <li class="list-item-1">something
        <ul class="dropdown">
            <li class="box">link 1</li>
            <li class="box">link 1</li>
            <li class="box">link 1</li>
            <li class="box">link 1</li>
        </ul>
    </li>
    <li class="list-item-1">something
        <ul class="dropdown">
            <li class="box">link 1</li>
            <li class="box">link 1</li>
            <li class="box">link 1</li>
            <li class="box">link 1</li>
        </ul>
    </li>
</ul>