javascript - 宽度: auto problem

标签 javascript html css

我使用 div 制作了一个 list (我猜它类似于 Windows 中具有 LVS_EX_CHECKBOXES 扩展样式的单列 ListView ),并使用 JS 和关联标签在其中插入复选框,每个复选框都在自己的行上。每行看起来像这样

<label for="cb" style="white-space: nowrap;">Label<input type="checkbox" id="cb" /></label>

我已将 div 的宽度设置为自动,以便它根据内容自动调整大小,并确保标签不会包裹在空白处,但这会导致 div 宽度小于强制水平的内容滚动条出现。

下面是 Firebug 报告的由 JS 生成的 HTML 代码示例:

<div class="employees_list_column">
<div id="employees" class="check_list_wx" style="height: 130px; width: auto;">
<label style="white-space: nowrap" for="checklistwx_employees_35">
<input id="checklistwx_employees_35" type="checkbox" name="checklistwx_employees_35">E*** I*****
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_45">
<input id="checklistwx_employees_45" type="checkbox" name="checklistwx_employees_45">F*** P*****
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_34">
<input id="checklistwx_employees_34" type="checkbox" name="checklistwx_employees_34">J******* C***
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_37">
<input id="checklistwx_employees_37" type="checkbox" name="checklistwx_employees_37">J****** M*****
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_1">
<input id="checklistwx_employees_1" type="checkbox" name="checklistwx_employees_1">L**** M***********
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_2">
<input id="checklistwx_employees_2" type="checkbox" name="checklistwx_employees_2">M****** F*******
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_3">
<input id="checklistwx_employees_3" type="checkbox" name="checklistwx_employees_3">N*** A*******
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_4">
<input id="checklistwx_employees_4" type="checkbox" name="checklistwx_employees_4">O****** P*******
</label>
<br/>
<label style="white-space: nowrap" for="checklistwx_employees_5">
<input id="checklistwx_employees_5" type="checkbox" name="checklistwx_employees_5">P*** T******
</label>
<br/>
</div>
</div>

还有 CSS:

element.style {
  height: 230px;
  width: auto;
}

  .check_list_wx {
  border: 1px solid #BBBBBB;
  margin: 10px;
  overflow: auto;
}

.employees_list_column {
  float: left;
  line-height: 24px;
}

知道为什么我的 div 宽度小于内容吗?

最佳答案

您的 CSS 中有一个拼写错误。 check_list_wx 被视为 DOM 节点类型而不是类引用,因为它缺少前面的 .。由于它永远不会获得 display:inline-block; 赋值,因此它继续被视为 block 元素并占据父级的整个宽度。

改变

check_list_wx {
  border: 1px solid #BBBBBB;
  display: inline-block;
  overflow: auto;
}

.check_list_wx {
  border: 1px solid #BBBBBB;
  display: inline-block;
  overflow: auto;
}

http://jsfiddle.net/AlienWebguy/zMQey/

关于javascript - 宽度: auto problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823691/

相关文章:

javascript - 在 Cypress 中检查输入值是否小于 x 的正确方法是什么?

html - 填充未按预期工作,CSS、HTML

javascript - 如何在 Django bool 字段中使用切换开关?

javascript - Bootstrap 网站横幅在窗口调整大小时失真

javascript - 如何制作响应式图像?

javascript - 未捕获的类型错误 : Assignment to constant variable in javascript module

html - 将 td 显示的 div 居中

Chrome 中的 HTML 选择元素幻像填充

javascript - 在html中将一个页面内容插入到另一个页面

javascript - xkcd的简单编写器中立陶宛字母将文本拆分为单词(Ace Editor)