javascript - 如何在动态设置时(在超时内)使列表项尊重 ul padding-right

标签 javascript html css html-lists settimeout

我面临的问题是,当尝试设置元素的 padding-right 属性时,在 setTimeout 中运行的代码中,其中的 li 元素未正确调整大小。 当我不在 setTimeout 内时,问题不会发生(或至少很少发生)。

有人可以确认这是一个 webkit 错误 或者指出解决方案吗?

我能够在 Chrome 和 Safari 中重现它。

我创建了 3 个场景(请使用 Chrome 和 Safari 进行测试):

  1. 静态 css 中带有 padding-right 的 ul - 显然有效 http://jsbin.com/ufifos/5/edit
  2. 在 js 代码中设置 padding-right 的 ul 不在 setTimeout 内 - 有效(大部分时间)参见 jsbin.com/ekazow/1/edit
  3. 在 setTimeout 内的 js 代码中设置了 padding-right 的 ul - 无法正常工作 http://jsbin.com/uzorux/1/edit

padding-right 已设置,但 li 元素未正确重绘。浏览器调整大小(或几次调整大小)可以修复它。

基本上代码是

setTimeout(function(){

    document.getElementById('container').style.paddingRight = '20px';

}, 2000);

最佳答案

这个规则有问题:

li {
   width: 100%;
}

它不在第一个“工作”测试中。删除它,它应该可以正常工作。您可能还需要在 li 上设置 display: block

关于javascript - 如何在动态设置时(在超时内)使列表项尊重 ul padding-right,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197826/

相关文章:

javascript - Chart.js 极地面积图。将标签更改为 45 度 Angular

javascript - 创建和循环 json 对象时出现问题

html - 最长行后显示额外行

php - 我怎样才能让我的图像在空白处居中?

html - 在 CSS 按钮外填充

javascript - React JS 组件在 Meteor 中渲染多次

javascript - 小数点后的值未在 Javascript 中计算

html - 响应式 Bootstrap 设计 : Priority of stacked Divs?

javascript - 如何获取不同复选框的值并计算那些选中的复选框的值并显示在输入字段中?

html - 如何使用 `content_for?`方法实现动态布局列?