2016-09-30 94 views
1

我一直在試圖有一個由圖像和段落組成的兩列布局。想法是將它們放置爲之字形(相同的元素相互對角)。文字未包裹浮動圖像。但圖像環繞浮動文本

正如代碼所示,兩個圖像左側浮動,兩個段落左側浮動。

問題是,段落沒有環繞浮動圖像,而圖像完美地圍繞浮動段落。

代碼:

#wrapper { 
 
    width: 70%; 
 
    margin: 2% auto; 
 
} 
 
.photo { 
 
    width: 48%; 
 
    margin: 1%; 
 
} 
 
.para { 
 
    width: 48%; 
 
    margin: 1%; 
 
} 
 
.left { 
 
    float: left; 
 
    margin: 1%; 
 
} 
 
.header { 
 
    position: relative; 
 
    top: 0; 
 
    width: 100%; 
 
    background-color: #D8E8ED; 
 
} 
 
.heading { 
 
    position: relative; 
 
    right: 33%; 
 
    font-family: helvetica; 
 
    font-weight: bold; 
 
    font-size: 30px; 
 
} 
 
.tagline { 
 
    position: relative; 
 
    right: 33%; 
 
    font-family: helvetica; 
 
    font-size: 12px; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Photo Blog</title> 
 
    <link rel="stylesheet" type="text/css" href="photo.css"> 
 
</head> 
 

 
<body> 
 

 
    <div class="header"> 
 
    <h1 class="heading">Photo Blog</h1> 
 
    <p class="tagline">A Collection Of Moments</p> 
 
    </div> 
 

 
    <div id="wrapper"> 
 

 

 
    <img src="img/DSC01683.JPG" class="photo left"> 
 

 

 
    <p class="para"> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in pulvinar elit. Sed vitae justo congue neque consequat volutpat. Pellentesque leo ipsum, ultrices et sem ut, dignissim pellentesque libero. Curabitur in mattis nibh. Nulla non sollicitudin 
 
     elit. Vivamus erat eros, egestas eget quam sit amet, malesuada laoreet sapien. Vestibulum at mattis lectus. Curabitur nunc augue, dictum eu fermentum non, dignissim eget diam.Donec facilisis eros felis, quis tristique libero ultricies tincidunt. 
 
     Praesent ullamcorper eget dui non hendrerit. 
 
    </p> 
 

 

 
    <p class="para left"> 
 
     Nunc nec mauris a magna egestas vulputate in vel odio. Nunc purus ligula, suscipit et libero non, rutrum accumsan sapien. Mauris tortor massa, aliquam eu viverra id, interdum eu felis. Integer hendrerit massa quis est molestie consequat. Morbi ultricies, 
 
     leo ut euismod cursus, ligula ante sagittis ex, non gravida dui sapien at nunc. Ut at quam faucibus, posuere tortor et, volutpat ante. Sed accumsan ultrices arcu, id efficitur nunc maximus eget.Quisque vel eros semper, mattis magna sed, dignissim 
 
     leo. 
 
    </p> 
 

 

 
    <img src="img/DSC01716.JPG" class="photo left"> 
 

 
    <div class="left"> 
 
     <img src="img/DSC01780.JPG" class="photo left"> 
 
    </div> 
 

 
    <p class="para"> 
 
     Nunc vel finibus ante. Curabitur finibus, libero et mattis mattis, massa nulla bibendum eros, in maximus lorem elit egestas massa. Duis tellus nibh, aliquet sed vehicula non, elementum at purus. In efficitur venenatis ipsum, eu aliquam ex faucibus a. 
 
     Etiam blandit lobortis purus, et egestas diam lobortis a. Duis in iaculis turpis. Nullam turpis nisl, vulputate id mi eu, blandit auctor mi. Aenean volutpat venenatis est nec tempus. In cursus commodo tortor vitae ultrices. Vestibulum sed fermentum 
 
     enim. Praesent ac risus eu magna finibus ultricies.Curabitur tristique lobortis sem ut pulvinar. Aliquam et felis nec ipsum tincidunt tempor. Mauris ut sollicitudin lorem. Donec faucibus nisl id iaculis congue. 
 
    </p> 
 

 

 
    <p class="para left"> 
 
     Morbi venenatis, tellus eu euismod efficitur, tellus velit posuere ante, eget tempus ex mi vitae sem. Nam et lorem pellentesque enim vehicula tempus. Maecenas et nibh et eros tincidunt pellentesque non ac ante. Maecenas et neque ex. Aenean placerat, odio 
 
     eu faucibus auctor, orci nibh egestas mi, nec imperdiet augue leo quis massa. Vestibulum sed accumsan nulla. Aliquam aliquet sem ante, ut dignissim quam eleifend eu. Nam sit amet dolor iaculis, porttitor arcu in, scelerisque sapien. Nulla auctor 
 
     bibendum tincidunt. Fusce blandit eros at auctor congue. Vestibulum magna justo, convallis ut volutpat vitae, fermentum at nisl. 
 
    </p> 
 

 

 
    <img src="img/DSC01820.JPG" class="photo left"> 
 

 
    </div> 
 

 
</body> 
 

 
</html>

回答

1

要獲得雙列布局,您必須正確應用float s和clear它們。它是clear一個浮動容器要了解如何重要,看到這個answerthis

注意的是,雖然使用的是浮動的容器,你應該遵循從而創造出新的 塊格式化上下文中的下一個容器之前總是很清楚 他們因爲它被稱爲。否則,你會看到 不可預知的行爲。

清除float S使用:

<div style="clear:both"></div> 

每個圖像,對排後以及使用時left類的所有圖像和段落。

見下面的例子:

#wrapper { 
 
    width: 70%; 
 
    margin: 2% auto; 
 
} 
 
