html - 将图像放置在不规则形状的 div 中

标签 html css

我有几组倾斜的 div,我希望每个 div 都有一个单独的图像。这可能吗?如果我尝试在里面放置图像,图像也会倾斜并且看起来扭曲。我怎样才能解决这个问题?本质上我想要一个黑色间隔的图像。请并感谢您提前提供的所有帮助!!!

.wrap {
  position: relative;
  width: 95vw;
  height: 20vw;
  margin-right: auto;
  margin-left: auto;
  background: white;
  overflow: hidden;
}
.button-skewed .button {
  width: 98%;
  height: 100%;
  background: black;
  display: inline-block;
  text-align: center;
  box-shadow: inset 0 0 0 1vw #008080, inset 0 0 0 1.1vw #fff;
}
.button-skewed .button:hover ~ span {
  background: #007a7a !important;
}
.button-skewed .button:hover ~ span:before {
  background: #007a7a !important;
}
.button-skewed .button:hover {
  background: #007a7a;
  box-shadow: inset 0 0 0 1vw #007a7a, inset 0 0 0 1.1vw #fff;
}
.button-skewed .button.left {
  margin-left: -1.7vw;
  position: absolute;
  left: 0%;
  transform: skewX(-20deg) translate(-50%, -50%);
  top: 50%;
}

.button-skewed .button.right {
  margin-right: 1.7vw;
  width: 200%;
  position: absolute;
  transform: skewX(-20deg) translate(100%, -50%);
  top: 50%;
  right: 50%;
}
.button-skewed .button .titleleft {
  position: absolute;
  top: 50%;
  left: 71%;
  transform: skewX(20deg) translate(-50%, -50%);
  display: inline-block;
  font-family: montserrat;
  color: white;
  font-size: 2.6vw;
  text-shadow: 2px 2px 5px #000;
}

.button-skewed .button .titleright {
  position: absolute;
  top: 50%;
  left: 12%;
  transform: skewX(20deg) translate(-50%, -50%);
  display: inline-block;
  font-family: montserrat;
  color: white;
  font-size: 2.6vw;
  text-shadow: 2px 2px 5px #000;
}

.button-skewed img {
   position: relative;
  background-size: cover;
}

.mask-outer-left {
  position: absolute;
  left: 0;
  top: 0;
  height: calc(100% - 2vw);
  margin-top: 1vw;
  margin-bottom: 1vw;
}
.mask-outer-left:before {
  content: '';
  background: white;
  position: absolute;
  height: 200%;
  width: 100%;
  top: 50%;
  left: 49%;
  transform: translate(-50%, -50%);
}
.mask-outer-right {
  position: absolute;
  right: 0;
  top: 0;
  height: calc(100% - 2vw);
  margin-top: 1vw;
  margin-bottom: 1vw;
}
.mask-outer-right:before {
  content: '';
  background: white;
  position: absolute;
  height: 200%;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
<div class="wrap">
  <div class="button-skewed"><a class="button left" href="#"><span class="titleleft">title here</span></a><span class="mask mask-outer-left"></span><a class="button right" href="#"><span class="titleright">title here</span></a><span class="mask mask-outer-right"></span></div>
</div>
<br>
<div class="wrap">
  <div class="button-skewed"><a class="button left" href="#"><span class="titleleft">title here</span></a><span class="mask mask-outer-left"></span><a class="button right" href="#"><span class="titleright">title here</span></a><span class="mask mask-outer-right"></span></div>
</div>

最佳答案

您可以简单地添加第二个向相反方向倾斜的 css 类。也许有人有更优雅的解决方案:

.button-skewed .button img {
  transform: skewX(20deg)
}

.wrap {
  position: relative;
  width: 95vw;
  height: 20vw;
  margin-right: auto;
  margin-left: auto;
  background: white;
  overflow: hidden;
}
.button-skewed .button {
  width: 98%;
  height: 100%;
  background: black;
  display: inline-block;
  text-align: center;
  box-shadow: inset 0 0 0 1vw #008080, inset 0 0 0 1.1vw #fff;
}
.button-skewed .button:hover ~ span {
  background: #007a7a !important;
}
.button-skewed .button:hover ~ span:before {
  background: #007a7a !important;
}
.button-skewed .button:hover {
  background: #007a7a;
  box-shadow: inset 0 0 0 1vw #007a7a, inset 0 0 0 1.1vw #fff;
}
.button-skewed .button.left {
  margin-left: -1.7vw;
  position: absolute;
  left: 0%;
  transform: skewX(-20deg) translate(-50%, -50%);
  top: 50%;
}

.button-skewed .button.right {
  margin-right: 1.7vw;
  width: 200%;
  position: absolute;
  transform: skewX(-20deg) translate(100%, -50%);
  top: 50%;
  right: 50%;
}
.button-skewed .button .titleleft {
  position: absolute;
  top: 50%;
  left: 71%;
  transform: skewX(20deg) translate(-50%, -50%);
  display: inline-block;
  font-family: montserrat;
  color: white;
  font-size: 2.6vw;
  text-shadow: 2px 2px 5px #000;
}

.button-skewed .button .titleright {
  position: absolute;
  top: 50%;
  left: 12%;
  transform: skewX(20deg) translate(-50%, -50%);
  display: inline-block;
  font-family: montserrat;
  color: white;
  font-size: 2.6vw;
  text-shadow: 2px 2px 5px #000;
}

.button-skewed img {
   position: relative;
  background-size: cover;
}

.mask-outer-left {
  position: absolute;
  left: 0;
  top: 0;
  height: calc(100% - 2vw);
  margin-top: 1vw;
  margin-bottom: 1vw;
}
.mask-outer-left:before {
  content: '';
  background: white;
  position: absolute;
  height: 200%;
  width: 100%;
  top: 50%;
  left: 49%;
  transform: translate(-50%, -50%);
}
.mask-outer-right {
  position: absolute;
  right: 0;
  top: 0;
  height: calc(100% - 2vw);
  margin-top: 1vw;
  margin-bottom: 1vw;
}
.mask-outer-right:before {
  content: '';
  background: white;
  position: absolute;
  height: 200%;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.button-skewed .button img {
  transform: skewX(20deg)
}
<div class="wrap">
  <div class="button-skewed"><a class="button left" href="#"><img src="https://fxfactory.com/downloads/docs/noiseindustries/fxfactorypro/Thumbnails/Stripes.jpg"/><span class="titleleft">title here</span></a><span class="mask mask-outer-left"></span><a class="button right" href="#"><span class="titleright">title here</span></a><span class="mask mask-outer-right"></span></div>
</div>
<br>
<div class="wrap">
  <div class="button-skewed"><a class="button left" href="#"><span class="titleleft">title here</span></a><span class="mask mask-outer-left"></span><a class="button right" href="#"><span class="titleright">title here</span></a><span class="mask mask-outer-right"></span></div>
</div>

关于html - 将图像放置在不规则形状的 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665156/

相关文章:

javascript - 大写 HTML <option> selected 属性

html - 如何在不使用 ID 或类名的情况下识别 DIV

javascript - 在单击图像上打开模态(使用单个模态的多个图像)

html - 如何超链接包含图像的跨度

angular - flex 容器和 ngIf 水平居中

javascript - Adobe Flash Professional CC - HTML5 Canvas - 主时间轴

javascript - 为动态创建的嵌套 div 添加 onclick href

javascript - jQuery css() 函数更改 'a' 属性而不是 'a:hover' 属性

html - 在导航下方添加社交媒体图标

html - div 相对父级之外的绝对 div 可见性