问题描述:

When column-count is used, it seems to crop any overflow content.

#columns {

-webkit-column-count: 1;

-webkit-column-gap: 10px;

/*-webkit-column-fill: auto;*/

-moz-column-count: 1;

-moz-column-gap: 10px;

/*-moz-column-fill: auto;*/

column-count: 1;

column-gap: 10px;

/*column-fill: auto;*/

border: 1px solid red;

overflow: visible;

}

.pin {

width: 100%;

display: inline-block;

padding: 10px;

margin-bottom: 5px;

}

<div id="columns">

<div class="pin">

<a href="#">

<span class="onsale">Sale!</span>

<img src="#.jpg" />

</a>

<h3>Product 1</h3>

</a>

</div>

</div>

网友答案:

I'm not sure how you are styling your .onsale so I styled on my own way.

If you use position:relative in .pin and then position:absolute you can achieve what you want.

UPDATE: The issue is the webkit-column-count:1 in Chrome and since having that with 1 or nothing is the same, just remove it and use another technique that will allow you to have the .onsale out of flow by using position:absolute

#columns {
 
  border: 1px solid red;
  
}
.pin {
  width: 100%;
  display: inline-block;
  padding: 10px;
  margin-bottom: 5px;
  position: relative
}
.onsale {
   min-height: 3.236em;
    min-width: 3.236em;
    padding: .202em;
    font-size: 1em;
    font-weight: 700;
    position: absolute;
    text-align: center;
    line-height: 3.236;
    top: -.5em;
    left: -.5em;
    margin: 0;
    border-radius: 100%;
    background-color: lightgreen;
    color: white;
    font-size: .857em;
    -webkit-font-smoothing: antialiased;
}
<div id="columns">
  <div class="pin">
    <a href="#">
      <span class="onsale">Sale!</span>
      <img src="//placehold.it/300x300" />
    </a>
    <h3>Product 1</h3>
  </div>
  <div class="pin">
    <a href="#">
      <span class="onsale">Sale!</span>
      <img src="//placehold.it/300x300" />
    </a>
    <h3>Product 2</h3>
  </div>
</div>
网友答案:

Add transform: translateZ(0); to your .pin to enable hardware acceleration as a workaround.

网友答案:

Just use padding inside #columns class

相关阅读:
Top