今天小编跟大家讲解下有关CSS 自动定位 的应用 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS 自动定位 的应用 的相关资料,希望小伙伴们看了有所帮助。
在使用css创建类似title属性提示框 常见的方法是使用绝对定位 用负值使其偏移于屏幕之外 在鼠标经过时定义一个合适的正值使其显示到我们所需要的位置。但是 有一个我们不常用的属性我们常常将其搁置一旁而未加利用--”auto”。《Auto Positioning for Absolute Elements 》这篇文章详细介绍了该属性的使用方法 本人曾翻译了此文--《绝对定位元素的自动定位》 但文章太长 不甚直观 本文通过对比两种创建提示框的方法来介绍该属性的使用方法。 一、常规方法 看下面的html结果 我们让.test相对定位 确定其内部span标签的定为基点 在鼠标经过时 定义span标签的left为0。 1.<div class="box">常见的实现消息提示框的方法 是让父元素相对定位 消息内容绝对定位。默认状态让其隐藏于屏幕之外 鼠标经过时定义一个正值使其显示在我们需要的位置。看看这个<a class="test" href="#">消息提示框<span>鼠标经过时我会出现</span></a>。你可以看到 鼠标经过时 消息框会出现在鼠标的位置。</div> 复制代码代码如下: .test{ position:relative; display:inline-block;//使其在IE8中正常显示; color:#fff; } .test span{ position:absolute; top:15px; left:-999em; border:1px soid #6c3; background-color:#F60; } .test:hover{ background:#fff;/修复IE中的bug 这里是为了测试 如果不需要颜色 可以使用一张1×1px大小的透明图片来代替。/ color:#00f; } .test:hover span{ left:0; } 注意在鼠标经过时 我们定义了背景颜色 这时为了修复 IE中特有的bug 关于bug这里不做太多描述 读者可参考相关资料。常见的方法在IE6、IE7中工作良好 但在IE8中看起来很古怪 如果给.test定义一个display:inline-block属性 它将显示良好。IE6与IE7、IE8、FF、chrome显示略有不同 IE6中span标签里的内容自动扩展 而在IE7、IE8、FF、chrome中 其宽度与文本“消息提示框”等宽 超过的换行显示。 二、使用“自动定位” 使用“自动定位” 对于.test我们不需要使用定位属性 对于其内部标签span 去掉top属性 保留left属性 在鼠标经过时 让span标签的left属性为auto。这看起来不可思议 但的确工作良好。span标签绝对定位后 它保留了在文本流中的正常位置 它是它在一个新的层上。css如下: 复制代码代码如下: .test-auto{ color:#fff; } .test-auto span{ position:absolute; left:-999em; border:1px soid #6c3; background-color:#F60; text-decoration:none; } .test-auto:hover{ background:#fff; color:#00f; } .test-auto:hover span{ left:auto; } 现在 使用自动定位可以实现弹出消息提示框。但是 除了上面提及的那个bug外 还有几个bug需要注意。 span标签定义display:block时 在FF和IE下显示有差别。 当我们给.test-auto span增加display:block时。你可以看到 鼠标经过时 在FF中消息框另起一行(这是使用该属性正常的效果)。但在IE6、IE7中查看 我们看到它仍在原来的位置之上。 span标签定义font-style:italic;时 在IE7中出现滚动条。 可以看到 鼠标经过时 在FF和IE6中消息框出现 没有任何异常。但在IE7中查看 我们看到水平滚动条出现了。这似乎就是IE中的italics bug。对于该bug 给其定义overflow:hidden 鼠标经过时 滚动条将会消失。 另外 在 chrome中查看 鼠标经过时 消息框并没有出现在鼠标经过的位置 而是出紧靠父元素的左侧 真奇怪!! 三、“自动定位”的应用 自动定位有哪些用途呢 但我们在页面的相关文本插入绝对定位图像时 我们可以使其top和bottom属性为“auto” 然后定义left或者right属性值 那么其垂直位置就由文本流来控制 水平位置有left或者right的长度值来决定。 四、总结 “自动定位”使我们不常用的一个属性 相信看完本文你对自动定位有一个很深的理解。本篇文章简要的介绍了“自动定位”的应用 如果你想进一步定位提示框出现的位置 请参考我翻译的另外另外一篇文章--《边距和绝对定位》 希望能对你有所启发。来源:爱蒂网