绝对位置的图例在浏览器中的行为不同

Posted

技术标签:

【中文标题】绝对位置的图例在浏览器中的行为不同【英文标题】:Legend in absolute position behaves different in browsers 【发布时间】:2018-02-09 08:23:21 【问题描述】:

我在 ChromeIE11 和 (Safari10 中的 fieldset 中定位 legend 时遇到了不同的行为问题 - 尽管我'不确定) 与 FirefoxSafari 11

我希望看到 legend 在 Chrome 中的相同行为,但是当我添加绝对位置时,它并没有多大帮助。

fieldset,
label,
input 
	position: absolute;
	display: block;
<fieldset style="height: 150px; left: 5px; top: 45px; width: 460px;">
    <legend>Original Legend</legend>
    <label style="left: 5px; top: 0px;">Label:</label>
    <input class="readonly" style="left: 80px; top: 0px; width: 180px;" readonly="" tabindex="-1" type="text">
</fieldset>

预期行为类似于 Chrome、IE11、Safari 10。Legend 在定位 Fieldset 内的元素时考虑在内)

Safari 11 和 Firefox 中的不良行为: ((LegendFieldset内部定位元素时会考虑到)

【问题讨论】:

预期的行为是什么? 我稍后会添加截图 所以你想要两个文本重叠......? @CBroe 目标是在 Safari 11 中的 Fieldset 内定位元素时不考虑图例 所以您只是想通过绝对定位将每个元素固定到位? 【参考方案1】:

我在输入、标签和图例标签中添加了相对位置,并为输入和标签添加了内联块显示,因此它们在同一行:

input
   left: 80px;
   top: 0px;
   width: 180px;
   position: relative;
   display: inline-block;

label
   left: 5px;
   top: 0px;
   position: relative;
   display: inline-block;

这是一个 jsfiddle:

https://jsfiddle.net/yswjy9k3/2/

编辑:你也可以删除所有的定位,你会有完全相同的行为,这里是没有定位的jsfiddle:

https://jsfiddle.net/yswjy9k3/4/

【讨论】:

我只需要知道如何在Fieldset中定位元素时不考虑Legend。 你可以删除位置:relative;在传说中,它不会改变任何东西,我认为问题更多在于输入和标签中的绝对位置,它们的定位方式相同,这就是你有这种效果的原因(我改变了 jsfiddle)

以上是关于绝对位置的图例在浏览器中的行为不同的主要内容,如果未能解决你的问题,请参考以下文章

excel图表图例怎么设置

获取元素在浏览器中的绝对位置(从jquery1.8中抠出来)

Matlab:复制图例位置的“外部”缩放行为

如何用css使一个用绝对定位的图片定位在网页一个具体位置,不随网页大小等改变位置!

如果元素的位置是绝对的,浏览器的渲染是不是会重排?

Flex-box 项目无法在 chrome 上正确重新渲染