Я хочу, чтобы две части одного изображения были объединены в одно исходное изображение, где каждая часть должна иметь форму треугольника.
Я нашел кодовый ключ, где есть два элемента с вложенными изображениями, где я удалил поля, но между элементами есть уродливая белая граница (пробел).
Как я могу это удалить?
<div class='pageOption'>
<a href='#' class='option' data-inf='photo'>
<img src='http://imgsrc.hubblesite.org/hu/db/images/hs-2013-06-a-large_web.jpg'>
</a>
<a href='#' class='option' data-inf='cinema'>
<img src='http://imgsrc.hubblesite.org/hu/db/images/hs-2013-06-a-large_web.jpg'>
</a>
</div>
body { background: gainsboro; }
.pageOption {
overflow: hidden;
position: relative;
margin: 0 auto;
width: 40em; height: 27em;
}
.option, .option img { width: 100%; height: 100%; }
.option {
overflow: hidden;
position: absolute;
/* arctan(27 / 40) = 34.01935deg
* need to skew by 90deg - 34.01935deg = 55.98065deg
*/
transform: skewX(-55.98deg);
}
.option:first-child {
/* left: -.25em; */
transform-origin: 100% 0;
}
.option:last-child {
/* right: -.25em; */
transform-origin: 0 100%;
}
.option img { opacity: 1; transition: .5s; }
.option img:hover { opacity: 1; }
.option img, .option:after {
transform: skewX(55.98deg);
transform-origin: inherit;
}
.option:after {
position: absolute;
margin: .5em 1.65em;
color: white;
font: 500 1.25em Courier;
letter-spacing: .1em;
text-transform: uppercase;
content: attr(data-inf);
}
.option:first-child:after { top: 0; left: 0; }
.option:last-child:after { right: 0; bottom: 0; }
Если вы установите для левого и правого ноль в приведенном вами примере, вы получите его без зазоров, но небольшой белый артефакт (по крайней мере, на Mac) является результатом непрозрачности, показывающей цвет фона, если вы установите черный цвет тела, он будет без зазоров : codepen.io/NeilWkz/pen/yjMrMZ
переместив .option:last-child
на 1px вправо, убрал пробел codepen.io/anon/pen/ervoxN
@NeilWkz это определенно менее заметно, но все же не идеальное решение для одного изображения
@Taki ваше решение очень похоже на то, что предлагает Нандита Арора Шарма ниже, но у него такая же проблема с перемещенными углами изображение
Измените эти стили
.option:first-child {
left: 0.1em;
transform-origin: 100% 0;
}
.option:last-child {
right: 0;
transform-origin: 0 100%;
}
Немного сдвинув влево, правая часть будет отображаться в нижнем левом углу, подумайте о чем-то подобном, применив margin-left: 1px
к правой стороне, но вы получите ту же проблему.
@NanditaAroraSharma не помогает, просто скрывает элемент