【问题标题】:CSS weirdness with width transition宽度转换的 CSS 怪异
【发布时间】:2014-03-08 10:53:25
【问题描述】:

制作了一个网络作品集。我的名字周围有联系方式。文本的初始宽度为 0,当鼠标悬停时,图标会使用“transition”属性展开。左边的图标可以正常工作,但右边的图标有一个奇怪的过渡,尤其是手机。

http://jsfiddle.net/4y9eW/

<div class="contactbox left">
    <a href="https://twitter.com/D4NiMG" class="contactchild" id="contacttwittertext">
        <span class="contacticon-twitter"></span>
        <span class="contacttext">@D4NiMG</span>
    </a>
    <a href="https://plus.google.com/+DaniMu%C3%B1ozGuardiola" class="contactchild" id="contactgoogleplustext">
        <span class="contacticon-google-plus"></span>
        <span class="contacttext">+DaniMu&ntilde;ozGuardiola</span>
    </a>
</div>
<span id="titlespan">Dani Guardiola</span>
<div class="contactbox right">
    <a href="mailto:d4nimg@gmail.com" class="contactchild" id="contactemailtext">
        <span class="contacticon-email"></span>
        <span class="contacttext">d4nimg@gmail.com</span>
    </a>
    <a href="tel:+34607017025" class="contactchild" id="contactphonetext">
        <span class="contacticon-phone"></span>
        <span class="contacttext">+34 607 01 70 25</span>
    </a>
</div>

CSS:

.contacttext {
    display: none;
    white-space: nowrap;
}
.contactchild:hover .contacttext {
    display: inline-block;
}
.contactchild  {
    position: relative;
    display: inline-block;
    overflow: hidden;
    width: 32px;
    color: white;
    transition: width 0.3s;
}
#contacttwittertext:hover {
    transition: width 0.3s;
    width: 107px;
    color: #00aced;
}
#contactgoogleplustext:hover {
    transition: width 0.3s;
    width: 189px;
    color: #D34836;
}
#contactemailtext:hover {
    transition: width 0.3s;
    width: 175px;
    color: #8036d3;
}
#contactphonetext:hover {
    transition: width 0.3s;
    width: 154px;
    color: #6fd336;
}

【问题讨论】:

  • 你的意思是你的整个电话号码出现在两行,宽度慢慢变大?
  • 是的,就是这样,电子邮件文本首先(在很短的时间内)出现在图标上,而不是右侧。
  • 问题中的代码总是比小提琴更受欢迎
  • 感谢编辑@bjb568

标签: html css css-transitions transition


【解决方案1】:

手机的问题是文字换行。设置

.contactchild { white-space: nowrap }

奇怪的重叠是由你误用的位置造成的:绝对。摆脱它。用边距移动它,父级强制 nowrap。

奇怪的下划线与 HTML 中的空格有关。请参阅 1 与 2。是&lt;a&gt; 的下划线(注意空格)。

【讨论】:

  • 或者可以使用设置高度和overflow:hidden,但在这种情况下这是最好的答案
  • 谢谢,这是完美的。有一个错误“no-wrap”不正确,它是“nowrap”。
  • 我遇到的另一个问题是在电子邮件标签上,文本首先(在很短的时间内)出现在图标上,而不是在右侧。
  • @DaniGuardiola 1. 它看起来像你的 HTML 中的东西,这很奇怪 2. 你的边距正在移动它们
  • @DaniGuardiola 查看编辑。 2) 好的,position: relative 很好。
猜你喜欢
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
相关资源
最近更新 更多