如何在按钮的中心添加两行

How to add two lines in the center of a button

有一个带边框的按钮:3px solid #E82929;可以使用什么技术来添加像照片中那样的额外线条?

.btn {
  position: relative;
  width: 362px;
  height: 71px;
  color: #FFFFFF;
  background-color: #000000;
  border: 3px solid #E82929;
  font-family: 'Flamenco';
  font-style: normal;
  font-weight: 400;
  font-size: 24px;
  line-height: 25px;
  text-align: center;
}
<button class="btn">Забронировать столик</button>

使用渐变

.btn {
  position: relative;
  padding: 20px 50px;
  color: #FFFFFF;
  border: 3px solid #E82929;
  font-family: 'Flamenco';
  font-style: normal;
  font-weight: 400;
  font-size: 24px;
  line-height: 25px;
  text-align: center;
  
  background: linear-gradient(90deg, #E82929 40px,#0000 0 calc(100% - 40px), #E82929 0) 50%/100% 3px no-repeat;
  background-color: #000000;
}
<button class="btn">Забронировать столик</button>

你不需要额外的标记,因为它可以用 ::before and ::after 伪元素来完成。

假设左右两行的宽度应为 30px,左右内边距应为 10px,您可以将其添加到现有的 CSS :

.btn {
  position: relative;
  width: 362px;
  height: 71px;
  color: #FFFFFF;
  background-color: #000000;
  border: 3px solid #E82929;
  font-family: 'Flamenco';
  font-style: normal;
  font-weight: 400;
  font-size: 24px;
  line-height: 25px;
  text-align: center;
}

/* extra code comes here */
.btn {
  padding: 0 40px; /* 30px line width + 10px padding */
}

.btn::before,
.btn::after {
  background-color: #E82929; /* border color */
  content: ''; /* content is mandatory for the element to show up */
  height: 3px; /* 3px border width */
  position: absolute;
  top: 50%; /* 50% from the top */
  transform: translateY(-50%); /* half of its height back to the top */
  width: 30px; /* 30px line width */
}

.btn::before {
  left: 0;
}

.btn::after {
  right: 0;
}
<button class="btn">Забронировать столик</button>

根据需要更改宽度和内边距。

它的作用:它在左右添加没有文本内容的 ::before and ::after 个伪元素,并将它们垂直居中。

如果您对细节有任何疑问,请随时提出。