宽度未知的水平定位(和小的父元素)

时间:2012-10-30 19:42:50

标签: html css html5 css3

我想在CSS3中创建简单的工具提示。

示例:http://jsfiddle.net/Cg2SX/

示例HTML(必要时可以更改):

    <div class="icons">
        <a href="">t <span class="tooltip">Twitter</span></a>
        <a href="">f <span class="tooltip">Facebook</span></a>
        <a href="">g <span class="tooltip">Google+</span></a>
    </div>​

和CSS:

    .icons { position: absolute; left: 40px; top: 30px; }
    .icons a { text-decoration:none; font-size: 16px; color: #000000; position: relative; margin-right: 70px; border:1px solid red; }
    .icons a:hover { text-decoration:none; }
    .tooltip { background-color: green; color: #FFFFFF; font-family: Arial,sans-serif; font-size: 10px; padding: 2px 8px; bottom: -20px; position: absolute; }​

问题是 - 我不知道如何将工具提示集中在共享图标下方(它们将是字体图标)。如果我知道它们的宽度就不会复杂,但我不知道。

任何想法都赞赏。反正有可能吗?

3 个答案:

答案 0 :(得分:3)

您可以尝试这样做:

updated fiddle

width上使用固定(足够大)span,在其上设置text-align: center&amp;将文本放在您给display: inline-block

的伪元素中

<强> HTML

<div class="icons">
    <a href="#">t
        <span class="tooltip" data-text='Twitter'></span>
    </a>
    <a href="#">f
        <span class="tooltip" data-text="Facebook"></span>
    </a>
    <a href="#">g
        <span class="tooltip" data-text='Google+'></span>
    </a>
</div>​

相关的 CSS

.icons a {
    display: inline-block;
    position: relative;
    margin-right: 70px;
    width: 16px;
    color: #000;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
}
.tooltip {
    position: absolute;
    bottom: -20px; left: 8px; /* half the width of link */
    margin-left: -35px;
    width: 70px;
    color: #fff;
    font: 10px Arial, sans-serif;
}
.tooltip:after {
    display: inline-block;
    padding: 2px 8px;
    background-color: green;
    content: attr(data-text);
}

答案 1 :(得分:0)

你可以随时做这样的演示: http://jsfiddle.net/Cg2SX/1/

我在a div内更新了.icons个标签。这是我改变

.icons a {
    display:block;
    margin-right:10px /* spacing between a tags - changed from your original code */
    float:left; 
    text-align:center; 
    width:100px; /* you can change this as needed, but it keeps them all uniform*/
    height: 50px; /* Change this to the height of your tallest icon image */
}

然后我相应地更新了span.tooltip,我添加了这就是你拥有的:

.tooltip { 
    width:100%;
    padding: 2px 0; /* changed the side padding to 0 since width is 100% & it takes the text-align center from the CSS above on the a tag */
    display:block; /* Made it a block so the width 100% & centered text would work */
}​

这与图标图像的确切大小无关 - 它们可以全部不同或相同,但只要过度a标签比最高和最宽的图像更宽更高,不应该有任何问题。

答案 2 :(得分:-1)

为什么不使用=&gt;宽度:汽车;