更简单的解决方案
我能想到的最好方法是提供文本的替代视图,即不显示您的便利贴框的打印机友好版本。只要便利贴的内容在文本流中,您就会遇到这个问题。
潜在的(更困难的)替代方案
作为一个更困难的选择,你可以走一条 javascript 路线。它将涉及在正文中插入一个空的 DIV 并为其设置宽度和高度,然后将便利贴放置在具有绝对定位的相同位置上。
<div id="container" style="position:relative;">
<div class="text">Duis non lorem vel diam adipiscing dignissim.
Nulla vel varius erat. Nulla facilisi. Vivamus pulvinar pretium dignissim.
Aliquam sed tortor posuere nunc bibendum mattis. Integer bibendum, elit ut
vestibulum tristique, dolor justo scelerisque nibh, ac blandit metus arcu
non nibh.In ac eros sed nisl porta bibendum quis in mauris. Quisque
<div style="float:right; margin:10px; width:100px; height:100px;"></div>
pellentesque ligula eu sapien commodo at mollis purus feugiat. Vivamus
volutpat dictum magna eu venenatis. Suspendisse dignissim enim aliquet leo
imperdiet vitae accumsan mauris blandit. Donec tempus velit aliquet magna
imperdiet euismod. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vestibulum mollis tortor pellentesque velit pharetra non lobortis est
aliquam.
</div>
<div class="post-it">
I am the post-it. I should be placed absolutely so that
I overlap the div that is presently sitting within the body of text. This
will give the impression that I too exist within there, but I won't be
selectable.
</div>
</div>
动态确定空 div 的宽度/高度,使其与 post-it 的宽度/高度相匹配,这可以使用 javascript 轻松完成。这是一个使用 jQuery 的示例:
var realWidth = $("#container > .post-it").width();
var realHeight = $("#container > .post-it").height();
$("div.text div:eq(0)").css({"width":realWidth,"height":realHeight});
然后你想获得空 div 的 x 和 y 偏移量,并将其应用为 post-it div 的 left 和 top 值,因此它位于指定区域中的文本顶部。