css带有自动宽度的动画按钮

时间:2015-05-04 14:08:25

标签: html css css3 transition

我正在制作一个带css过渡的动画按钮,我遇到了问题。 按钮应调整自身大小,以便整个文本始终在元素中可见。 问题是我的文字并不总是一样的。我将宽度和填充权设置为自动但它不起作用,我不知道如何解决这个问题。 这是我的代码。任何人都可以帮助我。感谢

.a-btn{
    color: #ffffc2;
  background-color: #ffffc2;
  border: 1px solid #dfdfdf;
    padding-left:20px;
    padding-right:20px;
    position:relative;
    float:left;
    overflow:hidden;
    -webkit-transition:all 0.3s linear;
    -moz-transition:all 0.3s linear;
    -o-transition:all 0.3s linear;
    transition:all 0.3s linear;
}
.a-btn-text{
    display:block;
    white-space:nowrap;
    color:#446388;
    -webkit-transition:all 0.2s linear;
    -moz-transition:all 0.2s linear;
    -o-transition:all 0.2s linear;
    transition:all 0.2s linear;
}
.a-btn-slide-text{
    position:absolute;
    height:100%;
    top:0px;
    right:20px;
    width:0px;
    background:#ffffc2;
    color:#ff0000;
    white-space:nowrap;
    text-align:left;
    text-indent:10px;
    overflow:hidden;
    line-height:28px;
    -webkit-transition:width 0.3s linear;
    -moz-transition:width 0.3s linear;
    -o-transition:width 0.3s linear;
    transition:width 0.3s linear;
}
.a-btn:hover{
    background-color: #fdfd85;
    padding-right:130px;
}
.a-btn:hover .a-btn-slide-text{
    background-color: #fdfd85;
    width:auto;
}
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"/>
</head>
  <body>

<a href="#" onclick="removeSelectedExercise();" class="btn a-btn btn-sm margin-right">
						<span class="a-btn-text"><i class="fa fa-trash red"></i></span> 
						<span class="a-btn-slide-text">Retirer articles s&eacute;lectionn&eacute;s</span>
					</a>

    </body>
  </html>
      

3 个答案:

答案 0 :(得分:0)

.a-btn{
    color: #ffffc2;
  background-color: #ffffc2;
  border: 1px solid #dfdfdf;
    padding-left:20px;
    padding-right:20px;
    position:relative;
    float:left;
    overflow:hidden;
    -webkit-transition:all 0.3s linear;
    -moz-transition:all 0.3s linear;
    -o-transition:all 0.3s linear;
    transition:all 0.3s linear;
}
.a-btn-text{
    display:block;
    white-space:nowrap;
    color:#446388;
    -webkit-transition:all 0.2s linear;
    -moz-transition:all 0.2s linear;
    -o-transition:all 0.2s linear;
    transition:all 0.2s linear;
}
.a-btn-slide-text{
    position:absolute;
    height:100%;
    top:0px;
    right:20px;
    width:0px;
    background:#ffffc2;
    color:#ff0000;
    white-space:nowrap;
    text-align:left;
    text-indent:10px;
    overflow:hidden;
    line-height:28px;
    -webkit-transition:width 0.3s linear;
    -moz-transition:width 0.3s linear;
    -o-transition:width 0.3s linear;
    transition:width 0.3s linear;
}
.a-btn:hover{
    background-color: #fdfd85;
    padding-right:160px;
}
.a-btn:hover .a-btn-slide-text{
    background-color: #fdfd85;
    width:auto;
}
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"/>
</head>
  <body>

<a href="#" onclick="removeSelectedExercise();" class="btn a-btn btn-sm margin-right">
						<span class="a-btn-text"><i class="fa fa-trash red"></i></span> 
						<span class="a-btn-slide-text">Retirer articles s&eacute;lectionn&eacute;s</span>
					</a>

    </body>
  </html>
      

答案 1 :(得分:0)

在你的css中,在.a-btn-slide-text部分中,更改行

right: 20px

此属性将文本放在屏幕之外,我建议将其更改为

.a-btn-slide-text{
    position:absolute;
    height:100%;
    top:0px;
    right:-2px;

http://jsfiddle.net/s3nz7q69/

答案 2 :(得分:0)

解决方法是将宽度更改为最大宽度

.a-btn{
    color: #ffffc2;
  background-color: #ffffc2;
  border: 1px solid #dfdfdf;
    padding-left:15px;
    padding-right:20px;
    position:relative;
    float:left;
    overflow:hidden;
    max-width: 30px;
    -webkit-transition:max-width 0.3s ease-in-out;
    -moz-transition:max-width 0.3s ease-in-out;
    -o-transition:max-width 0.3s ease-in-out;
    transition:max-width 0.3s linear;
}
.a-btn-text{
    display:block;
    white-space:nowrap;
    color:#ff0000;
}

.a-btn:hover{
    background-color: #fdfd85;
    max-width: 300px;
}
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"/>
</head>
  <body>

<a href="#" onclick="removeUnselectedExercise();" class="btn a-btn btn-sm ">
						<span class="a-btn-text"><i class="fa fa-trash red " style="padding-right:20px;"></i> Remove Selected</span> 
					</a>


    </body>
  </html>