在没有“位置”属性的情况下实现绝对定位,使用边距/填充
Achieving Absolute positioning without Position attribute, using Margin/Padding
我正在努力构建基于电子邮件的HTML。现在我们知道,电子邮件客户端不支持位置属性,所以我将不得不在没有它的情况下继续。现在,看看我的选择...我可以选择边距或填充来定位元素。输入元素可以是相对定位的,也可以是绝对的。我现在只说绝对的部分。因此,我的输入将是例如
One Parent DIV (top:0, left:0)
A Child DIV (top:20, left:20)
Second Child DIV (top:20, left: 200)
现在,在基于浏览器的普通HTML中,这些元素可以很容易地放置在适当的位置。但是没有position: absolute
甚至顶部,左边的属性。由于边距属性相对于其他元素排列元素,因此这变得很棘手。下面是一个运行示例:
<div style="width: 600pt; height: 600pt; border:2px solid red; margin-left:20pt; margin-top: 30pt">
<div style="width: 100pt; height: 100pt; border:2px solid black; margin-left:20pt; margin-top: 30pt"></div>
<div style="width: 100pt; height: 100pt; border:2px solid black; margin-left:20pt; margin-top: 30pt"></div>
<div style="width: 100pt; height: 100pt; border:2px solid black; margin-left:20pt; margin-top: 30pt"></div>
</div>
小提琴
我的预期结果是,所有黑色的div相互重叠,放置在相同的位置。如果它根据"父元素"计算边距,但它从父元素向左边距,从前面元素顶部向左边距,这是可能的。
所以我现在的问题是,有没有一种侧面方法可以使用左边距,顶部作为顶部,左侧属性并产生与位置:绝对相同的行为?或者简单地使用边距或填充属性将这三个元素放在彼此之上(无位置,因为电子邮件客户端不支持它)
我也知道,将 Divs 用于电子邮件不是最好的方法,我应该考虑使用表格,但相信我,我正在处理的那种 HTML 只能使用 Div 生成,有些玩弄边距或填充。任何帮助将不胜感激。
您可以使用负边距来实现重叠。
margin-top: -50pt
http://jsfiddle.net/pkdqh7kt/1/
以下是水平堆叠div 的示例:
http://jsfiddle.net/pkdqh7kt/2/
您还可以查看此表以了解主要电子邮件客户端当前支持哪些 CSS 属性。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- CSS-如何定位内容数据标题
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 在Jquery detachment()和appendTo()之后定位元素
- 困在逻辑中试图定位动态的东西
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 绝对定位不适用于Javascript DIV
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用JSON字符串中的jQuery填充下拉框
- 在没有“位置”属性的情况下实现绝对定位,使用边距/填充
- 定位用于在HTML中动态填充内容的URL
- 如何定位动态填充的元素
- DIV背景定位与填充