javascript - 如何动态扩展 div 的宽度以适合一个非常长的单词?

标签 javascript html css uiwebview

我正在尝试使用 div、css 和 jQuery 复制基本 HTML 表格的功能。主要要求是允许每一行从同一位置开始,而不管该行中其他列的结束位置。他们都需要一起开始。

我正在使用 this fiddle 中的代码,到目前为止它运行良好。

问题是由于我的应用程序的性质,我的列的宽度需要缩小以适应更多的列。许多这些列包含来自其他语言的文本,这使得该词可能比我为该列分配的列宽更宽(我通过将 View 的宽度 (100%) 除以列数来做到这一点)。

fiddle 展示了这个问题的一个例子,一个长词比列宽。在保留我迄今为止建立的所有其他功能的同时,是否有可能使 div 的宽度至少为 X,但如果有一个非常宽的词,它扩展并变得和那个词一样宽?

如果内容增长到比 View 宽度还宽,那是完全没问题的,这意味着如果它必须增长到 120% 或其他什么,滚动到一边是没有问题的。
编辑:更新的 fiddle 链接

最佳答案

我发现这样做的唯一方法是使用一些 hack。

1。创建一个临时div

   //place in new element
   $("body").append("<div id='testParent'></div>");

2。将每个单词作为 span 添加到临时 div 中

   var words = $(this).html().split(" ");
   for(var i = 0; i < words.length; i++)
   {
        $("#testParent").append("<span>"+words[i]+"</span>");
   }

3。设置 CSS:

div#testParent
{
    display: inline-block;
    width: auto;
}

div#testParent span{
    display:block;
}

4。获取临时 div 的宽度并相应地设置父 div 的宽度

   var width = $("#testParent").width();
   $("#testParent").remove();

   if(width > $(this).width())
       $(this).parent(".td-outer").width(width);

我将上面的代码应用到你的 fiddle 中的第一个元素:

JSFiddle

关于javascript - 如何动态扩展 div 的宽度以适合一个非常长的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160044/

相关文章:

jQuery change() 无法被 css 识别

javascript - Angular 识别从 root 导入?

javascript - 使用 jQuery 和 CSS 居中对象

javascript - 安装 Jasmine 进行自动化测试

html - 表单输入不起作用?

php - 在 html 设计中插入页面

html - 在容器中居中放置两个不同高度的文本元素

javascript - Highcharts 3 之类的菜单按钮不会显示

javascript - 如何在迷你图表中显示轴标签?

JavaScript、内存泄漏、垃圾收集。尝试简单的出路?