前端编程 css 我想知道在这里overflow的作用是什么
当写上overflow时页面是正常的鼠标悬浮在链接上时会变颜色当我去掉overflow时他就不显示了只有鼠标悬浮在链接上时他才会显示我记得overflow的作用不是规定当...
当写上overflow时 页面是正常的 鼠标悬浮在链接上时会变颜色 当我去掉overflow时 他就不显示了 只有鼠标悬浮在链接上时他才会显示 我记得overflow的作用不是规定当内容溢出元素框时发生的事情吗 那么他在这里什么作用
展开
8个回答
展开全部
这是因为ul中的li是浮动的(float:left)的,就好比ul是一块地面,li是停放在在上面的飞机,现在飞机都飞到空中了,而地面没有指定大小,它就会自动收缩(相当于height为0的div),这样ul本身的背景色就看不到了,而a标签的颜色是白色,和网页背景色一样,所以就看不到了,只有鼠标悬停的时候,a标签的背景色和字体色才改变,这样就能看到。
解决的办法其实有多种,最标准的做法是给ul设定一个固定的高度值(height),这样不管li如何浮动,ul的大小都不会变。也可以在所有li的结尾处(即</ul>的上面)插入一个清除浮动(clear:both)的块级元素,这样可以强制清除浮动。overflow:hidden在这里起到的作用与css标准中的设定并没有直接关系,但它歪打正着起到了清除浮动的作用,也算是个野路子了。
解决的办法其实有多种,最标准的做法是给ul设定一个固定的高度值(height),这样不管li如何浮动,ul的大小都不会变。也可以在所有li的结尾处(即</ul>的上面)插入一个清除浮动(clear:both)的块级元素,这样可以强制清除浮动。overflow:hidden在这里起到的作用与css标准中的设定并没有直接关系,但它歪打正着起到了清除浮动的作用,也算是个野路子了。
追问
为什么overflow:hidden可以清除浮动? 然后就是clear: both要写在哪里可以达到同样效果?
追答
关于overflow:hidden的具体情况你可以看 神奇的overflow:hidden及其背后的原理
至于clear: both的用法参考下面(假定ul内的li都是浮动的):
<ul>
<li>....</li>
<li>....</li>
<li>....</li>
<br style="clear:both"/>
</ul>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
overflow主要作用是当内容装不下的时候,自动隐藏部分内容。在这里主要是控制li,当LI内容装不下的时候自动隐藏多余的部分。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
overflow:hidden;除了可以处理溢出隐藏之外还可以清除浮动,你这里给li设置了float:left;
如果你不给li的父级ul清除浮动,那么ul就是没有高度的(显示背景颜色或背景图片的前提就是,必须有宽和高),所以才会出现这样的问题
如果你不给li的父级ul清除浮动,那么ul就是没有高度的(显示背景颜色或背景图片的前提就是,必须有宽和高),所以才会出现这样的问题
追问
为什么overflow:hidden可以清除浮动? 为什么我在ul中加了clear:both却无法清除浮动? ul {list-style-type:none; background: #777; margin: 0px; padding: 0px; clear: both; }
追答
overflow:hidden;清除的是父级的浮动,clear:both清除的是同级的浮动,这两个你要分清楚,你问为什么能清除浮动,其实准确来说是overflow:hidden是清除父级来自子级元素浮动的影响,因为某种原因导致了边距合并的问题(BFC布局规则),bfc布局规则我就不说了,你自己去找教程看看,而overflow:hidden;就是解决边距合并的其中一种方法,并且是最好的一种方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很多人解释的都对,你可以给ul和li设置高度,宽度试试,就知道他的作用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询