Bootstrap: 移除表单字段边框

26
我刚接触CSS,正在使用Bootstrap,并想以两种方式使用表单:有或没有表单字段周围的边框。我应该如何最好地实现这个目标?这是一个Bootstrap表单的示例,我想要去掉边框:plnkr.co/edit/xxx1Wy4kyCESNsChK4Ra?p=preview。
出于好奇,我想这样做的原因是,我想先向用户展示他所拥有的数据,然后根据表单是否处于“编辑”模式来切换显示边框。用户可以通过点击“编辑”链接或开始编辑字段来进入“编辑”模式。
5个回答

74
在这个例子中,要移除边框只需写下以下代码:
.form-control {
    border: 0;
}

在你的 CSS 文件中。

尽管这会移除所有表单字段的边框,但更灵活的方法是为想要移除边框的表单字段附加一个类,因此你的 HTML 代码将如下:

<input type="email" class="form-control no-border" id="inputEmail3" placeholder="Email">

并且您的CSS:

.no-border {
    border: 0;
    box-shadow: none; /* You may want to include this as bootstrap applies these styles too */
}

谢谢你的回答,Jon!有一件事情,就是在应用了no-border-class后,阴影仍然存在(我没有忘记复制box-shadow行)。请参考plunker链接:http://plnkr.co/edit/xxx1Wy4kyCESNsChK4Ra?p=preview - EricC
抱歉 @EricC,我已经更新了我的答案,应该是 box-shadow: none; 而不是 box-shadow: 0; - 这将移除阴影。 - Jon Kyte
非常感谢,Jon! :) - EricC
一个相关的问题,Jon,也许你也知道:对于一个下拉列表,右侧有一个小箭头向上和向下的符号。是否有一种方法可以使用CSS在视觉上删除它? - EricC
没有看到任何代码很难给出确切的答案,但是bootstrap通常会像这样放置下箭头<span class="caret"></span>,您可以在CSS中定位该类并告诉它display: none;...例如.caret { display: none; }。再次强调,这将隐藏具有.caret类的任何内容。更好的方法是将.hide添加到HTML (<span class="caret hide"></span>) 或者直接删除该行HTML。希望这有所帮助@EricC - Jon Kyte

29

在Bootstrap 4中,您可以将border-0类添加到元素中以去除其边框。

其他可用的类 - Bootstrap 4边框

<span class="border-0"></span>             /* remove all borders */
<span class="border-top-0"></span>         /* remove top border */
<span class="border-right-0"></span>       /* remove border on the right */
<span class="border-bottom-0"></span>      /* remove bottom border */
<span class="border-left-0"></span>        /* remove border on the left */

这里是您所要求的一个有效示例:

$("#myButton").click(function() {
  $("#myInput").toggleClass('border-0')
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <input id="myInput">
  <input id="myButton" type="button" value="Toggle Border">
</form>


1

这是来自 Bootstrap v5.2 的边框类。

<html>
<head>
<title>Page Title</title>
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
</head>
<body>

<input type="text" class="border-0" value="" placeholder="Enter value" />

</body>
</html>


1
你可以在你的示例中删除 border 类。border 类设置了一个边框,然后被 border-0 移除。 - Jon Kyte

1
要从输入框中移除Bootstrap的默认边框/阴影,您可以使用Bootstrap内置的类shadow-none
<input type="text" class="form-control shadow-none" placeholder="Enter name"/>

0

我直接进入了“inputs”。

input {
    border: 0;
}
<input type="text" name="name" class="form-control" placeholder="Name">


    

This will remove all the borders of your form-inputs.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接