CSS - 为工具提示容器设置样式

时间:2011-05-24 15:27:02

标签: css background

我有一个用作工具提示容器背景的背景图片。图像如下所示:

enter image description here

它的用法如下:

.tooltip {
    display:none;
    background:url(images/black_arrow_big.png);
    height:163px;
    padding:40px 30px 10px 30px;
    width:310px;
    font-size:11px;
    color:#fff;
}

<div class="tooltip">Tolltip text goes here</div>

但是,所有工具提示都没有相同数量的文本,因此我需要一种方法根据文本量使容器变大或变小。我该怎么做?滑动门技术是否允许水平和垂直尺寸调整?怎么样?

另外,如果我使用滑门技术,我可以使用相同的对角线渐变吗?如果没有,还有其他选择吗?

2 个答案:

答案 0 :(得分:4)

更新这可以使用纯CSS完成。 Example

好问题。现在,看起来你的投影是PNG图像的一部分,并且如你所知,它不可调整大小。您可以使用CSS3阴影,它将适应容器的大小。问题是,你只能将这些阴影添加到文本或框(不是箭头!)。

我认为你最好的选择是使用CSS3在框中添加一个投影,并且PNG图像只是箭头,有点像这样:

enter image description here

可能需要稍微调整才能使其完美对齐,但它会允许框根据内容调整大小。

.tooltip {
    display:none;
    padding:40px 30px 10px 30px;
    font-size:11px;
    color:#fff;

    position: relative;
    background: #000;

    /* rounded corners */
    -webkit-border-radius: 2px; 
       -moz-border-radius: 2px; 
            border-radius: 2px;

    /* box shadow */
    -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,0.3);
       -moz-box-shadow: 0px 0px 10px rgba(0,0,0,0.3);
            box-shadow: 0px 0px 10px rgba(0,0,0,0.3);

    /* background gradient, see http://gradients.glrzad.com/ */
    background-image: -webkit-gradient(
        linear,
        left bottom,
        left top,
        color-stop(0.08, rgb(0,0,0)),
        color-stop(0.57, rgb(48,48,48))
    );
    background-image: -moz-linear-gradient(
        center bottom,
        rgb(0,0,0) 8%,
        rgb(48,48,48) 57%
    );
}

.tooltip_arrow {
    position: absolute;
    bottom: -37px; /* 37px is the height of the black_arrow.png */
    left: 45%; /* roughly centered... you can decide how to best do this */
}

<div class="tooltip">
    Tolltip text goes here
    <img src="images/black_arrow.png" class="tooltip_arrow" />
</div>

我没有对此进行测试,但我希望它有一个良好的开端。

答案 1 :(得分:1)

尝试CSS箭头:http://cssarrowplease.com/