如何内嵌显示图像

时间:2012-09-12 19:20:43

标签: html positioning css-position css

我有一个带有三个图像的导航div。每个图像都有一个绝对位于图片底部的标题元素。我试图在同一行上显示彼此相邻的所有三个图像,但图片显示为块。我是新手。非常感谢您的帮助!

HTML:

<div class = "nav">
    <div class = "container">

        <div class = "image">
            <img src = "img1"> 
        </div>
        <div class = "title">
            <p> text1 </p>
        </div>

    </div>

     <div class = "container">

        <div class = "image">
            <img src = "img2"> 
        </div>
        <div class = "title">
            <p> text2 </p>
        </div>

    </div>

     <div class = "container">

        <div class = "image">
            <img src = "img3"> 
        </div>
        <div class = "title">
            <p> text3 </p>
        </div>

    </div>
</div> 

CSS:

.nav {
    display: inline;
}

.container {
    position: relative;
    width: 100%;
}

.image img {
    width: 30%;
    height: 4.5in;
}

.title {
    width: 30%;
    position: absolute;
    bottom: 0; left: 0;
}

2 个答案:

答案 0 :(得分:6)

您需要先修复HTML代码。

它是<div class = "title">而不是<div class = "title>在每个标题的末尾都缺少“。

然后将float添加到容器中并放置30%的宽度。因为你希望你的图像宽度为30%。

.container {
    float:left;
    position: relative;
    width: 30%;
}

当您放入3个时间容器时,您要求100%X 3对齐,

还在CSS中创建一个带有float的图像类。

.image{
    float:left;
}

最后,将CSS中.image img的宽度更改为100%,这样就可以将30%容器的100%位置允许。

    .image img {
    width: 100%;
    height: 4.5in;
    }

答案 1 :(得分:1)

您的图片已经设置为内联,麻烦的是,他们的父母不是。你需要这个:

container { display: inline-block }

值得注意的是,你有一些你可能并不真正需要的标记

    <div class = "title>
        <p> text3 </p>
    </div>

可以替换为:

    <h1 class="title">text3</h1>

或者这个:

.container h1 {
    width: 30%;
    position: absolute;
    bottom: 0; left: 0;
}

-snip -

    <h1>text3</h1>