为表单添加边框

新手上路,请多包涵

我编写了以下代码来创建表单,我已经为我的表单添加了一些样式。现在我想在我的表单中添加这样的边框。我很努力,但无法添加它。

谁能帮我做到这一点?

 .details {
  background-color: #eb4e24;
  height: 800px;
}
input[type=text],
#uexperience,
#equalification,
#roles {
  width: 86%;
  padding: 7px 7px;
  border: #c1c1c1 solid 1px;
  height: 40px;
  background: none;
  /*border-radius: 5px;*/
}
select {
  width: 28%;
  height: 37px;
  padding: 0 1em;
  background: none;
  border: #c1c1c1 solid 1px;
}
.border {
  border: #dbdbdb solid 1px;
}
table td {
  padding: 10px;
}
input[type=file] {
  border: #c1c1c1 solid 1px;
  height: 40px;
  padding: 8px 7px;
  width: 86%;
}
label {
  color: red;
}
#captcha {
  width: 77%;
}
.fa {
  font-size: 2em !important;
  color: #fff;
  padding-left: 15px;
}
form {
  margin-top: 15%;
  /*border: 1px solid;*/
}
 <body>
  <div class="container">
    <div class="col-lg-12">
      <div class="col-lg-6">
        <form>
          <table width="100%">
            <tbody>
              <tr>
                <td>
                  First Name
                  <label>*</label>
                  <br>
                  <input type="text" name="fname" id="fname" class="">
                </td>
              </tr>
              <tr>
                <td>
                  Email Address
                  <label>*</label>
                  <br>
                  <input type="text" name="email" id="email" class="">
                </td>
              </tr>
              <tr>
                <td>
                  Job position
                  <label>*</label>
                  <br>
                  <input type="text" name="position" id="position" class="">
                </td>
              </tr>
              <tr>
                <td>
                  Current Employer
                  <label>*</label>
                  <br>
                  <input type="text" name="currentemp" id="currentemp" class="">
                </td>
              </tr>
            </tbody>
          </table>
        </form>
      </div>
      <div class="col-lg-6 details">
        <form>
          <table width="100%">
            <tbody>
              <tr>
                <td>
                  Last Name
                  <label>*</label>
                  <br>
                  <input type="text" name="lname" id="lname" class="">
                </td>
              </tr>
              <tr>
                <td>
                  Mobile No.
                  <label>*</label>
                  <br>

                  <input type="text" name="phone" id="phone">
                </td>
              </tr>
              <tr>
                <td>
                  Experience
                  <label>*</label>
                  <br>
                  <select id="uexperience" class="decorated">
                    <option id="selectHeader">--------- Select Experience --------------</option>
                    <option value="1-2 YEAR">1-2 Years</option>
                    <option value="1-3 YEAR">1-3 Years</option>
                    <option value="2-4 YEAR">2-4 Years</option>
                    <option value="4-6 YEAR">4-6 Years</option>
                    <option value="6-10 YEAR">6-10 Years</option>
                    <option value=">10 YEAR">&gt; 10 Years</option>
                  </select>
                </td>
              </tr>
              <tr>
                <td>
                  Enter code Here
                  <label>*</label>
                  <br>
                  <input type="text" name="captcha" id="captcha"><i class="fa fa-refresh" aria-hidden="true"></i>
                </td>
              </tr>

            </tbody>
          </table>
        </form>
      </div>
    </div>
  </div>
</body>

完整代码在这里 https://jsfiddle.net/qxoos44h/

原文由 krish 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 510
2 个回答

