javascript - css float 元素错误

标签 javascript jquery html css

我有一个关于 div 和输入 float 的小问题:

enter image description here

这是我的问题,当你在输入框中输入并按下回车时,使用 jQuery 脚本,将添加一个 div 元素,但如果我们写了超过 4 个元素,输入框保留在第一行和元素下去。谁能帮帮我?

div.box {
  width: 300px;
  height: 200px;
  border: 1px solid #ddd;
  padding: 5px;
}
div.box>div.element {
  background-color: #00B5B5;
  display: inline-block;
  color: #fff;
  font-size: 11px;
  text-transform: uppercase;
  padding: 2px 8px 2px 8px;
  border-radius: 5px;
  line-height: normal;
  cursor: pointer;
  margin-right: 4px;
  margin-bottom: 4px;
  float: left;
}
div.box>input#group-input {
  height: 11px;
  /*border: none;*/
  font-size: 12px;
  outline: none;
  vertical-align: top;
  width: 8px;
}
<div class="box" id="box-ins-group">
  <div class="element" id="1">prova</div>
  <input type="text" id="group-input">
</div>

我已经尝试了所有方法但仍然无法正常工作 :( 抱歉我的英语不好

-- Jquery代码:

var counter = 0;
$('#group-input').keypress(function(e) {
  if(e.which == 13) {
    if($('#group-input').val().length > 3) {
    $( "div#box-ins-group" ).append('<div class="element" id="'+counter+'">'+$("#group-input").val()+'</div>');
    $('#group-input').val(''); 
    counter++; 
   }
  }  
}); 

计数器是一个变量

最佳答案

你需要在输入上设置 float: left,然后在你的 js 中改变它:

$( "div#box-ins-group" ).append

到:

$( "input#group-input" ).before

问题是您将这些元素附加到包含 .element div 和输入的元素,因此即使您修复了输入上的 float 问题,新的 .element div 也会始终出现在DOM 中的输入。这是一个 fiddle .

还值得注意的是,您可以删除 display: inline-block,因为当您使用 float 时它会被忽略。

关于javascript - css float 元素错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249924/

相关文章:

javascript - 手机网站测试 : Emulators vs Real Devices

html - 背景图像在 css 中不起作用

asp.net-mvc - ASP.NET MVC,CSS 样式仅适用于部分 View ,如 &lt;style scoped>

javascript - 是否可以在 title 属性中添加 html?

Jquery 对话框打开另一个页面

jquery - 剑道网格 incell 编辑中的组合框

javascript - 处理 HTML 中的多语言段落字体样式

java - MongoDB 返回最近一个月每天的文档数

javascript - Node.js 请求将变音符号变为 �

javascript - 无论如何在 Firefox 中保存 javascript 断点?