增加按钮大小而不是文本大小

时间:2019-09-05 12:07:25

标签: jquery html css

我有一个按钮,试图通过增加填充来使鼠标悬停时明显变大,但是我希望文本保持与当前向下移动时完全相同的大小和位置,这怎么可能?预先谢谢你。

HTML

<button type="submit">
          Checkout
        </button>

CSS

button{
position: relative;
width: auto;
background-color: #eb4f47;
border-radius: 0;
color: #fff;
border: 2px solid #eb4f47;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 2px;
text-decoration: none;
text-align: center;
text-transform: uppercase;
padding: 10px 20px;
line-height: 2.2;
vertical-align: middle;
cursor: pointer;
transition: outline 0.1s linear;
box-sizing: border-box;
margin-top: 20px;
}

JQUERY

//Animate Checkout button
$("button").mouseenter(function(){
           console.log('enter');
           $(this).css("padding", "12px 23px");
        }).mouseleave(function(){
              console.log('leave');
              $(this).css("padding", "11px 24px");
        });

5 个答案:

答案 0 :(得分:2)

如果您希望在悬停时保留“文本”和相同的“位置”,请尝试使用:

$("button").mouseenter(function() {
  $(this).css("padding", "10px 24px 14px 20px");
}).mouseleave(function() {
  $(this).css("padding", "10px 20px");
});

演示

$("button").mouseenter(function() {
  $(this).css("padding", "10px 24px 14px 20px");
}).mouseleave(function() {
  $(this).css("padding", "10px 20px");
});
button {
  position: relative;
  width: auto;
  background-color: #eb4f47;
  border-radius: 0;
  color: #fff;
  border: 2px solid #eb4f47;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 2px;
  text-decoration: none;
  text-align: center;
  text-transform: uppercase;
  padding: 10px 20px;
  line-height: 2.2;
  vertical-align: middle;
  cursor: pointer;
  transition: outline 0.1s linear;
  box-sizing: border-box;
  margin-top: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="submit">
          Checkout
        </button>

答案 1 :(得分:1)

您可以仅通过CSS来执行此操作,而无需jQuery。 根据您的要求,这就是我的理解,请告诉我是否需要其他东西

button{
position: relative;
width: auto;
background-color: #eb4f47;
border-radius: 0;
color: #fff;
border: 2px solid #eb4f47;
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 2px;
text-decoration: none;
text-align: center;
text-transform: uppercase;
padding: 10px 20px;
line-height: 2.2;
vertical-align: middle;
cursor: pointer;
transition: all 0.2s linear;
box-sizing: border-box;
margin-top: 20px;
}

button:hover {
padding: 10px 24px 12px 20px;
}
<button type="submit">
          Checkout
        </button>

答案 2 :(得分:0)

尝试使用悬停伪类并转换scaleX()scaleY()

button:hover {
transform: scaleX(1.4) scaleY(1.6);
}

在这里https://jsfiddle.net/tygm0jez/7/

答案 3 :(得分:0)

我是这样做的。您可以根据需要进一步添加CSS

#checkout{
  font-size: 15px;
  position: absolute;
  padding: 5px 5px 5px 5px;
  transition: 0.30s;
}
#checkout:hover{
  padding: 20px 20px 20px 20px;
  transition: 0.30s;
}
<button type="submit" id="checkout">
  Checkout
</button>

答案 4 :(得分:0)

Sackey的建议很有效-

//Animate Checkout button
$("button").mouseenter(function(){
           console.log('enter');
           $(this).css("outline", "2px solid #eb4f47");
        }).mouseleave(function(){
              console.log('leave');
              $(this).css("outline", "none");
        });

非常感谢所有帖子!