改变css:在使用Javascript或PHP之前和之后

时间:2013-12-27 22:04:23

标签: javascript php jquery html css

#speech
{
    font-family: customfont;
    font-size: 30px;
    font-weight: bold;
    color: #0B03FE;
    position: relative;
    width: 45%;
    height: auto;
    text-align: center;
    background-color: #fff;
    border: 8px solid #F50032;
    -webkit-border-radius: 30px;
    -moz-border-radius: 30px;
    border-radius: 30px;
    -webkit-box-shadow: 2px 2px 4px #888;
    -moz-box-shadow: 2px 2px 4px #888;
    box-shadow: 2px 2px 4px #888;
}

#speech:before
{
    content: ' ';
    position: absolute;
    width: 0;
    height: 0;
    left: 30px;
    top: 150px;
    border: 25px solid;
    border-color: #F50032 transparent transparent #F50032;
}

#speech:after
{
    content: ' ';
    position: absolute;
    width: 0;
    height: 0;
    left: 38px;
    top: 150px;
    border: 15px solid;
    border-color: #fff transparent transparent #fff;
}

我这里有一个用CSS制作的语音泡泡。当我的语音div设置为固定高度(例如height: 150px;)时,这非常有效,但是我需要根据div包含的文本数来调整自身的高度。这就是为什么我得到它height: auto;

现在,如果您查看#speech:before#speech:after,就可以看到两者都设置为top: 150px;。这是我遇到的问题,因为我需要将这两者改为#speech的高度。我已经有办法通过以下Javascript获得动态高度:

window.onload = function(){
    var element = document.getElementById('speech');
    var speechheight = element.offsetHeight;
};

所以现在我有两个“上衣”所需的高度 - 我似乎无法找到实际应用它的方法。有谁可以帮助我?

提前致谢。

1 个答案:

答案 0 :(得分:2)

top值更改为100%

#speech:before,
#speech:after {
    top: 100%;
}

我认为您不能使用JavaScript选择:before:after元素。