简体   繁体   中英

Line-break after 3 images with css?

I have six icons on my website. I want three of them to be on one line and the others on the second only when the media screen is 400px .
So I should do it with @media screen and (max-width: 400px) . But my main problem is that I dont know how to make the line break with 3 icons in the first line and the next three in the second line.

 .icon { display: inline-block; } #line-break {} 
 <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div id="line-break" class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> 

FIDDLE: https://jsfiddle.net/ayf8u5s9/

You can use float and clear within your

@media screen and (max-width: 400px)

@media query:

  .icon { display: inline-block; float: left; width: 24px; } .icon:nth-of-type(3n+1) { clear: left; } 
 <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div id="line-break" class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> 

You can insert a <br> tag after the third icon and hide it when the viewport is wider than 400px with this media query : @media screen and (min-width: 400px)

Demo :

 .icon { display: inline-block; } @media screen and (min-width: 400px) { br { display: none; } } 
 <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <br> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> 

Instead of display: inline-block , use float to line the div s up. Then on media query, clear the float on the line-break one.

.icon {
  float: left
}
@media screen and (max-width: 400px) {
    #line-break {
      clear: left;
    }   
}

Fiddle: https://jsfiddle.net/abhitalks/ayf8u5s9/2/

Snippet:

 .icon { float: left } @media screen and (max-width: 680px) { #line-break { clear: left; } } 
 <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div id="line-break" class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> 

try to put each 3 icon in one div then make these divs display: inline-block then when the media screen is 400px make it display: block

 .icon { display: inline-block; } .col1 { display: inline-block; } @media(max-width: 400px) { .col1 { display: block } } 
 <div class="col1"> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> </div> <div class="col1"> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> <div class="icon"> <img src="https://cdn4.iconfinder.com/data/icons/24x24-free-pixel-icons/24/Home.png" /> </div> </div> 

.icon { width:auto; float:left }
.icon:nth-child(3n+1) { clear: both; }

Modify the styles as above. This will break to next line after every 3

将所有图标div放在一个主div中,然后在400px媒体屏幕中添加仅包含3个图标的类宽度,它会在下一行自动发送其他三个图标

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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