[英]display:inline-block and pseudo-element to do Vertically placed
I'm using display:inline-block
and pseudo-element( ::before
, ::after
) to do [ vertically
- middle
] but it's not working, pseudo-element will occupy a row even it width
is 0
, I don't know why? 我正在使用
display:inline-block
和pseudo-element( ::before
, ::after
)做[ vertically
- middle
],但它不起作用,即使width
为0
,伪元素也将占据一行,我不知道不知道为什么吗?
I know other methods to do it(likes flex
, position
, line-height
...) I just curious, what's wrong in this? 我知道其他方法可以做到这一点(比如
flex
, position
, line-height
...)我只是好奇,这怎么了? Thank you everyone. 谢谢大家。 Demo below or here : https://jsfiddle.net/pm06tkjs/
下方或此处的演示: https : //jsfiddle.net/pm06tkjs/
.container{ height: 200px; background: rgba(0, 0, 0, 0.2); } .container::before { content: ''; display: inline-block; width: 0; height: 100%; vertical-align: middle; } .img-group { display: inline-block; vertical-align: middle; } img { display: inline-block; margin-right: -4px; max-width: 20%; height: auto; }
<div class="container"> <div class="img-group"> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> </div> </div>
Approach 1 : You Can set the width of img-group less than 100% percentage. 方法1 :您可以将img组的宽度设置为小于100%的百分比。
.container{ height: 200px; background: rgba(0, 0, 0, 0.2); } .container::before { content: ''; display: inline-block; width: 0; height: 100%; vertical-align: middle; } .img-group { display: inline-block; vertical-align: middle; width: 99%; } img { display: inline-block; margin-right: -4px; max-width: 20%; height: auto; }
<div class="container"> <div class="img-group"> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> </div> </div>
Approch 2 : You are using display inline block property and on image margin right also. 方式2 :您正在使用显示内联块属性,并且也在图像边距上使用。 So display inline block also takes some extra space around the image block.
因此,显示内联块还会在图像块周围占用一些额外的空间。 So you can add width 100% if you want to and also add the margin left in negative.
因此,您可以根据需要添加100%的宽度,还可以添加负数的边距。
.container{ height: 200px; background: rgba(0, 0, 0, 0.2); } .container::before { content: ''; display: inline-block; width: 0; height: 100%; vertical-align: middle; } .img-group { display: inline-block; vertical-align: middle; width: 100%; margin-left: -4px; } img { display: inline-block; margin-right: -4px; max-width: 20%; height: auto; }
<div class="container"> <div class="img-group"> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> </div> </div>
default margin between your inline element is the problem! 内联元素之间的默认边距是问题! for solving it add
font-size:0
for your inline element parent. 为了解决这个问题,请为您的内联元素parent添加
font-size:0
。
.container{ height: 200px; background: rgba(0, 0, 0, 0.2); font-size:0; } .container::before { content: ''; display: inline-block; width: 0; height: 100%; vertical-align: middle; } .img-group { display: inline-block; vertical-align: middle; font-size:0; } img { display: inline-block; max-width: 20%; height: auto; }
<div class="container"> <div class="img-group"> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt=""> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.