转换CSS属性不适用于<a> element</a>

时间:2015-04-16 07:16:37

标签: html css css3 css-transforms

当我点击它时,我想scale(x,y) <a>元素,但它不起作用。我使用Mozilla Firefox Web浏览器来运行程序。

这是我的代码:

scaleElement.html

<html>
    <head>
        <title>CSS3 Transform and Transition</title>
        <style>
            a{
                background-color: green;
                color: white;
                padding: 10px 20px;
                text-decoration: none;
                border: 2px solid #85ADFF;
                border-radius: 30px 10px;
                transition: 2s;
            }
            a:hover{
                transform: scale(2,2);
            }
        </style>
    </head>

    <body>
        <center><a href="xyz.html">click here</a></center>
    </body>
</html>

2 个答案:

答案 0 :(得分:19)

transform不适用于<a>等内联元素。您可以将链接显示为inline-blockblock以使转换正常工作:

  

<强> transformable element

     

可转换元素是以下类别之一的元素:

     
      
  • 一个元素,其布局由CSS框模型控制,该模型是块级原子内联级元素,或者其显示   property计算到table-row,table-row-group,table-header-group,   table-footer-group,table-cell或table-caption [...]
  •   

atomic inline-level元素包括:

  

替换了内联级元素,内联块元素和   内联表元素

a { display: inline-block; }
a:hover { transform: scale(2,2); }

此外,CSS中没有点击状态。可能的选项包括:active:hover,或使用checkbox hack

&#13;
&#13;
a {
  background-color: green;
  color: white;
  padding: 10px 20px;
  text-decoration: none;
  border: 2px solid #85ADFF;
  border-radius: 30px 10px;
  transition: all 2s;
  display: inline-block; /* <-- added declaration */
}
a:hover{ transform: scale(2,2); }
/* just for demo */
body { padding: 2em; text-align: center; }
&#13;
<a href="xyz.html">click here</a>
&#13;
&#13;
&#13;

答案 1 :(得分:6)

使用display:block并为其指定高度和宽度

&#13;
&#13;
a {
  background-color: green;
  color: white;
  padding: 10px 20px;
  text-decoration: none;
  border: 2px solid #85ADFF;
  border-radius: 30px 10px;
  transition: 2s all ease-in;
  display: block;
  width:100px;
  height:50px;
}
a:hover {
  transform: scale(2, 2);
}
&#13;
<center><a href="xyz.html">click here</a>
</center>
&#13;
&#13;
&#13;