Подтвердить что ты не робот

При использовании столбца-столбца переполняющий контент полностью исчезает во всех, кроме первого столбца, почему?

При использовании column-count в обертке и контейнерах в оболочке применяется border-radius, а содержимое в контейнере переполняется, содержимое полностью исчезает во всех столбцах, кроме первого.

Вот мой пример: https://jsfiddle.net/f4nd7tta/
Красный полукруг видим только в первом столбце, почему?

#main_wrap{
    width:100%;
    border:solid 1px black;
    -moz-column-count: 3;
    -webkit-column-count: 3;
    column-count: 3;
}
#main_wrap > div{
    border-radius:5px;
    overflow:hidden;
    position:relative;
    -moz-column-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    column-break-inside: avoid;
    width:70%;
    height:300px;
    border:solid 2px grey;
    margin:2px;
}
#main_wrap > div > div{
    position:absolute;
    background:red;
    border-radius:40px;
    width:40px;
    height:40px;
    right:-20px;
    top:0;
}
<div id="main_wrap">
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
    <div><div></div></div>
</div>
4b9b3361

Ответ 1

Я честно понятия не имею, почему это происходит, я смотрю документы, если они указали это поведение, я хочу проверить, является ли это преднамеренным или это ошибка. На данный момент я использую

-webkit-transform: translateX(0);
-moz-transform: translateX(0);
transform: translateX(0);

И он работает... Поэтому добавьте вышеуказанные свойства в #main_wrap > div, и я думаю, что если вы исключаете префиксы поставщиков, чем transform: translateX(0);, то достаточно.

Демо

Хорошо, я думаю, что это ошибка:

Проблема 84030: CSS 3 Ошибка столбца (переполнение: скрытое, как функция, где он не должен)

Абсолютно позиционированные элементы обрезаются, как если бы переполнение: скрытый, примененный к ящику. Однако, применяя переполнение: видимое или любое другое правило не устраняет проблему.


Я подумал об этом больше, так как я предложил первое решение, которое я случайно включил в себя свойства, и это сработало, есть также способ, которым вы можете законно делать то, что вы делаете, используя свойство clip, и вы выиграли ' t нужно overflow: hidden; больше.

#main_wrap > div > div{
    position:absolute;
    background:red;
    border-radius:40px;
    width:40px;
    height:40px;
    right:-20px;
    top:0;
    clip: rect(0px,20px,40px,0px);
}

Демо 2 (клип-демонстрация)

Ответ 2

Пожалуйста, найдите рабочий пример моего ANSWER, который я тестировал в Firefox и Chrome.

CODE HTML
<!--you can add as many divs as you like it will work -->
<div id="main_wrap">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CODE CSS
#main_wrap{
  width:100%;
}

#main_wrap > div{
  width:20%; #***
  height:250px; #***
  background:whitesmoke;
  float:left;
  position:relative;
  overflow:hidden;
  border-radius:5px;
  border:2px solid gray;
  margin-left: 10.75%; #***
  margin-bottom:1rem; #***
}

#main_wrap > div:after{
  content:"";
  position:absolute;
  width:40px;
  height:40px;
  background:red;
  border-radius:50%;
  right:-20px;
}

Я воссоздал макет, показанный в вашем примере, но вам может потребоваться внести некоторые изменения, чтобы получить окончательный макет. Для этого игра с отмеченными (# ***) свойствами