在悬停时更改图像和文本,然后单击

时间:2012-07-18 19:26:57

标签: html css image hover

我有一张图片和文字一起放在一边,我想在悬停时或点击图片同时更改这两张图片。

我可以设法让图像和文本分开交换,但不能同时交换。

HTML

<body>
<div id="page-container">
    <div class="box-container">
        <div class="image-container">
            <a href="#"><img src=".jpg" height="100" width="200"/></a>
        </div>
        <div class="second-image-container">
            <a href="#"><img src=".jpg" height="100" width="200"/></a>
        </div>
        <div id="text">
            <div id="text-box">
                <p>This is some text</p>

                <p id="more-text">This is some more text</p>
            </div>
        </div>
        <div id="text-two">
            <div id="text-box-two">
                <p>This is some text</p>

                <p id="even-more-text">This is some more text</p>
            </div>
        </div>
    </div>
</div>
</div>
</div>
</body>
</html>

CSS

div#text {
    position: absolute;
    background-color: black;
    width: 350px;
    height: 300px;
    top: 10px;
    right: -65px;
}

div#text p {
    position: absolute;
    color: white;
    top: 100px;
    left: 125px;
}

div#text-box p {
    background-color: blue;
    width:
}

div#text-box p#more-text {
    background-color: red;
    top: 65px;
    left: 90px;
}

div.image-container {
    opacity: 1;
    position: absolute;
    z-index: 500
}

div.second-image-container {
    position: absolute;
    top:;
    opacity: 1;
    z-index: 119
}

div#text-two {
    position: absolute;
    background-color: black;
    width: 350px;
    height: 300px;
    right: -65px;
    top: 10px;
}

div#text-box-two p {
    position: absolute;
    background-color: blue;
    z-index: 10
}

div#text-box-two p#more-text {
    background-color: red;
}

    /*and the CSS that makes each individual image and text to swap:*/
div.image-container:hover, div#text:hover {
    opacity: 0
}

5 个答案:

答案 0 :(得分:5)

不要在每个div(图像容器和文本)的悬停上尝试执行此操作,而是更改包含div(box-container)悬停时的不透明度。 CSS看起来像这样:

.box-container:hover .image-container,
.box-container:hover #text {
    opacity: 0;
}

答案 1 :(得分:2)

答案 2 :(得分:2)

关于如何使用下面的文字创建图像,我花了2美分,其中悬停任一个图像会将图像提升15px。文本保留在自己的位置。直接从我的网站上获取,因此可能需要编辑以供个人使用。

CSS:

.menu_imgdiv
{
    display:inline-block;
    padding-top:20px;
    padding-left:20px;
    padding-right:20px;
}

.menu_imgdiv p
{
    padding-top:4px;
    text-align:center;
    font-size:larger;
}

.menu_img
{
    width:128px;
    height:128px;
}

.menu_imgdiv:hover .menu_img,
.menu_imgdiv:hover .menu_imgdiv p
{
    margin: -15px 0px 15px;
}

HTML:

<div id="tm_header">  
    <a href="#/"> <div class="menu_imgdiv"> 
    <img class="menu_img" src="images/home.png" />
    <br /> <p>Homepage</p>  </div> </a>
</div>

答案 3 :(得分:1)

您可以将文本和图像合成一个图像,并将其转换为下面的图像(在相同的jpeg,gif或png中),然后使用:hover功能更改图像的背景位置。 / p>

css将是:

div.imagecontainer {
width:50px;/*be sure to specify a height & width*/
height:50px;
background:url(images/example.jpeg);
background-position:0px 0px;
overflow:hidden;
}

div.imagecontainer:hover {
background-position:0px -50px;
}

这将消除对第二张图像的需要。如果你使用这种技术,一定要添加一个段落元素,其中包含你要写入的文本,并使用visibility:hidden;的z-index:-100;或文字缩进:1000px;溢出:隐藏;隐藏它。

答案 4 :(得分:0)

图片

div { background:url('http://www.placehold.it/200x200/f2f2f2') no-repeat; }

悬停时显示不同的图像

div:hover { background:url('http://www.placehold.it/200x200/666666') no-repeat; }

如果元素是一个锚点或者用它定义了一些onclick函数..在select中使用新类显示不同的图像

div.selected { background:url('http://www.placehold.it/200x200/000000') no-repeat; }