繁体   English   中英

响应式CSS图像幕效果

[英]Responsive CSS Image Curtain Effect

我正在尝试产生类似于此页面上的响应式幕布效果: http : //www.buildwindows.com/

图像固定在顶部,以便用户滚动时内容可以滚动到顶部。

如果您知道图像的高度,这似乎很容易,因为您可以在内容上使用margin-top:

小提琴: http : //jsfiddle.net/k8NaV/

HTML:

<header>
    <img src="http://placehold.it/300x250/0000ff/ffffff" alt="" />
</header>

<article>
    <img src="http://placehold.it/300x1000/00ff00/ffffff" alt="" />
</article>

CSS:

header {
    position: fixed;
    top: 0;
}

article {
    position: relative;
    margin-top: 250px;
}

但是,如果将图像设置为width:100%以便响应,则高度会随着浏览器的宽度上下缩放,因此,margin-top技术不起作用。 可以仅通过CSS来实现此效果,还是需要通过窗口调整大小的侦听器使用JavaScript?

通过将大图像设置为容器上的背景图像,并为其提供以下CSS3属性/值,您可以获得与之非常相似的效果(没有所有复杂性):

background-size: cover;

它不完全相同,但是非常不错。 您可以在容器上设置百分比高度,但是如果不小心可能会导致内容溢出。

