响应式画廊表现得很奇怪

时间:2016-10-25 23:27:40

标签: html css html5 css3

我正在尝试创建一个完全响应和吸引力的图库。但是当图像像画廊中的普通图像一样对齐时,这非常困难,当您调整窗口/图库的大小时,图像看起来很棒。但是在窗口全屏的情况下,图像开始变得怪异而不是按照它们应该的顺序。 如果有人知道到底出了什么问题或者添加了什么,请告诉我。 谢谢!



div.img {
    border: 1px solid #ccc;
}

div.img:hover {
    border: 1px solid #777;
}

div.img img {
    width: 100%;
    height: auto;
}

div.desc {
    padding: 15px;
    text-align: center;
}

* {
    box-sizing: border-box;
}

.responsive {
    padding: 0 6px;
    float: left;
    width: 24.99999%;
}

@media only screen and (max-width: 700px){
    .responsive {
        width: 49.99999%;
        margin: 6px 0;
    }
}

@media only screen and (max-width: 500px){
    .responsive {
        width: 100%;
    }
}

.clearfix:after {
    content: "";
    display: table;
    clear: both;
}


body {
  background-color: white;
  margin: 0;
  padding: 0;
  
}

.navigation {
	padding-top: 70px;
	padding-bottom: 70px;
	position: relative;
	text-transform: uppercase;
	overflow: hidden;
}

.brand-text {
  font-family: 'Permanent Marker', cursive;
	font-size: 50px;
	color: black;
	-webkit-transition: color 1000ms ease;
	text-align: center;
	margin-bottom: 20px;
	margin-left: 0;
	margin-right: 0;
	margin-top: 0;
  padding: 0;
  display: block;
  display:inline-block;
  position: relative;
  text-align: center;
  left: 50%;
  transform: translate(-50%);
}


.brand-text:hover {
	color: grey;
	
}

.nav-brand {
	text-decoration:none;
}

.nav-menu {
	text-align: center;
}

.nav-link {
	padding-top: 7px;
	padding-bottom: 7px;
	margin-right: 20px;
	margin-left: 20px;
	text-decoration: none;
	text-align: center;
	color: grey;
	font-family: 'Raleway', sans-serif;
	-webkit-transition: color 700ms ease;
	position: relative;
	display: inline-block;
}

.nav-link:hover {
	color: black;
}

.current {
  color: black;
}

.current:hover {
  color:
}

.about-section {
  width: 75%;
  margin: auto;
  border: 3px solid #f2f2f2;
  position: relative;
}

.me-image {
  width: 100%;
  
}

.about-img {
  width: 100%;
  height: auto;
  position: relative;
  float: left;
  overflow: hidden;
  margin-bottom: 20px;
}

.about-title {
  color: black;
  font-family: 'Raleway', sans-serif;
  font-size: 40px;
  margin: 20px;
  
}

.about-me {
  font-family: 'Libre Franklin', sans-serif;
  line-height: 150%;
  margin: 20px;
  font-size: 18px;
}

.footer {
  background-color: #f2f2f2;
  padding: 20px;
  margin-top: 30px;
  font-family: 'Libre Franklin', sans-serif;
  position: relative;
  bottom: 0;
  clear: both;
  left: 0;
  right: 0;
  bottom: 0;
}

<!DOCTYPE html>
<html>
<head>
	<title>Josh Corbett</title>
	<meta charset="UTF-8">
	<meta name="description" content="Portfolio of Josh Corbett. Full of photography, art, graphics/illustrations, and maybe more!" />
	<link rel="stylesheet" type="text/css" href="stylesheet.css">
	<link rel="stylesheet" type="text/css" href="images.css">
	<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Permanent+Marker" rel="stylesheet">
</head>
<body>
	<div class="navigation">
		<a class="nav-brand" href="#"><h1 class="brand-text">Josh Corbett</h1></a>
		<div class="container">
			<nav class="nav-menu" role="navigation">
				<a class="nav-link current" href="Home.html">Portfolio</a>
				<a class="nav-link" href="About.html">About</a>
				<a class="nav-link" href="Blog.html">Blog</a>
			</nav>
		</div>
	</div>
  	
	<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/apple.png" alt="Apple Vector" width="600" height="400">
    </a>
    <div class="desc">Apple Products Vector</div>
  </div>
</div>

<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/Panda.jpg" alt="Cute Panda" width="600" height="400">
    </a>
    <div class="desc">Cute Panda</div>
  </div>
</div>
<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/2dlandscape.jpg" alt="Flat Landscape" width="600" height="400">
    </a>
    <div class="desc">Flat Landscape</div>
  </div>
</div>
<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/jclogo.png" alt="JC Logo" width="600" height="400">
    </a>
    <div class="desc">JC Logo</div>
  </div>
</div>
<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/Leaf.JPG" alt="Leaf" width="600" height="400">
    </a>
    <div class="desc">Raspberry Leaf</div>
  </div>
</div>
<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/Grass.JPG" alt="Grass" width="600" height="400">
    </a>
    <div class="desc">Long Grass</div>
  </div>
</div>
<div class="responsive">
  <div class="img">
    <a target="_blank" href="#">
      <img src="Photos/Me.jpg" alt="Me" width="600" height="400">
    </a>
    <div class="desc">Just Me</div>
  </div>
</div>

	<div class="footer">
	    ©Josh Corbett 2016
	</div>
</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

更长的文字说明,当它包装时,你会看到&#34;古怪&#34;。

添加空白区域:nowrap; to .responsive将解决你的问题。

我建议尝试使用像flexbox这样的技术,因为你将更少地使用浏览器。 http://www.sketchingwithcss.com/samplechapter/cheatsheet.html

答案 1 :(得分:0)

首先,你有一个额外的结束div标签,只有#34; Apple Products Vector&#34;线,这可能会导致问题。

其次,您需要修复宽度和高度层次。首先你设置&#34; img&#34; width和height属性,但是在CSS中设置&#34; div.img img&#34;宽度和高度,如果我没有错误,将覆盖这些值(它最好只在CSS中设置图像大小)。接下来&#34;响应&#34; div的宽度设置,因为对于所有窗口大小,它的百分比不会是600px(img宽度)加上填充,边距和边框。

第三,你需要学习浮点数。 Float旨在允许文本环绕图像或其他块级元素。虽然它可以用来自动移动块级元素(div,img,ect),但你必须要有所不同。首先要记住,浮动必须知道每个块级元素的大小,如果它要正确定位,这就是为什么我在此之前提到你的大小问题。接下来要意识到浮动正试图将每个div包裹在其他div之间(如果你认为你的大脑可能会爆炸那么太难)。但是,div并不像句子和段落一样灵活。为了简化每个div首先分配其顶部位置,然后分配其左侧位置。因此对于第一行,它将填充左侧的第一个可用插槽,但对于第二行,它将从顶部填充,然后从左侧填充。因此,如果其中一个div比其他div短,则float会在填充到左边之前填充它下面的空间。

最后你应该把所有&#34;响应&#34;如果您要使用float,则在包装div中使用div,因为float会检查父元素样式以帮助它对定位浮动元素做出一些决定。

有一些关于使用float的好教程,特别是使用float的陷阱,你可能想查找它们,因为它可能对你有所帮助。