Css3悬停在图标和边框上



HTML CODE…

          <ul class="social-icon">
            <li><a href="#" class="social-facebook">
            <i class="fa fa-facebook"></i>
            <i class="fa fa-facebook ff"></i>
            </a></li>
            <li><a href="#" class="social-twitter"><i class="fa fa-twitter"></i></a></li>
            <li><a href="#" class="social-google-plus"><i class="fa fa-google-plus"></i></a></li>
            <li><a href="#" class="social-dribbble"><i class="fa fa-dribbble"></i></a></li>
            <li><a href="#" class="social-linkedin"><i class="fa fa-linkedin"></i></a></li>
            <li><a href="#" class="social-rss"><i class="fa fa-rss"></i></a></li>
          </ul>

和CSS CODE..

.social-icon {
      text-align: center;
      text-decoration: none;
    }
    .social-icon li {
      list-style: none;
      display: inline-block;
      float: left;
      position: relative;
    }
    .social-icon li a {
      display: inline-block;
      font-size: 18px;
      line-height: 28px;
      width: 35px;
      text-decoration: none;
      outline: none;
      height: 36px;
      border: 1px solid #000;
      border-top: 1px solid #000;
      border-bottom: 1px solid #000;
    }
    .social-icon li a:first-child {
      border-left: 1px solid #000;
    }
    .social-icon li a .ff {
      opacity: 0;
      -webkit-transform: scale(5);
      -moz-transform: scale(5);
      -o-transform: scale(5);
      -ms-transform: scale(5);
      transform: scale(5);
      -webkit-transition: all 0.3s ease-in-out 0.2s;
      -moz-transition: all 0.3s ease-in-out 0.2s;
      -o-transition: all 0.3s ease-in-out 0.2s;
      -ms-transition: all 0.3s ease-in-out 0.2s;
      transition: all 0.3s ease-in-out 0.2s;
    }
    .social-icon li a .ff:hover {
      opacity: 1;
      background-color: #345599;
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -o-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      -webkit-transition-delay: 0.2s;
      -moz-transition-delay: 0.2s;
      -o-transition-delay: 0.2s;
      -ms-transition-delay: 0.2s;
      transition-delay: 0.2s;
    }
    .social-icon li a i {
      color: #d2d2db;
      position: absolute;
      top: 10px;
      left: 10px;
    }

问题是当我悬停在fb图标它的背景颜色是小。边框是双倍的,我用1px的边框。请帮帮我……对不起,我的英语不好。

这里是jsFiddle编辑器链接

我认为这更接近你想要的:

