仅对于 img 元素来说的话,overflow 的值是哪个都可以,因为对于 img 都会失效。
既然会失效,那为什么要用 overflow,而且是 hidden,那是因为与 img 同级的兄弟元素可能溢出容器范围。
那你问设置 visible: visible 可以嘛?当然可以,如果 img 元素的兄弟元素里的内容不会溢出容器的话。
再问既然都不会溢出,也没别的需求,那完全不用 overflow 可不可以?当然可以。因为此处用 overflow 完全就是为了防止内容溢出的,而不是防止 img 元素会怎么样怎样的。
总结一下:
0 首先明白,overflow 为什么会对案例中 img 元素无效
① 图片移到右侧使用的是 absolute 跟 text-align,与 overflow 无关
② overflow 只作用于与 图片同级的 非 absolute 元素里的内容,防止溢出容器
下面给个溢出效果的代码案例:
<div style="height: 300px;overflow:auto"> <div class="h0 ovh tr" style="height: 700px;width: 600px; margin:0 auto;background-image: url(./53937347_p0.png); background-repeat: no-repeat; background-position: center center; background-size:cover"> 下面就是会溢出的文本,所以父级会用 overflow: hidden; <br> dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd <img class="abs ml30 mt30" style="height: 80px;" src="./53937347_p0.png" alt=""> </div> </div>
你再看一遍就不会这么觉得了
这样式一共也没几行代码呀,同学
不是说占个位置而已吗,
http://blog.csdn.net/bing0728004/article/details/51509435
你试试看不就知道了吗
比如,你的使用overflow:hidden;你的图片宽度为100px;而div块的宽度为80px,父元素的高度不会塌陷,但是同样,div块装不下那么宽的图片就只能隐藏掉伸出去的一部分。而这种最佳实践,是在实质是在父元素中添加一个块级元素在其最后一个子元素的位置,当图片浮动时就不会塌陷,因为有了一个块级元素把父元素撑起来了,而父元素的宽度就会根据图片的宽度自适应。
为什么overflow是auto
这是JavaScript的内容
对于普通元素,overflow:hidden;会将固定宽高容器内溢出元素隐藏处理;但有些特殊布局例外。例如,部分浮动在容器之外的元素。
使用overflow:hidden;属性,如果其祖先元素,含有position:relative属性等,其后代元素中存在position:absolute属性时,含有position:absolute属性的元素溢出固定宽高的容器后,不会被隐藏。
人老师说的是两栏自适应布局不适合使用absolute,你整个绝对居中,闹哪样啊??
http://www.cnblogs.com/xgqfrms/p/6288299.html
破不了,要不然用JS模拟吧
BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .cell { display: table-cell; width: 2000px; *display: inline-block; *width: auto; padding: 20px; } .cell:nth-child(1) { background-color: green; } .cell:nth-child(2) { background-color: yellow; } .cell:last-child { background-color: blue; } </style> </head> <body> <div class="cell"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> <div class="cell"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> <div class="cell"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> </body> </html>
无论有几个cell 都可以实现自适应 而且不截断里面的内容
padding-left:calc(100vw-100%);
老师说的 是你文本被 <span>text</span>,或者啊a,p,div,ul, li等包围!不包括input,和select标签!
fixed不要用position:absolute
张鑫旭
这样over-flower-x:auto
老师当你是小朋友, 其实。。。。。。
任何position:absolute需要起作用,那么他的父元素就需要设置position:relative,否则就会一直往上找,直到body。因此,只要设置了自身position:relative,那么他自身就是包含块。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style> html,body{width:100%;height:100%;margin:0;padding:0;} .main{width:600px;height:100%;background:#ccc;margin:0 auto;} .list{height:0;text-align:right;overflow:hidden;} .rightlist{display:inline;position:fixed;bottom:100px;margin-left:20px;} .icon{display:block;width:30px;height:30px;border-radius:50%;background:#000;} </style> </head> <body> <!--中间的主界面--> <div class="main"> <!--右边固定条--> <div class="list"> <div class="rightlist"> <a href="#" class="icon"></a> </div> </div> </div> </body> </html>
可以看老师的absolute,其实主要利用的应该还是absolute的追随性
原理:
list是块状元素,自己占了一行,text-align:right则其中的元素会在右边
将rightlist设为display:inline,本来rightlist会在 的右边
但rightlist设了position:fixed,则rightlist脱离了文档流,但由于追随性还会在原来的那一行,这样就可以固定在界面的右边了
而且此时,由于rightlist设置了position,overflow元素的子元素含有包含块,所以overflow失效,所以并不会将子元素rightlist隐藏
“shift + 回车上面的斜杠”,连输再次。
content外面加一层设置高度,出现滚动条就ok了
<style> .warp { height:300px; overflow-y:auto;} .content { width: 60%; height: 2000px; background: #999; margin: 0 auto;} .h0 { height: 0;} .ovh { overflow: hidden;} .tr { text-align: right;} .abs { position: absolute; width: 20px; height: 20px; background: #F00;} .ml10 { margin-left: 10px;} .mt30 { margin-top: 30px;} </style>
<body> <div class="warp"> <div class="content"> <div class="h0 ovh tr"> <a class="abs ml10 mt30"></a> </div> </div> </div> </body>
应该这样写:padding-left: calc(100vw - 100%);
只有属性才有(-webkit.-ms,-moz)兼容写法。