在带有圆角的输入中添加按钮

时间:2019-04-25 13:48:32

标签: html css forms

Id希望输入文本时在输入中带有一个提交按钮,并且使用诸如border-radius之类的东西使边缘变圆

我在这个问题的第二个答案中使用css: How to add button inside input

#form {
    display:flex;
    flex-direction:row;
    border:1px solid grey;
    padding:2px;
    border-radius:50px; /* this is me trying to round edges of input*/
}

#input {
    flex-grow:2;
    border:none;
}

但是当我添加边框半径时,按钮不再出现在输入中 我该怎么办?

4 个答案:

答案 0 :(得分:1)

您的代码中有几个错误。首先,forminput是本机标记,它们在CSS中不需要井号。如果您为表单分配一个ID,则该ID将是您的#id(出于演示目的,我已将表单的ID指定为“ form”。

您可以为表单提供边界半径,但是要使按钮四舍五入而不对整个表单进行四舍五入,则需要在输入中添加边界半径。您可以使用输入(常规)为所有输入分配边界半径,或在CSS中指定类型input [type = submit]

希望这会有所帮助

#form {
  width: 60%;
  display: flex;
  flex-direction: row;
  border: 1px solid grey;
  padding: 2px;
  border-radius: 50px; /*you can remove this to avoid rounded corners on the form*/
}

input {
  flex-grow: 2;
  border: none;
  border-radius: 50px;
}
<form id="form">
  <input type="text" placeholder="text" />
  <input type="submit" value="Click here" />
</form>

答案 1 :(得分:0)

您必须在输入文本元素中添加边框和边框半径。 在您链接的示例中,就像这样:

<ul>...</ul>

编辑: 如果边框应该围绕两个元素,则可以将此CSS添加到按钮:

input[type="text"] {
    width: 200px;
    height: 20px;
    padding-right: 50px;
    border: 2px solid black;
    border-radius: 30px;
}

就像这里:http://jsfiddle.net/jeft24m6/

答案 2 :(得分:0)

这样的事情怎么样? <form>现在只是一个弹性容器,边框样式实际上已应用于输入和按钮。

#my-form {
  display: flex;
  flex-direction: row;
}

#my-form input,
#my-form button {
  border-radius: 10px;
  border: 1px solid grey;
  padding: 2px;
}

#my-form input {
  flex-grow: 2;
  border-right-width: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#my-form button {
  background: teal;
  color: white;
  border-left-width: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
<form id="my-form">
  <input type="text" />
  <button type="submit">my button</button>
</form>

答案 3 :(得分:0)

      
:root {
  --border-width: 4px;
  --border-radius: 10px;
  --height: 40px;
}

input[type="text"],
input[type="submit"] {
transition: box-shadow .3s;
}
input[type="text"] {
  width: 200px;
  height: var(--height);
  padding: 3px 60px 3px 5px;
  border-radius: calc(var(--border-width, 1px) + var(--border-radius, 10px));
  border-width: var(--border-width, 1px);
  box-sizing: border-box;
  border-color: blue;
  border-style: solid;
}

input[type="text"]:hover,
input[type="text"]:focus {
  outline: none;
  box-shadow: 0px 0px 2px 3px blue;
}

input[type="submit"] {
  transform: translateX(calc(-100% - var(--border-width, 1px)));
  height: calc(var(--height) - 2 * var(--border-width));
  background: blue;
  color: white;
  border: 0;
  -webkit-appearance: none;
  border-radius: 0 var(--border-radius, 10px) var(--border-radius, 10px) 0;
}
input[type="submit"]:hover,
input[type="submit"]:focus {
  outline: none;
  box-shadow: inset 0px 0px 2px 3px white;
}
<input type="text"><input type="submit">