我正试图为我的个人饮食应用程序项目创建这个很酷的按钮--当鼠标悬停时,一个按钮会从右边滑出一个小文本.快完成了,只有一个问题我解决不了:我不希望文本漂浮在周围,我希望它出现在一个黑色背景和黄色边框的框中……但我的文本宽度为0,以便在按钮内部开始动画,所以我想要的黑框只是按钮中间的一条黑色垂直线-而且,黑框始终可见,而不是像鼠标悬停之前的文本那样透明. 我只是不能让它工作--我试着增加宽度,将文本包围在容器中,设置它们的样式--它所做的只是改变了问题.救命!

#create-meal-button {
    background-color: #ffc107;
    border-radius: 100%;
    transition: 0.3s;
    display:inline-block; 
}
#create-meal-button:hover {
    transform: scale(1.2);
    background-color: black;
    border: solid 0.1vw #ffc107;
}
#create-meal-button > svg { width: 50px; }
#create-meal-button > svg:hover { fill:#ffc107; }

#create-meal {
    text-align: center;
}

#create-meal > div {
    display: inline-block; 
}
span {
    display: inline-block; /* inline-block so width can be set */
    width: 0;
    white-space: nowrap; /* keep text in one line */
    direction: ltr; /* overflow direction */
    color: rgba(255,255,255,0); /* text transparency before hover */
    transition: .5s;
    transform: translateX(-20px); /* distance the text will move on hover */
    pointer-events: none;
}

#create-meal > div:hover span {
    color: #ffc107;
    border: solid 0.1vw #ffc107;
    transform: translateX(0);
}
<head>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</head>

<div id="create-meal">
    <div>
        <button id="create-meal-button" class="btn">
            <svg xmlns="http://www.w3.org/2000/svg" height="50" viewBox="0 -960 960 960" width="50">
                <path d="M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z"/>
            </svg>
        </button>
        <span id="create-meal-tooltip" class="bg-black p-1 rounded">Create meal</span>
    </div>
</div>

推荐答案

您可以对代码进行以下调整,并判断这是否是您想要的.

#create-meal-button {
    background-color: #ffc107;
    border-radius: 100%;
    transition: 0.3s;
    display:inline-block; 
    position: relative; /* Add this line */
    
}
#create-meal-button:hover {
    transform: scale(1.2);
    background-color: black;
    border: solid 0.1vw #ffc107;
}
#create-meal-button > svg { width: 50px; }
#create-meal-button > svg:hover { fill:#ffc107; }

#create-meal {
    text-align: center;
}

#create-meal > div {
    display: inline-block; 
}

#create-meal-tooltip {
overflow: hidden; /* Add this line */
    display: inline-block;
    white-space: nowrap;
    direction: ltr;
    color: rgba(255,255,255,0);
    transition: .5s;
    transform: translateX(-20px);
    position: absolute; /* Add this line */
    top: 50%;
    left: 50%;
     transform: translate(-50%, -50%) translateX(0%); /* Modified this line */
opacity:0;
}


#create-meal-button:hover #create-meal-tooltip {
    color: #ffc107;
opacity: 1;
    background-color: black;
    border: solid 0.1vw #ffc107;
    transform: translate(-50%, -50%) translateX(100%); /* Modified this line */
}
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div id="create-meal">
    <button id="create-meal-button" class="btn">
        <svg xmlns="http://www.w3.org/2000/svg" height="50" viewBox="0 -960 960 960" width="50">
            <path d="M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z"/>
        </svg>
        <span id="create-meal-tooltip" class="bg-black p-1 rounded">Create meal</span>
    </button>
</div>

Html相关问答推荐

html中背景色的全单元格R中的Rmarkdown表

损坏的可点击html邮箱签名

带有多种 colored颜色 的HTML按钮

我应该怎么做才能显示出整个字符串?

滚动两个不同高度的DIV;一个等待另一个

Bootstrap nav没有崩溃

如何使用Reaction Js读取html文件中的代码

有没有一种方法可以很容易地将这个div从底部:0转换到顶部:0?

如何在VB.NET中用打印预览和直接打印的方式在Html中打印数据表的内容,包括页眉/设置纸张/方向/适合页面/总计

元素offsetTop在滚动容器中时没有更改

静态DIV的标签,显示从窗体输入的值

根据Tailwind CSS中的子计数而非子宽度进行对齐,并水平对齐

标题在实时网站上闪烁

如何使用jQuery将我制作的通用头部和底部加载到多个HTML文件中?

为什么每当我调整图片大小时它都会使我的其他元素移动

Tailwind:父母动态适应子元素的身高

奇怪的幻影 div 命名为

另一个 flex 元素之间的 CSS 空间

如何向弹出窗口添加 sanitize: false 选项?

在 EJS 中将元素放置在彼此下方的列中