img元素

时间:2017-10-16 12:21:14

标签: html css



img:after,
img:before {
  /*POSSIBLE SOLUTION WITH PSEUDO?*/
}

<img src="https://dummyimage.com/vga">
&#13;
&#13;
&#13;

我必须在img元素的左侧绘制两条垂直线。这些行应该width 5px。第一行位于img的左侧。在第二行开始之前,会有另一个5px的空格。

我发现此解决方案包含span元素:Using CSS to Draw 3 Vertical Lines on and Image

是否有更好的替代解决方案?我尝试使用伪:after:before,但没有&#39;得到它。有什么想法吗?

原始图片: enter image description here

带图片的图片 enter image description here

3 个答案:

答案 0 :(得分:5)

您需要包装图像并将伪元素放在包装上。试试这样:

.my-image-wrap {
    position: relative;
}

.my-image-wrap:before,
.my-image-wrap:after {
    content: '';
    position: absolute;
    display: block;
    width: 5px;
    background-color: red;
    left: 0;
    top: 0;
    bottom: 0;
}

.my-image-wrap:after {
    left: 10px;
}
<div class="my-image-wrap">
    <img src="https://dummyimage.com/vga">
</div>

答案 1 :(得分:2)

您可以将图像设为背景元素,然后添加边框和伪元素:

div {
  width: 600px;
  height: 300px;
  background: grey url("http://www.lorempixel.com/600/300");
  border-left: 5px solid red;
  box-sizing:border-box
}

div:after {
  content: "";
  width: 5px;
  height: 300px;
  margin-left: 10px;
  background: red;
  position: absolute;
}
<div></div>

答案 2 :(得分:1)

下面的代码段演示了如何使用应用于包含父元素的pseudo-elements来实现预期结果。

.img-wrapper:before,.img-wrapper:after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 5px;
    background: red;
    height: 99%;
}

.img-wrapper:before {
    left: 0;
}

.img-wrapper {
    position: relative;
}

.img-wrapper:after {
    left: 10px;
}
<div class="img-wrapper"><img src="https://dummyimage.com/vga"></div>