2019-07-05 CSS中的裁剪

CSS中的裁剪

1. overflow 剪裁界线border box

  当子元素内容超出容器宽度高度限制的时候,剪裁的边界是border box的内边缘。
  overflow对absolute元素的剪裁规则用一句话表述就是:绝对定位元素不总是被父级overflow 属性剪裁,尤其当overflow 在绝对定位元素及其包含块之间的时候。
  上面这句话是官方文档的直译,似乎还是有些拗口,我们再换一种方法表述就是:如果overflow 不是定位元素,同时绝对定位元素和overflow 容器之间也没有定位元素,则overflow 无法对absolute 元素进行剪裁。
因此下面 HTML 中的图片不会被剪裁:

<div style="overflow: hidden;">
  <img src="1.jpg" style="position: absolute;">
</div>

overflow 元素父级是定位元素也不会剪裁,例如:

<div style="position: relative;">
 <div style="overflow: hidden;">
   <img src="1.jpg" style="position: absolute;">
 </div>
</div>

但是,如果 overflow 属性所在的元素同时也是定位元素,里面的绝对定位元素会被剪裁:

<div style="overflow: hidden; position: relative;">
  <img src="1.jpg" style="position: absolute;"> <!-- 剪裁 -->
</div>

如果overflow 元素和绝对定位元素之间有定位元素,也会被剪裁:

<div style="overflow: hidden;">
  <div style="position: relative;">
    <img src="1.jpg" style="position: absolute;"> <!-- 剪裁 -->
  </div>
</div>

如果overflow 的属性值不是hidden 而是auto 或者scroll,即使绝对定位元素高宽比overflow 元素高宽还要大,也都不会出现滚动条。
例如,下面的HTML 和CSS 代码:

<div class="box">
  <img src="1.jpg">
</div>
.box {
  width: 300px; height: 100px;
  background-color: #f0f3f9;
  overflow: auto;
}
.box > img {
  width: 256px; height: 192px;
  position: absolute;
}

图片高度256px 比容器.box 高度100px 明显高出了一截,但是,没有滚动条出现。

2. clip属性裁剪

clip: rect(top right bottom left)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,357评论 0 11
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,667评论 0 6
  • 世界上总会有许多人许多事,是你始料不及的,曾经以为某些地方再也不会心悸与跳动,但现实生活并非如此,说不清是因为一件...
    d836d51b585a阅读 168评论 0 0
  • 1.今天把备的公开课已经换了一片课文,已经备好 2.学了一首舞蹈 3.制作了一个美篇 ​​​
    阳七月阅读 125评论 0 0