CSS世界|overflow 剪裁界线border box

一个设置了 overflow:hidden 声明的元素,假设同时存在 border 属性和 padding 属性,类似于下面的 CSS 代码:

// HTML
<div class="box">
    <img src="1.jpg" width="256" height="192">
</div>

// CSS
.box {
  width: 200px;
  height: 80px;
  padding: 10px;
  border: 10px solid;
  overflow: hidden;
}

则当子元素内容超出容器宽度高度限制的时候,剪裁的边界是 border box 的内边缘,而非 padding box 的内边缘。

例子可手戳 -> https://demo.cssworld.cn/6/4-1.php

如果想实现元素剪裁同时四周留有间隙的效果的话,可以试试使用透明边框,此时内间距 padding 属性是无能为力。

探讨一个 overflow 属性的一个很经典不兼容的问题

如果容器可滚动(假设是垂直滚动),则 padding-bottom 也算在滚动尺寸之内, IE 和 Firefox 浏览器忽略 padding-bottom. 而 Chrome 浏览器则会渲染出来。

对于这样的不兼容,我们在实际项目开发中尽量避免滚动容器设置 padding-bottom 的值,除了样式不一样之外,还会导致 scrollHeight 值不一样。

了解 overflow-x 和 overflow-y

overflow-x 和 overflow-y 分别表示单独控制水平或垂直方向上的剪裁规则。

支持的属性和 overflow 属性一模一样

  • visible: 默认值
  • hidden: 剪裁
  • scroll: 滚动条区域一直在
  • auto: 不足以滚动时没有滚动条,可以滚动时滚动条出现

误区

认为只要 overflow-x 和 overflow-y 设置了上面的属性值,就一定会是这样的表现。

so~实际彩蛋

overflow-x 和 overflow-y 的属性值都是 visible,否则 visible 会当 auto 来解析。换句话说,永远不可能实现一个方向溢出剪裁或滚动,另一方向内容溢出显示的效果。

html {
  overflow-x: hidden;
  overflow-y: auto;  /*多余*/
}

但是,scroll,auto 和 hidden 这3个属性值是可以共存的。

CSS文本溢出显示省略号

overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 生平的愿望是坐东方快车。你懂的,阿加莎的《东方快车谋杀案》,一直是我最爱的侦探小说之一。 所有的交通工具都带有一点...
    莎珈阅读 214评论 0赞 0
  • 茂密的树,交错相拥,形成一个洞,远望去,深无底。于是,我陷入记忆的隧道里,朦胧又清晰。依稀的鸟鸣,云在动,天在变。...
    北菓阅读 301评论 0赞 2
  • Ⅵ 眼皮微动,从缝隙中流露出冬日特有的暖阳,浑身似散架般疼痛,艾比缓缓睁眼,映入眼帘的是陌生的白色天花板,嗅到...
    言若R阅读 1,232评论 1赞 7
  • 有意思吗? 无聊啦! 对呀! 什么?我听不见哦! 用文字沟通好吗? …… 接纳我的是无穷的寂静。 我很想活得像一朵...
    吴大姐姐阅读 358评论 2赞 3

友情链接更多精彩内容