如果你想有两种颜色的边框,你可以使用这个小技巧:

 body {
  background-image: -webkit-linear-gradient(left, #FFF 50%, #000 50%);
  background-image: -moz-linear-gradient(left, #FFF 50%, #000 50%);
  background-image: -o-linear-gradient(left, #FFF 50%, #000 50%);
  background-image: linear-gradient(to right, #FFF 50%, #000 50%);
}

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
   box-sizing: border-box;
}

form {
  width: 500px;
  height: 250px;
  border-left: 10px solid #000;
  border-right: 10px solid #FFF;
  padding: 10px 0;
  margin: 50px auto;
  background-image: -webkit-linear-gradient(left, #000 50%, #FFF 50%), -webkit-linear-gradient(left, #000 50%, #FFF 50%);
  background-image: -moz-linear-gradient(left, #000 50%, #FFF 50%), -moz-linear-gradient(left, #000 50%, #FFF 50%);
  background-image: -o-linear-gradient(left, #000 50%, #FFF 50%), -o-linear-gradient(left, #000 50%, #FFF 50%);
  background-image: linear-gradient(to right, #000 50%, #FFF 50%), linear-gradient(to right, #000 50%, #FFF 50%);
  background-position: 0 0, 0 100% ;
  background-repeat: no-repeat;
  background-size: 100% 10px;
}
 <form></form>

这是如何运作的?

左右边框是真正的边框,而顶部和底部的边框实际上只是一个背景图像。

为了制作“颜色分割”效果,我们将使用背景图像作为顶部和底部边框。我们通过制作两个相同的渐变来做到这一点。

第一种颜色0% 开始,到 50% 结束。

第二种颜色50% 开始到 100% 结束

然后我们使用 background-position 将第一个渐变放在顶部,第二个放在 form 的底部。

为了使我们的“假边框”与我们的“真实边框”具有相同的厚度,我们使用 background-size 来更改图像的宽度和高度。

最后,我们还将背景设置为 no-repeat 。否则渐变会填满整个表格,从而破坏边界错觉。


但在你的情况下,还有另一种简单的方法。

由于您使用彼此相邻的列,因此您可以将边框应用于这些边框,并将它们设置为不同的颜色,并隐藏右侧列上的 left-borderright-border 在左栏。像这样:

 .col-lg-6 {
  height: 800px;
  border: 10px solid #eb4e24;
  border-right: 0;
}

.col-lg-6.details {
  border: 10px solid #FFF;
  border-left: 0;
}

为了获得最佳效果,您应该为两列设置相同的高度,并将“分色”背景应用于列的容器,并带有填充。否则右栏的白色边框会与背景融为一体。


更新 - 居中的标题

如果你想在顶部边框上添加一个标题,这样看起来文本是重叠的,你可以这样做:

 h1 {
  display: inline-block;
  background-image: -webkit-linear-gradient(left, #FFF 50%, #eb4e24 50%);
  background-image: -moz-linear-gradient(left, #FFF 50%, #eb4e24 50%);
  background-image: -o-linear-gradient(left, #FFF 50%, #eb4e24 50%);
  background-image: linear-gradient(to right, #FFF 50%, #eb4e24 50%);
  font-size: 40px;
  text-transform: uppercase;
  white-space: nowrap;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate3d(-50%,0,0);
  padding: 0 40px;
  margin: 0 auto;
  z-index: 10;
}

h1 span {
  background: -webkit-linear-gradient(left, #eb4e24 50%, #FFF 50%);
  background: -moz-linear-gradient(left, #eb4e24 50%, #FFF 50%);
  background: -o-linear-gradient(left, #eb4e24 50%, #FFF 50%);
  background: linear-gradient(to right, #eb4e24 50%, #FFF 50%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

h1 使标题居中并具有背景渐变,与 .container 处的匹配,因此看起来一部分已被剪掉。

span 也使用渐变作为背景,但反转为其父级。然后使用 background-clip: textcolor: transparent 将渐变放在文本上。

请参阅下面的 Fiddle 中的完整代码:

工作小提琴

希望这可以帮助你。

原文由 TheYaXxE 发布,翻译遵循 CC BY-SA 3.0 许可协议

也许使用 2 种形式的方法更容易,因为这样您就不必担心字体颜色在 2 个背景上可读。但这仍然导致不得不担心它们的高度相同。

然后您可以在每个表单周围的容器上使用边框并删除它们之间的填充

.left{
padding-right: 0;
}
.left form{
border-style: solid;
border-right-style: none;
height: 620px;

}

.right{
padding-left: 0;
background-color: #eb4e24;
}

.right form{
border-style: solid;
border-left-style: none;
border-color: white;
height: 620px;
}

https://jsfiddle.net/qxoos44h/1/

原文由 JulesDoe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