html - 浏览器之间内联元素内的绝对定位不一致

标签 html css css-position

我目前正在努力解决 Firefox 和 Chrome 之间的一些差异,当将绝对定位元素放置在具有 display:inline; 的相对定位元素中时,它们会表现出不同的行为。 .

在 Chrome 中,以下示例将“Foo”标签放在文本输入的右下角的顶部,而在 Firefox 中,“Foo”标签放在输入上方的“Example”文本的顶部盒子。

.box {
  width: 300px;
  border: 1px solid black;
}
.relative-box {
  position: relative;
}
.relative-box::after {
  content: "Foo";
  position: absolute;
  bottom: 0px;
  right: 0px;
  background: #AAA;
}
input[type="text"] {
  display: inline-block;
  width: 260px;
}
<div class="box">
  <label class="container">
    <span class="relative-box">
      Example:
      <input type="text"/>
      </span>
  </label>
</div>

我很想知道是否有任何方法可以保持完全相同的功能,包括使用 <label> ,同时还获得“Foo”文本的一致呈现。

我最好有一个不涉及更改 display:inline; 的解决方案其他任何事情,因为对于我的应用程序,这也会产生额外的不良影响。

PS:请注意,这是一个最小的工作示例。这看起来对用户非常不友好的事实是因为很多样式未应用于此示例。

最佳答案

Firefox 保持每个框的大小唯一。因此,它不会使相关框与输入的大小相同。

如果您在“相对框”div 中使用显示: block ,它将适合您的 child 在 firefox 中的大小。因此两者的行为将相同。

关于html - 浏览器之间内联元素内的绝对定位不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58313933/

相关文章:

html - css 响应式设计 : how to improve my page ?

html css 布局未按预期呈现

html - Div类是错误的方式吗?

php - 我在 Laravel 5 中的哪里放置自定义字体?

css - 如何为绝对定位的 div 添加底边距?

javascript - HTML5 Canvas .translate 和 .scale 导致图像出现锯齿状边缘

javascript - 无法在此 Div 之外调用函数

asp.net - 从 IFrame 打印页面时,为什么我会看到不同的字体大小?

html - 使用 flexbox 将文本居中,然后将按钮居中,剩下的 50%

html - 垂直居中,高度可变