.social-icon {
  text-align: center;
  text-decoration: none;
}
.social-icon li {
  list-style: none;
  float: left;
  position: relative;
  height: 38px;
}
.social-icon li a{
  display: inline-block;
  font-size: 18px;
  line-height: 28px;
  width: 35px;
  text-decoration: none;
  outline: none;
  height: 36px;
  border-right: 1px solid #000;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}
.social-icon li:first-child {
  border-left: 1px solid #000;
}
.social-icon li .ff {
  opacity: 0;
  -webkit-transform: scale(5);
  -moz-transform: scale(5);
  -o-transform: scale(5);
  -ms-transform: scale(5);
  transform: scale(5);
  -webkit-transition: all 0.3s ease-in-out 0.2s;
  -moz-transition: all 0.3s ease-in-out 0.2s;
  -o-transition: all 0.3s ease-in-out 0.2s;
  -ms-transition: all 0.3s ease-in-out 0.2s;
  transition: all 0.3s ease-in-out 0.2s;
}
.social-icon li .ff:hover {
  opacity: 1;
  background-color: #345599;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-transition-delay: 0.2s;
  -moz-transition-delay: 0.2s;
  -o-transition-delay: 0.2s;
  -ms-transition-delay: 0.2s;
  transition-delay: 0.2s;
}
.social-icon li a i {
  color: #d2d2db;
  position: absolute;
  padding: 10px;
  top: 0px;
  left: 0px;
}
.social-icon .fa-facebook {
    padding-right: 15px;
}
编辑:我更新了代码。仍然存在.ff对象比<li>容器大得多的问题。所以你会在框外的空间激活过渡

我认为你需要这样做:

.social-icon li a .ff:hover
{
    display: block; 
    width: 37px; 
    height: 32px;
}
.social-icon li a i
{
    left: 0;
    top: 0;
    color: #d2d2db;
    position: absolute
}

你是这个意思吗?把你的css改成如下…

.social-icon {
  text-align: center;
  text-decoration: none;
}
.social-icon li {
  list-style: none;
  display: inline-block;
  float: left;
  position: relative;
}
.social-icon li a {
  display: inline-block;
  font-size: 18px;
  line-height: 28px;
  width: 35px;
  text-decoration: none;
  outline: none;
  height: 36px;
  border: 1px solid #000;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}
.social-icon li :hover{
  background-color: #345599;
  -webkit-transition-delay: 0.2s;
  -moz-transition-delay: 0.2s;
  -o-transition-delay: 0.2s;
  -ms-transition-delay: 0.2s;
  transition-delay: 0.2s;
  -webkit-transition: all 0.3s ease-in-out 0.2s;
  -moz-transition: all 0.3s ease-in-out 0.2s;
  -o-transition: all 0.3s ease-in-out 0.2s;
  -ms-transition: all 0.3s ease-in-out 0.2s;
  transition: all 0.3s ease-in-out 0.2s;
}
.social-icon li a:first-child {
  border-left: 1px solid #000;
}
.social-icon li a .ff {
  opacity: 0;
  background-color: rgba(255, 255, 255, 0.0);
  -webkit-transform: scale(5);
  -moz-transform: scale(5);
  -o-transform: scale(5);
  -ms-transform: scale(5);
  transform: scale(5);
  -webkit-transition: all 0.3s ease-in-out 0.2s;
  -moz-transition: all 0.3s ease-in-out 0.2s;
  -o-transition: all 0.3s ease-in-out 0.2s;
  -ms-transition: all 0.3s ease-in-out 0.2s;
  transition: all 0.3s ease-in-out 0.2s;
}
.social-icon li a .ff:hover {
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.0);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-transition-delay: 0.2s;
  -moz-transition-delay: 0.2s;
  -o-transition-delay: 0.2s;
  -ms-transition-delay: 0.2s;
  transition-delay: 0.2s;
}
.social-icon li a i {
  color: #d2d2db;
  position: absolute;
  top: 10px;
  left: 10px;
}

我添加了类。社交图标li:hover

我还为类添加了属性background-color: rgba(255,255,255,0.0);。社交图标li a .ff:hover

您的第一个子选择器不正确。它选择列表中的每个元素。这就是为什么你有双边框。

你的背景悬停只选择<i>而不是整个<a>。因此,它看起来很小。

这是你想要的吗?http://jsfiddle.net/2N2YF/64/

HTML:

<ul class="social-icon">
    <li><a href="#" class="social-facebook">
          <i class="fa fa-facebook"></i>        
        </a>
    </li>
    <li>
        <a href="#" class="social-twitter">
            <i class="fa fa-twitter"></i>
        </a>
    </li>
    <li>
        <a href="#" class="social-google-plus">
            <i class="fa fa-google-plus"></i>
        </a>
    </li>
    <li>
        <a href="#" class="social-dribbble">
            <i class="fa fa-dribbble"></i>
        </a>
    </li>
    <li>
        <a href="#" class="social-linkedin">
            <i class="fa fa-linkedin"></i>
        </a>
    </li>
    <li>
        <a href="#" class="social-rss">
            <i class="fa fa-rss"></i>
        </a>
    </li>
</ul>
CSS:

.social-icon {
  text-align: center;
  text-decoration: none;
}
.social-icon li {
  list-style: none;
  display: inline-block;
  float: left;
  position: relative;
}
.social-icon li a {
  display: inline-block;
  font-size: 18px;
  line-height: 28px;
  width: 35px;
  text-decoration: none;
  outline: none;
  height: 36px;
  border-right: 1px solid #000;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}
.social-icon li:first-child a {
  border-left: 1px solid #000;
}
/* Facebook colour */
.social-icon li a.social-facebook:hover {
    background-color: #345599;
}
.social-icon li a:hover {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-transition-delay: 0.2s;
  -moz-transition-delay: 0.2s;
  -o-transition-delay: 0.2s;
  -ms-transition-delay: 0.2s;
  transition-delay: 0.2s;
}
.social-icon li a i {
  color: #d2d2db;
  position: absolute;
  top: 10px;
  left: 10px;
}

最新更新