如何在一个按钮的链接之间添加垂直分隔符?

问题描述

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <Meta charset="utf-8">
  <Meta name="viewport" content="width=device-width,initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<a class="btn btn-primary"><i class="fa fa-angle-left"></i> 1</a>
<a class="btn btn-primary">2 <i class="fa fa-angle-right"></i></a>
</body>
</html>

我有两个带有图标的自举程序按钮。我想像一个按钮一样将它们组合在一起,并在竖排分隔符“ |”中像这样

enter image description here

为此,我尝试了不同的方法,但无法获得所需的结果。

解决方法

您可以通过使用:before并将其定位到该位置来尝试垂直线。 我创建了一个小示例,它可能会对您有所帮助。

HTML

<div class="button-wrapper">
  <button><1</button>
  <button class="last-btn">2></button>
</div>

CSS

.button-wrapper{
  display: flex;
}
.last-btn:before {
    content: '';
    position: absolute;
    top: 50%;
    height: 50%;
    background: white;
    width: 1px;
    left: 0px;
    transform: translateY(-50%);
}
button{
  padding: 5px 10px;
  border: 0;
  position: relative;
  background: skyblue;
  color: #ffffff;
}

How to embed a UITableView in a custom view

,

您可以使用按钮组和CSS伪元素,例如:after 它并不完美,但我认为应该可以解决问题:-)

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Bootstrap Example</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <style>
            .btn-group > .btn{ position:relative;}
            .btn-group > .btn:after{
            position:absolute; right:0; top: 50%; 
            transform:translateY(-50%);
            content:''; width: 1px; height:1.25em;
            background-color:currentColor;
            }
            .btn-group > .btn:last-child:after{ content:none;}
        </style>
    </head>
    <body>
        <div class="btn-group">
            <a class="btn btn-primary"><i class="fa fa-angle-left"></i> 1</a>
            <a class="btn btn-primary">2 <i class="fa fa-angle-right"></i></a>
        </div>
    </body>
</html>

,

一些flexbox和伪元素魔术使它成为现实:-)

.wrapper {
  display: flex;
  overflow: hidden;
  border-radius: 5px;
  font-family: Helvetica;
  color: white;
  width: 80px;
  position: relative;
}

.wrapper::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  width: 1px;
  background: white;
  height: 60%;
}

.btn {
  background: #0a48ff;
  padding: 7px;
  width: 50%;
  text-align: center;
  cursor: pointer;
  transition: background 0.2s;
}

.btn:hover {
  background: #0a48ffdd;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<div class="wrapper">
  <div class="btn btn-left"><i class="fa fa-angle-left"></i> 1</div>
  <div class="btn btn-right">2 <i class="fa fa-angle-right"></i></div>
</div>

,

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <link
      rel="stylesheet"
      href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
    />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    <link
      rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
    />
    <style>
      .left {
        border-top-right-radius: 0rem;
        border-bottom-right-radius: 0rem;
      }
      .right {
        border-top-left-radius: 0rem;
        border-bottom-left-radius: 0rem;
      }
      .separator {
        display: inline-block;
        color: #d8d8d8;
        vertical-align: middle;
        border: 1px solid transparent;
        padding: 0.375rem 0.15rem;
        font-size: 1rem;
        line-height: 1.5;
        background-color: #007bff;
      }
    </style>
  </head>
  <body>
    <a class="btn btn-primary left"><i class="fa fa-angle-left"></i> 1</a
    ><span class="separator">|</span
    ><a class="btn btn-primary right">2 <i class="fa fa-angle-right"></i></a>
  </body>
</html>

,

这是另一种解决方案。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <link
      rel="stylesheet"
      href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
    />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    <link
      rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
    />
    <style>
      .left {
        border-top-right-radius: 0rem;
        border-bottom-right-radius: 0rem;
      }
      .right {
        border-top-left-radius: 0rem;
        border-bottom-left-radius: 0rem;
      }
      .left::after {
        content: "";
        position: absolute;
        top: 20%;
        left: 50%;
        height: 60%;
        background: rgba(255,255,0.6);
        width: 2px;
        margin-left: -1px;
        z-index: 10;
      }
      .wrap {
        position: relative;
        display: inline-block;
      }
    </style>
  </head>
  <body>
    <div class="wrap">
      <a class="btn btn-primary left"><i class="fa fa-angle-left"></i> 1</a
      ><a class="btn btn-primary right">2 <i class="fa fa-angle-right"></i></a>
    </div>
  </body>
</html>