我正在开发一个网站,该网站将有一个“了解更多”按钮,该按钮分为两部分,一部分说“了解更多”,另一部分说“+”。当鼠标悬停在其上时,“了解更多”部分消失,“+”增大以占据按钮的整个空间,我通过使用 css 对按钮两半的宽度进行动画处理来做到这一点。问题在于,随着元素宽度的减小,文本会移动/换行。这是该按钮当前工作方式的 gif: 了解更多按钮
我想找到一种方法,让文本保持在原位,并在鼠标悬停在按钮上时消失在“+”元素后面,而不会换行。我在网上搜索过,尝试过使用自动换行和位置属性,还尝试过将按钮文本放入段落内,但我无法使其工作。我感觉这很简单,但我就是无法解决。或者,如果有一种更简单的方法来创建具有此功能的按钮,我也很想知道。这是我的代码:
HTML
<body>
<button class="button-container">
<div class="button button-label">Learn More</div>
<div class="button button-symbol">+</div>
</button>
</body>
CSS
.button-container {
height: 4vw;
width: 19vw;
display: flex;
align-items: center;
padding: 0;
border: none;
cursor: pointer;
}
.button {
height: 4vw;
align-content: center;
font-family: "Comfortaa", cursive;
transition-duration: 0.6s;
transition-property: width;
transition-timing-function: ease-in-out;
}
.button-label {
width: 15vw;
background: #07BEB8;
color: #FFF;
font-size: 1.3vw;
overflow: hidden;
}
.button-symbol {
width: 4vw;
background: #3DCCC7;
color: #FFF;
border-left: solid #FFF;
font-size: 1.6vw;
font-weight: bold;
}
.button-container:hover .button-label {
width: 0;
}
.button-container:hover .button-symbol {
width: 19vw;
}
只需将
white-space: nowrap
添加到标签即可。
.button-container {
height: 4vw;
width: 19vw;
display: flex;
align-items: center;
padding: 0;
border: none;
cursor: pointer;
}
.button {
height: 4vw;
align-content: center;
font-family: "Comfortaa", cursive;
transition-duration: 0.6s;
transition-property: width;
transition-timing-function: ease-in-out;
}
.button-label {
width: 15vw;
background: #07beb8;
color: #fff;
font-size: 1.3vw;
overflow: hidden;
white-space: nowrap;
}
.button-symbol {
width: 4vw;
background: #3dccc7;
color: #fff;
border-left: solid #fff;
font-size: 1.6vw;
font-weight: bold;
}
.button-container:hover .button-label {
width: 0;
}
.button-container:hover .button-symbol {
width: 19vw;
}
<button class="button-container">
<div class="button button-label">Learn More</div>
<div class="button button-symbol">+</div>
</button>