#css #transform
При использовании CSS-свойства transfrom наблюдается пробел между HTML-элементами.
Что это вообще за пробел и как его можно красиво убрать?
Фигура тут не имеет значение. Важно именно решение проблемы без JS Canvas.
http://jsfiddle.net/g2w6y7fm/1
.top-left {
position: absolute;
width: 140px;
height: 120px;
top: 45px;
left: 50px;
background-color: red;
transform-origin: top right;
transform: rotate(-30deg);
}
.right {
position: absolute;
left: 100%;
top: 0;
width: 0;
height: 0;
border-top: 120px solid red;
border-right: 70px solid transparent;
}
.left {
position: absolute;
right: 100%;
top: 0;
width: 0;
height: 0;
border-top: 120px solid red;
border-left: 70px solid transparent;
}
Ответы
Ответ 1
К .top-left добавляем backface-visibility: hidden. .top-left { backface-visibility: hidden; position: absolute; width: 140px; height: 120px; top: 45px; left: 50px; background-color: red; transform-origin: top right; transform: rotate(-30deg); } .right { position: absolute; left: 100%; top: 0; width: 0; height: 0; border-top: 120px solid red; border-right: 70px solid transparent; } .left { position: absolute; right: 100%; top: 0; width: 0; height: 0; border-top: 120px solid red; border-left: 70px solid transparent; }http://jsfiddle.net/yw066stw/Ответ 2
2 вариант - добавить translate3d( 0, 0, 1px); .top-left { position: absolute; width: 140px; height: 120px; top: 45px; left: 50px; background-color: red; transform-origin: top right; transform: rotate(-30deg) translate3d( 0, 0, 1px); } .right { position: absolute; left: 100%; top: 0; width: 0; height: 0; border-top: 120px solid red; border-right: 70px solid transparent; } .left { position: absolute; right: 100%; top: 0; width: 0; height: 0; border-top: 120px solid red; border-left: 70px solid transparent; }
Комментариев нет:
Отправить комментарий