HTML布局在小提琴和浏览器上的呈现方式不同

时间:2016-11-15 09:52:04

标签: javascript jquery html css

我制作了一个小网页,其源代码可在FIDDLE上找到。它使用了jquery plugin我自动完成的功能。

插件在初始化输入后添加一个新的div (.mridautocomplete-list),其中包含自动完成列表:

<input id="test1">
<div class="mridautocomplete-list" style="display: block; left: 8px; width: 169px; position: absolute; background-color: white; border: 1px solid rgb(221, 221, 221); max-height: 150px; overflow-x: hidden; overflow-y: scroll; font-family: Arial; font-size: 13.3333px; z-index: 8888;">
    <p class="mrid-autocomplete-item" style="margin: 0px; padding-left: 2px; text-align: left; font-size: 13.3333px; cursor: default; background-color: white;"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="mridautocomplete-item-image" style="height: 11px; width: 11px;"><span style="color: #4682B4; font-weight: bold;">a</span>aa</p>
    <p class="mrid-autocomplete-item" style="margin: 0px; padding-left: 2px; text-align: left; font-size: 13.3333px; cursor: default; background-color: white;"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="mridautocomplete-item-image" style="height: 11px; width: 11px;">b<span style="color: #4682B4; font-weight: bold;">a</span>b</p>
</div>

<input class="test2">
<div class="mridautocomplete-list"></div>

<input class="test3">
<div class="mridautocomplete-list"></div>

问题是:

此网页在fiddle

上完全按预期呈现

但是当我在我的浏览器上运行相同的代码(没有小提琴)时,它没有正确显示,移动所有元素(显示在附近的屏幕上)

任何人都可以解释可能导致问题的原因吗?

screenshot 1

screenshot 2

2 个答案:

答案 0 :(得分:1)

您的80%课程的宽度为display: block

其他输入的默认宽度为173px。

如果您将小提琴窗口调整到更大的宽度,您将看到同样的问题。

要解决此问题,您可以在.test2课程中添加this.get()

答案 1 :(得分:1)

您是否已经尝试过显示CSS属性?将第二个输入设置为“display:block”会强制第三个输入到下一行。

另一种选择是将自动完成Javascript放在关闭正文标记之前。这对我来说也适用于Chrome,Firefox和Safari。