.photo { 
 
    width: 48%; 
 
    margin: 1%; 
 
} 
 
.para { 
 
    width: 48%; 
 
    margin: 1%; 
 
} 
 
.left { 
 
    float: left; 
 
    margin: 1%; 
 
} 
 

 
.header { 
 
    position: relative; 
 
    top: 0; 
 
    width: 100%; 
 
    background-color: #D8E8ED; 
 
} 
 
.heading { 
 
    position: relative; 
 
    right: 33%; 
 
    font-family: helvetica; 
 
    font-weight: bold; 
 
    font-size: 30px; 
 
} 
 
.tagline { 
 
    position: relative; 
 
    right: 33%; 
 
    font-family: helvetica; 
 
    font-size: 12px; 
 
}
<body> 
 

 
    <div class="header"> 
 
    <h1 class="heading">Photo Blog</h1> 
 
    <p class="tagline">A Collection Of Moments</p> 
 
    </div> 
 

 
    <div id="wrapper"> 
 

 

 
    <img src="http://placehold.it/200x200" class="photo left"> 
 

 

 
    <p class="para left"> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in pulvinar elit. Sed vitae justo congue neque consequat volutpat. Pellentesque leo ipsum, ultrices et sem ut, dignissim pellentesque libero. Curabitur in mattis nibh. Nulla non sollicitudin 
 
     elit. Vivamus erat eros, egestas eget quam sit amet, malesuada laoreet sapien. Vestibulum at mattis lectus. Curabitur nunc augue, dictum eu fermentum non, dignissim eget diam.Donec facilisis eros felis, quis tristique libero ultricies tincidunt. 
 
     Praesent ullamcorper eget dui non hendrerit. 
 
    </p> 
 

 
    <div style="clear:both"></div> 
 

 
    <p class="para left"> 
 
     Nunc nec mauris a magna egestas vulputate in vel odio. Nunc purus ligula, suscipit et libero non, rutrum accumsan sapien. Mauris tortor massa, aliquam eu viverra id, interdum eu felis. Integer hendrerit massa quis est molestie consequat. Morbi ultricies, 
 
     leo ut euismod cursus, ligula ante sagittis ex, non gravida dui sapien at nunc. Ut at quam faucibus, posuere tortor et, volutpat ante. Sed accumsan ultrices arcu, id efficitur nunc maximus eget.Quisque vel eros semper, mattis magna sed, dignissim 
 
     leo. 
 
    </p> 
 

 

 
    <img src="http://placehold.it/200x200" class="photo left"> 
 

 
    <div style="clear:both"></div> 
 

 
    <div> 
 
     <img src="http://placehold.it/200x200" class="photo left"> 
 
    </div> 
 

 
    <p class="para left"> 
 
     Nunc vel finibus ante. Curabitur finibus, libero et mattis mattis, massa nulla bibendum eros, in maximus lorem elit egestas massa. Duis tellus nibh, aliquet sed vehicula non, elementum at purus. In efficitur venenatis ipsum, eu aliquam ex faucibus a. 
 
     Etiam blandit lobortis purus, et egestas diam lobortis a. Duis in iaculis turpis. Nullam turpis nisl, vulputate id mi eu, blandit auctor mi. Aenean volutpat venenatis est nec tempus. In cursus commodo tortor vitae ultrices. Vestibulum sed fermentum 
 
     enim. Praesent ac risus eu magna finibus ultricies.Curabitur tristique lobortis sem ut pulvinar. Aliquam et felis nec ipsum tincidunt tempor. Mauris ut sollicitudin lorem. Donec faucibus nisl id iaculis congue. 
 
    </p> 
 

 
    <div style="clear:both"></div> 
 
    <p class="para left"> 
 
     Morbi venenatis, tellus eu euismod efficitur, tellus velit posuere ante, eget tempus ex mi vitae sem. Nam et lorem pellentesque enim vehicula tempus. Maecenas et nibh et eros tincidunt pellentesque non ac ante. Maecenas et neque ex. Aenean placerat, odio 
 
     eu faucibus auctor, orci nibh egestas mi, nec imperdiet augue leo quis massa. Vestibulum sed accumsan nulla. Aliquam aliquet sem ante, ut dignissim quam eleifend eu. Nam sit amet dolor iaculis, porttitor arcu in, scelerisque sapien. Nulla auctor 
 
     bibendum tincidunt. Fusce blandit eros at auctor congue. Vestibulum magna justo, convallis ut volutpat vitae, fermentum at nisl. 
 
    </p> 
 

 

 
    <img src="http://placehold.it/200x200" class="photo left"> 
 

 
    <div style="clear:both"></div> 
 
    </div> 
 

 
