tyl*_*erl 2 html css jquery layout
我正在使用jQuery创建一个完全覆盖任何现有元素的元素.这至少就是这个意图.
上下文与此处的内容类似:
列表分离:使压缩表单更易于访问
这个想法是你有一个元素,比如a <input>
,在某些条件下你会显示另一个元素(在这种情况下为a <label>
)绝对位于它上面作为提示.虽然一般原则在其他场景中也很有用.
有几个现有的库可以做这种事情,但它们似乎都沿着相同的路线分解.
天真的方法:
display:block
和创建封面元素position:absolute
.left
和top
,以匹配您的封面元素问题:只要页面布局发生变化,封面的位置就不再匹配,例如隐藏段落或调整显示大小.
稍微改进的方法:
display:block
和创建封面元素position:absolute
这种方法解决了流体布局的问题,但是它增加了一个问题,即如果被覆盖的元素在inline
块内,则封面将在它出现时创建一个换行符(因为插入了一个块元素).
据推测,这是一个已经被某人解决过的问题.
cla*_*uzy 11
'天真'的方法是最好的,但你错过了一点.
<div><i>Element to be covered</i> <span>Shiny new element</span></div>
Run Code Online (Sandbox Code Playgroud)
它不一定是div
s,i
s和span
s,但这只是为了可视化,它是重要的嵌套 - 我只i
在代码中用来表明你可以"跨越"原始文本的样式.
div {position: relative; width: 200px; height: 50px;}
span {position: absolute; top: 0; left: 0; height: 100%; width: 100%;}
Run Code Online (Sandbox Code Playgroud)
这与方法#1几乎相同,除了position: relative;
对外部容器(原始元素)的重要添加- 添加了"new"元素(span
)将始终与它相关,这解决了:
问题:只要页面布局发生变化,封面的位置就不再匹配,例如隐藏段落或调整显示大小.*
归档时间: |
|
查看次数: |
3678 次 |
最近记录: |