javascript - 我怎样才能 "word wrap"容器 div 中的 div?

标签 javascript jquery html css

我正在制作一个逗号分隔的“标签”类型系统,我希望标签从左到右滚动,然后如果下一个标签会导致该行比容器的最大宽度更宽,则转到下一行.

如果我使用 <span>,我会得到不同的结果或 <div>

<span class="tag"><span class="tagspan" ></span></span>

<div class="tag"><span class="tagspan" ></span></div>

但都没有正确换行到下一行。 (如果我使用 span 它会换行到下一行,但它会将标签分成两半并将其余部分放在下一行)。

肯定有一个简单的解决方法。我试图避免必须计算每条线的宽度并将其当前宽度与添加下一个标签时的宽度进行比较,然后决定是否需要换行。

如有任何建议,我们将不胜感激。

JS Bin Here

jQuery:

$('document').ready( function() {
var value;  
var tag;
var cloned;
$('#tag').on( 'change keyup', function(){
value = $('#tag').val();
tag = value.split(',');
if (tag[1] != null && tag[0] !== ''){
cloned = $('.tag').first().clone().appendTo('#container');
  $(cloned).find('span').html(tag[0]);
  $(cloned).css({'opacity' : '1', 'width' : $(cloned).find('span').width() + 'px'}); 
  $('#tag').val('');

}
  if (tag[1] != null && tag[0] === ''){
  $('#tag').val('');
}

    console.log($('.tagspan').width() + 'px');
});


});

最佳答案

您可以在标签元素而不是容器中使用 float:left 并删除 display:inline-flex 属性,如果您的标签到达行尾,该属性会导致换行。编辑:将外部 span 元素更改为 div 以获得该效果。

//谢谢加里 ;)

关于javascript - 我怎样才能 "word wrap"容器 div 中的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154497/

相关文章:

javascript - 如何在javascript中为函数名称附加两个字符串或数字

javascript - React - 将组件动态加载到页面中

javascript - 在谷歌地图上拖动标记时有没有办法强制 Dragend 事件

javascript - AngularJS 自定义顺序和限制

javascript - 如何使用 JavaScript 和 CSS 不显眼地设置表单元素的样式?

javascript - 使用 Hammerjs 缩放图像

javascript - jQuery .bind 绑定(bind)函数未触发

php - 无法对 PHP 脚本使用 get 方法

html - Django 模板上的 URL 编码

html - 在 Bolt cms 中更改默认 base-2014 主题的背景图像