</body>

讓我知道你對這個意見。乾杯!

+1

嘿,謝謝!這工作完美無瑕。 –

0

可能這就是你需要什麼樣的

<!DOCTYPE html> 
<html> 
<link rel="stylesheet" type="text/css" href="style.css"> 
    <title>Photo Blog</title> 
    <link rel="stylesheet" type="text/css" href="photo.css"> 
</head> 
<body> 

<div class="header"> 
      <h1 class="heading">Photo Blog</h1> 
      <p class="tagline">A Collection Of Moments</p> 
     </div> 

<div id="wrapper"> 
<div> 

      <img src="img/DSC01683.JPG" class="photo left"> 


     <p class="para right"> 
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in pulvinar elit. Sed vitae justo congue neque consequat volutpat. Pellentesque leo ipsum, ultrices et sem ut, dignissim pellentesque libero. Curabitur in mattis nibh. Nulla non sollicitudin elit. Vivamus erat eros, egestas eget quam sit amet, malesuada laoreet sapien. Vestibulum at mattis lectus. Curabitur nunc augue, dictum eu fermentum non, dignissim eget diam.Donec facilisis eros felis, quis tristique libero ultricies tincidunt. Praesent ullamcorper eget dui non hendrerit. 
     </p> 
</div> 
<div> 
     <p class="para left"> 
      Nunc nec mauris a magna egestas vulputate in vel odio. Nunc purus ligula, suscipit et libero non, rutrum accumsan sapien. Mauris tortor massa, aliquam eu viverra id, interdum eu felis. Integer hendrerit massa quis est molestie consequat. Morbi ultricies, leo ut euismod cursus, ligula ante sagittis ex, non gravida dui sapien at nunc. Ut at quam faucibus, posuere tortor et, volutpat ante. Sed accumsan ultrices arcu, id efficitur nunc maximus eget.Quisque vel eros semper, mattis magna sed, dignissim leo. 
     </p> 


     <img src="img/DSC01716.JPG" class="photo right"> 
</div> 
    <div class="left"> 
     <img src="img/DSC01780.JPG" class="photo left"> 


     <p class="para right"> 
      Nunc vel finibus ante. Curabitur finibus, libero et mattis mattis, massa nulla bibendum eros, in maximus lorem elit egestas massa. Duis tellus nibh, aliquet sed vehicula non, elementum at purus. In efficitur venenatis ipsum, eu aliquam ex faucibus a. Etiam blandit lobortis purus, et egestas diam lobortis a. Duis in iaculis turpis. Nullam turpis nisl, vulputate id mi eu, blandit auctor mi. Aenean volutpat venenatis est nec tempus. In cursus commodo tortor vitae ultrices. Vestibulum sed fermentum enim. Praesent ac risus eu magna finibus ultricies.Curabitur tristique lobortis sem ut pulvinar. Aliquam et felis nec ipsum tincidunt tempor. Mauris ut sollicitudin lorem. Donec faucibus nisl id iaculis congue. 
     </p> 
</div> 
<div> 
     <p class="para left"> 
      Morbi venenatis, tellus eu euismod efficitur, tellus velit posuere ante, eget tempus ex mi vitae sem. Nam et lorem pellentesque enim vehicula tempus. Maecenas et nibh et eros tincidunt pellentesque non ac ante. Maecenas et neque ex. Aenean placerat, odio eu faucibus auctor, orci nibh egestas mi, nec imperdiet augue leo quis massa. Vestibulum sed accumsan nulla. Aliquam aliquet sem ante, ut dignissim quam eleifend eu. Nam sit amet dolor iaculis, porttitor arcu in, scelerisque sapien. Nulla auctor bibendum tincidunt. Fusce blandit eros at auctor congue. Vestibulum magna justo, convallis ut volutpat vitae, fermentum at nisl. 
     </p> 


     <img src="img/DSC01820.JPG" class="photo right"> 
</div> 
</div> 

</body> 
</html> 

添加CSS類

.right { 
    float:right; 
} 

圖像環繞文本的原因是,您正在使用左對齊的圖像組合。