我刚刚开始学习Bootstrap和一个月的CSS。我正在编写一个页面,我觉得我对像素和响应式设计了解不足。
所以我在一个部分中有三个图像(.demo)。第一个图像(.png)是668x522像素,另外两个(.jpeg)是548x445像素。我为每张图片使用col-md-4。我看到最高的图像最终比其他两个更短。你可以see my page here。请注意最左边的图像如何比其他两个图像更短,即使它具有更高的像素高度。我的问题是
为什么第一张图片的高度会缩短? (我预计它会是三者中最高的)。当我在Chrome中测量其他图像时,我发现它们的图像高度是345 x 280像素。如何确定渲染尺寸?
我希望这三个人都有相同的身高。我做了img.demo {height :280px ; }
并且所有图像排列得很好,但我知道这不是响应。我试过img.demo { height :73% }
(父容器col-md-4的宽度为380像素,因此img.demo的高度为73%应该给它280px高度。但是设置高度%以img.demo没有做任何事情它。为什么?
让所有图像都具有相同高度的响应方式是什么?
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Starter Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><strong>GemniPro</strong></a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<section>
<div class="jumbotron">
<div class = "container">
<div class = "row">
<div class = "col-md-6">
<h1>Capture <strong>Life</strong></h1>
<p>A fun and easy way to capture and share the moments you live for</p>
<a href= "#"><img class= "app-btn" src="img/icon_app_store.png"></a>
<a href= "#"><img class= "app-btn" src="img/icon_google_play.png"></a>
</div>
<div class = "col-md-6">
<img class ="showcase" src = "img/site_phone.png" >
</div>
</div>
</div>
</div>
</section>
<section id = "middle">
<div class = "row">
<div class ="container">
<div class = "col-md-4 ">
<img src = "img/demo1.png" class="demo" >
<h3> Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lobortis tempus varius. Sed porttitor ex id lectus interdum tristique.</p>
</div>
<div class = "col-md-4 ">
<img src = "img/demo2.jpg" class="demo">
<h3> Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lobortis tempus varius. Sed porttitor ex id lectus interdum tristique.</p>
</div>
<div class = "col-md-4 demo">
<img src = "img/demo3.jpg" class="demo">
<h3> Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lobortis tempus varius. Sed porttitor ex id lectus interdum tristique.</p>
</div>
</div>
</div>
</section>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/main.js"></script>
</body>
</html>
CSS:
body {
margin-top: 50px;
}
strong {
color:aqua ;
}
section#middle {
padding:40px 0 40px 0;
}
.jumbotron {
color :#fff;
background: url("../img/site_showcase_bg.jpg");
height:500px;
overflow:hidden;
}
.jumbotron img.app-btn {
height : 60px;
width:40%
}
.jumbotron h1 {
margin-top:125px;
}
.jumbotron p {
margin-bottom:50px;
}
.jumbotron img.showcase {
width:75%;
}
#middle img.demo {
width:100%;
height:73%;
border:solid 1px #ccc;
}
答案 0 :(得分:0)
第一张图片略小,因为它的宽高比与另外两张不同:
第一张图片的原始尺寸是:668x552 |纵横比= 1.210
另外两个是:548x445 |纵横比= 1.231
他们需要具有相同的宽高比,或者您可以将它们放在div中并将其显示为background-size: contain
答案 1 :(得分:0)
如果不应用任何宽度或高度,图像将保持其纵横比。如果您以宽高比大于原始宽高比的方式应用它们,图像会变形。
第一图像的高宽比大于高度和宽度相等的其他2个图像。宽度越大,高度越小。
参考父高度计算百分比高度。由于.demo
的封闭容器没有高度,因此以百分比定义高度无效。
拍摄相同尺寸的图像。或
.demo
max-width: 100%;
height: 280px;
border: solid 1px #ccc;
或者
.demo
max-width: 100%;
所有3张图片的高度差别不大,因此可以安全地移除边框。 ;)