CSS位置div响应背景图像

时间:2016-08-22 14:04:48

标签: css html5 response

我需要在div背景上有一个图像。在这张图片上,它必须有一个标题,副标题和一个按钮。

所有这三个元素都需要以动态位置的百分比为顶部和左边。

我做过几次尝试,但没有成功。

HTML

<div id="container">
    <div id="block1">
        <div id="title">LIAM</div>
        <div id="subtitle">SUPER SLIM FIT</div>
        <div id="link">
            <a href="#"> See all jeans</a>
        </div>
    </div>
</div>

CSS

  #block1 {
    background-image: url('http://tiffosi.com/fw16/img/img1.jpg');
    background-repeat: no-repeat;
    background-size: contain;
    width: 100%;
    height: 1450px;
    max-width: 1086px;
    max-height: 1450px;
    position: relative;
    top: 0;
    left: 0;
}

#block1 #subtitle {
    font-size: 16pt;
    color: white;
    position: absolute;
    top: 23.4%;
    left: 43.5%;
    letter-spacing: 1px;
}

#block1 #link {
    width: 184px;
    text-align: center;
    height: 43px;
    line-height: 43px;
    border: 1px solid white;
    font-size: 11pt;
    top: 29.3%;
    left: 41.3%;
    position: absolute;
}

#block1 #link a {
    color: white;
    text-decoration: none;
    font-weight: 100;
}

@media only screen and (min-width : 768px) {
    #block1 #title{
        top: 12%;
        left:42%;
        font-size:80%;
    }
}

@media only screen and (min-width : 992px) {
    #block1 #title {
        font-size: 100%;
        position: absolute;
        top: 16.5%;
        left: 42%;
        letter-spacing: 2px;
    }
}

#block1 #title {
    font-size: 97px;
    color: white;
    position: absolute;
    top: 16.5%;
    left: 42%;
    letter-spacing: 2px;
}

链接到jsffidle:https://jsfiddle.net/jggscada/

1 个答案:

答案 0 :(得分:0)

而不是单独定位每个元素,我建议您将position:absolute提供给#block1并将其放置在图像上(图像作为#container的背景或围绕{{1}创建另一个div div)。

我使用了#block1 - &gt; top:40vh

然后根据需要将元素放在vh=viewport height内。

我也删除了block1 div并将样式直接添加到链接中。这种方式似乎更合乎逻辑:)。如果您希望#link的行为与使用link div display:block相同,那么我使用display:inline-block

非常重要:如果您想要有响应的内容,请不要使用固定的widthheight。我在width:100vw上使用了.container,因此它具有屏幕的宽度。

请参阅下面的代码段或在此处小提琴&gt;的 Jsfiddle

让我知道它是否适合你

#container {
    background-image: url('http://tiffosi.com/fw16/img/img1.jpg');
    background-repeat: no-repeat;
    background-size: contain;
    width: 100vw;
    height: 1450px;
    max-width: 1086px;
    max-height: 1450px;
    position: relative;
    top: 0;
    left: 0;
    border: 1px solid red;
  }

  #block1 #title {
    font-family: oswald-bold;
    font-size: 60pt;
    color: white;
    letter-spacing: 5px;
  }

  #block1 #subtitle {
    font-family: oswald-bold;
    font-size: 16pt;
    color: white;
    letter-spacing: 1px;
  }

  #block1  a{
    width: 184px;
    text-align: center;
    height: 43px;
    line-height: 43px;
    border: 1px solid white;
    font-family: Oswald-Medium;
    font-size: 11pt;
     color: white;
    text-decoration: none;
    font-weight: 100;
    display:inline-block;
    margin-top:50px;
  }

  

  
  #block1 { 
  position:absolute;
  top:40vh;
  left:0;
  margin:0 auto;
  right:0;
  text-align:center;
  }
<div id="container">
    <div id="block1">
        <div id="title">LIAM</div>
        <div id="subtitle">SUPER SLIM FIT</div>
        <a href="#"> See all jeans</a>

    </div>
</div>