HTML5 details/summary悬浮菜单效果实例页面

回到相关文章 »

效果:

这里放一段文字表明上面的是悬浮效果。

代码:

CSS代码:
/* 隐藏默认三角 */
::marker {
    font-size: 0;
}
summary {
    display: inline-block;
    padding: 5px 28px;
    text-indent: -15px;
    user-select: none;
    position: relative;
    z-index: 1;
}
summary::after {
    content: '';
    position: absolute;
    width: 12px; height: 12px;
    margin: 4px 0 0 .5ch;
    background: url(./arrow-on.svg) no-repeat;
    background-size: 100% 100%;
    transition: transform .2s;
}
[open] summary,
summary:hover {
    background-color: #fff;
    box-shadow: inset 1px 0 #ddd, inset -1px 0 #ddd;
}
[open] summary::after {
    transform: rotate(180deg);
}
[open] summary::before {
    content: '';
    position: fixed;
    left: 0; right: 0; top: 0; bottom: 0;
}
.box {
	position: absolute;
	border: 1px solid #ddd;
    border-top: 0;
	background-color: #fff;
	min-width: 100px;
	padding: 5px 0;
    z-index: 1;
}
.box a {
    display: block;
    padding: 5px 10px;
    color: inherit;
}
.box a:hover {
    background-color: #f0f0f0;
}
.box sup {
    position: absolute;
    color: #cd0000;
    font-size: 12px;
    margin-top: -.25em;
}
                
HTML代码:
<div class="bar">
    <details>
        <summary>我的消息</summary> 
        <div class="box">
            <a href>我的回答<sup>12</sup></a>
            <a href>我的私信</a>
            <a href>未评价订单<sup>2</sup></a>
            <a href>我的关注</a>
        </div>
    </details>
</div>
<p>这里放一段文字表明上面的是悬浮效果。</p>