这是我的意思的一个粗略示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<style media="all">
html, body {height: 100%; margin:0; padding: 0;}
div {
height: 60%;
background-image: url(http://www.buildwindows.com/img/secret.jpg);
background-repeat: no-repeat;
background-size: cover;
}
</style>

</head>
<body>

<div></div>

</body>
</html>

还有很多响应式JS图像库,它们的行为方式相似,尽管我不确定在这里只有一个图像的情况下,我不确定会走那条路线。

编辑:这是另一个实验:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<style media="all">
html, body {height: 100%; margin:0; padding: 0;}
.banner {
min-height: 50%;
background-image: url(http://www.buildwindows.com/img/secret.jpg);
background-repeat: no-repeat;
background-size: cover;
color: white;
}
h1 {margin: 0 0 40px 0; font-size: 3em;}

.banner div, .content div {width: 60%; margin: 0 auto;}
</style>

</head>
<body>

<div class="banner">
    <div>
        <h1>nihil concursus bonorum omnium</h1>

        <p>Quo usque tandem abutere</p>

        <p>Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet?</p>

        <p>Tum denique interficiere, cum iam nemo tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non iure factum esse fateatur.</p>
    </div>
</div>

<div class="content">
    <div>
        <p>Quo usque tandem abutere, Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet? quem ad finem sese effrenata iactabit audacia? Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae, nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus habendi senatus locus, nihil horum ora voltusque moverunt?</p>

        <p>Patere tua consilia non sentis, constrictam iam horum omnium scientia teneri coniurationem tuam non vides? Quid proxima, quid superiore nocte egeris, ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum ignorare arbitraris? </p>

        <p>O tempora, o mores! Senatus haec intellegit. consul videt; hic tamen vivit. Vivit? immo vero etiam in senatum venit, fit publici consilii particeps, notat et designat oculis ad caedem unum quemque nostrum. Nos autem fortes viri satis facere rei publicae videmur, si istius furorem ac tela vitemus. Ad mortem te, Catilina, duci iussu consulis iam pridem oportebat, in te conferri pestem, quam tu in nos omnes iam diu machinaris.</p> 

        <p>An vero vir amplissumus, P. Scipio, pontifex maximus, Ti. Gracchum mediocriter labefactantem statum rei publicae privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare cupientem nos consules perferemus? Nam illa nimis antiqua praetereo, quod C. Servilius Ahala Sp. Maelium novis rebus studentem manu sua occidit.</p>

        <p>Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes acrioribus suppliciis civem perniciosum quam acerbissimum hostem coercerent.</p> 

        <p>Habemus senatus consultum in te, Catilina, vehemens et grave, non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos, dico aperte, consules desumus.</p> 

        <p>Decrevit quondam senatus, ut L. Opimius consul videret, ne quid res publica detrimenti caperet; nox nulla intercessit; interfectus est propter quasdam seditionum suspiciones C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis M. Fulvius consularis.</p> 

        <p>Simili senatus consulto C. Mario et L. Valerio consulibus est permissa res publica; num unum diem postea L. Saturninum tribunum pl. et C. Servilium praetorem mors ac rei publicae poena remorata est? At vero nos vicesimum iam diem patimur hebescere aciem horum auctoritatis.</p>
    </div>
</div>

</body>
</html>

EDIT2:这是另一个版本,其中提到了更多的窗帘效果(也在下面的注释中链接):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<style media="all">

body {
    margin:0; padding: 0;
    background-image: url(http://www.buildwindows.com/img/secret.jpg);
    background-repeat: no-repeat;
    background-size: 100%;
    background-color: #27485b;
    background-attachment: fixed;
    }

    h1 {margin: 0 0 40px 0; font-size: 3em;}

    .head div, .content div {width: 50%; margin: 0 auto;}

    .content {background: white;}

    .head {min-height: 500px; color: white;}

</style>

</head>
<body>

    <div class="wrapper">
        <div class="head">
            <div>
            <h1>nihil concursus bonorum omnium</h1>

            <p>Quo usque tandem abutere</p>

            <p>Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet?</p>

            <p>Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet?</p>

            <p>Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet?</p>

            </div>
        </div>

        <div class="content">
            <div>
            <p>Tum denique interficiere, cum iam nemo tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non iure factum esse fateatur.</p>
            <p>Quo usque tandem abutere, Catilina, patientia nostra? quam diu etiam furor iste tuus nos eludet? quem ad finem sese effrenata iactabit audacia? Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae, nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus habendi senatus locus, nihil horum ora voltusque moverunt?</p>

            <p>Patere tua consilia non sentis, constrictam iam horum omnium scientia teneri coniurationem tuam non vides? Quid proxima, quid superiore nocte egeris, ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum ignorare arbitraris? </p>

            <p>O tempora, o mores! Senatus haec intellegit. consul videt; hic tamen vivit. Vivit? immo vero etiam in senatum venit, fit publici consilii particeps, notat et designat oculis ad caedem unum quemque nostrum. Nos autem fortes viri satis facere rei publicae videmur, si istius furorem ac tela vitemus. Ad mortem te, Catilina, duci iussu consulis iam pridem oportebat, in te conferri pestem, quam tu in nos omnes iam diu machinaris.</p> 

            <p>An vero vir amplissumus, P. Scipio, pontifex maximus, Ti. Gracchum mediocriter labefactantem statum rei publicae privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare cupientem nos consules perferemus? Nam illa nimis antiqua praetereo, quod C. Servilius Ahala Sp. Maelium novis rebus studentem manu sua occidit.</p>

            <p>Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes acrioribus suppliciis civem perniciosum quam acerbissimum hostem coercerent.</p> 

            <p>Habemus senatus consultum in te, Catilina, vehemens et grave, non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos, dico aperte, consules desumus.</p> 

            <p>Decrevit quondam senatus, ut L. Opimius consul videret, ne quid res publica detrimenti caperet; nox nulla intercessit; interfectus est propter quasdam seditionum suspiciones C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis M. Fulvius consularis.</p> 

            <p>Simili senatus consulto C. Mario et L. Valerio consulibus est permissa res publica; num unum diem postea L. Saturninum tribunum pl. et C. Servilium praetorem mors ac rei publicae poena remorata est? At vero nos vicesimum iam diem patimur hebescere aciem horum auctoritatis.</p>
            </div>
        </div>
    </div>


</body>
</html>

您可以设置高度吗?

img {
  width: 100%;
  height: 300px; /*or whatever*/
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM