我正在尝试制作一个响应式窗帘效果,如本页所示: 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;
}
但是,如果将图像设置为宽度:100%以使其变为响应,则高度随浏览器的宽度向上和向下缩放,因此margin-top技术不起作用。这种效果可以仅使用CSS实现,还是需要使用窗口调整大小的侦听器?
答案 0 :(得分:0)
通过将大图像设置为容器上的背景图像并为其提供此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>
答案 1 :(得分:0)
你能设置一下身高:
img {
width: 100%;
height: 300px; /*or whatever*/
}