【发布时间】:2019-06-23 17:35:20
【问题描述】:
我有一些基本的按钮样式,在 :hover 上我添加了 letter-spacing 属性:
.btn {
display: inline-block;
text-align: center;
background-color: transparent;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 1rem;
border-radius: 0.25rem;
cursor: pointer;
transition: all 0.2s ease;
}
.btn-primary {
background-color: #8065F1;
color: #FFFFFF;
}
.btn-large {
border-radius: 32px;
box-shadow: 0 2px 80px 0 rgba(74, 74, 74, 0.23);
padding: 0.25rem 3rem;
font-size: 1.5rem;
text-transform: uppercase;
}
.btn:hover {
letter-spacing: 4px;
}
<button type="button" class="btn btn-primary btn-large">Lorem</button>
有没有办法使width 不扩展?喜欢加min/max-width?但是问题是button 元素可以包含不同的字符串长度:
.btn {
display: inline-block;
text-align: center;
background-color: transparent;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
box-shadow: 0 2px 80px 0 rgba($grey, 0.23);
font-size: 1rem;
border-radius: 0.25rem;
cursor: pointer;
transition: all 0.2s ease;
}
.btn-primary {
background-color: #8065F1;
color: #FFFFFF;
}
.btn-large {
border-radius: 32px;
-webkit-box-shadow: 0 2px 80px 0 rgba(74, 74, 74, 0.23);
box-shadow: 0 2px 80px 0 rgba(74, 74, 74, 0.23);
padding: 0.25rem 3rem;
font-size: 1.5rem;
text-transform: uppercase;
min-width: 240px;
}
.btn:hover {
letter-spacing: 4px;
}
<p>I need this "effect" (I added some min-width):</p>
<button type="button" class="btn btn-primary btn-large">Lorem</button>
<p>However it won't work for larger strings</p>
<button type="button" class="btn btn-primary btn-large">Lorem Ipsum</button><br><br>
<button type="button" class="btn btn-primary btn-large">Lorem Ipsum Dolor</button>
我知道我可以使用 JS 并在其上附加固定宽度的元素,但是我正在寻找一种 CSS 解决方案 - 如果有的话?
【问题讨论】:
-
也许和
padding一起玩会有所帮助 -
另一个问题是,根据字母的数量,宽度会增加很多,您将如何管理?
-
@TemaniAfif 是的,这是主要问题。正如我所说,它可以用 JS 完成,但我想知道是否有 CSS 解决方案。编辑 - 我明白你的意思,如果字符串更大,那么只有宽度是不够的。有办法吗?
-
@JoykalInfotech 你能举个例子吗?
-
我想过,但我意识到这不是一个合适的解决方案。
标签: css hover css-transitions letter-spacing