Можно ли нарисовать тройную границу только на одной стороне прямоугольника? - PullRequest
0 голосов
/ 03 июля 2018

Мне бы хотелось иметь тройную границу только с одной стороны прямоугольника без использования тега Extra Html. Код, который я пробовал до сих пор, приведен ниже.

Способ № 1

#element {
  width: 100px;
  height: 100px;
  box-shadow: 0 0 0 3px #000, 0 0 0 6px #f00, 0 0 0 9px #000;
}
<div id="element"></div>

Способ № 2

#element {
  width: 100px;
  height: 100px;
  border: 3px solid black; /* inner border */
  box-shadow: 0px 0px 0px 15px black; /* outer 'border' */
  outline: 12px solid green; /* fill */
  margin-left: 30px;
  margin-top: 30px;
}
<div id="element"></div>

Но это можно использовать только в том случае, если вам нужна тройная граница на всех сторонах, вместо этого мне нужна только тройная граница на одной стороне. Возможно ли это? Пожалуйста, помогите мне

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Вы можете использовать before и after для достижения этой цели.

#element {
  width: 100px;
  height: 100px;
  border-right: 5px solid black; /* inner border */
  /* box-shadow: 0px 0px 0px 15px black; */ /* outer 'border' */
  /* outline: 12px solid green; */ /* fill */
  margin-left: 30px;
  margin-top: 30px;
}
.triple-right {
  position: relative;
}
.triple-right:before, .triple-right:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 5px;
}
.triple-right:before {
  background-color: green;
  right: -10px;
}
.triple-right:after {
  background-color: black;
  right: -15px;
}
<div id="element" class="triple-right"></div>
0 голосов
/ 03 июля 2018

Вот еще одна идея, использующая градиент:

#element {
  width: 100px;
  height: 100px;
  background:
    linear-gradient(#000,#000) right/ 5px 100%,
    linear-gradient(red,red)   right/ 10px 100%,
    linear-gradient(blue,blue) right/ 15px 100%;
    /*And so on if you want more border*/
    
 background-repeat:no-repeat;
  
}
<div id="element"></div>
0 голосов
/ 03 июля 2018

Использование этого свойства CSS

box-shadow: 5px 0px 0 0px #000, 10px 0px 0 0px #f00, 15px 0px 0px 0px #000;

#element {
  width: 100px;
  height: 100px;
  box-shadow: 5px 0px 0 0px #000, 10px 0px 0 0px #f00, 15px 0px 0px 0px #000;
}
<div id="element"></div>
...