您现在的位置是:网站首页> 编程资料编程资料
浅谈css溢出机制探究css多行文本溢出时出现省略号的示例纯CSS定制文本省略的方法大全CSS浮动所差生的内容溢出问题及清除浮动的方法小结CSS实现单行、多行文本溢出显示省略号的实现方法css实现文本溢出显示省略号CSS实现限制字数功能当对象内文本溢出时显示省略标记用css截取字符实现文字自动截断隐藏溢出文本css 超出用省略号当标题字符溢出用省略号表示css overflow溢出隐藏(文字溢出时的自动隐藏处理)CSS省略号text-overflow超出溢出显示省略号
2021-09-04
979人已围观
简介 在实际开发的过程中,内容溢出是经常见到的。这篇文章主要介绍了浅谈css溢出机制探究,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
为什么需要深入学习CSS溢出机制?
在实际开发的过程中,内容溢出是经常见到的。如果不深入了解这个机制,你经常会碰到这样的问题:为什么这个元素没有受到祖先元素的overflow:hidden的影响?这里出现的滚动条是哪个元素的?如果消除这个滚动条?如何在指定的元素上增加滚动功能?
在这篇文章,我们将会从CSS标准出发,讨论CSS溢出机制的细节。
溢出
当一个盒子(block container box)的内容(子元素、孙子元素等后裔)超过盒子本身的大小的时候,就会出现溢出。这个时候CSS属性overflow决定如何处理溢出。这个css属性大家都知道,在这里不讨论了,在这里指出需要注意的几点:
overflow会影响所在元素的所有内容的裁剪、滚动,但是有一种情况例外:"It affects the clipping of all of the element's content except any descendant elements (and their respective content and descendants) whose containing block is the viewport or an ancestor of the element." 也就是说,overflow的所在元素必须是内容元素的直接或间接containing block,这时overflow属性才会影响这个内容元素。比如
当需要滚动条的时候,滚动条会放在border与padding之间。父元素产生滚动条以后,它产生的containing block的尺寸会减少,以便给滚动条腾出空间。
在和
上的overflow属性存在冒泡现象: "UAs must apply the 'overflow' property set on the root element to the viewport. When the root element is an HTML "HTML" element or an XHTML "html" element, and that element has an HTML "BODY" element or an XHTML "body" element as a child, user agents must instead apply the 'overflow' property from the first such child element to the viewport, if the value on the root element is 'visible'. The 'visible' value when used for the viewport must be interpreted as 'auto'. The element from which the value is propagated must have a used value for 'overflow' of 'visible'. "可以推断出:
一般来说只有元素才能拥有滚动条(更准确地说,只有产生block container box的元素才能拥有滚动条)。但visual viewport是个例外。它虽然不是一个元素,但是也可以拥有滚动条。如果在和
上都没有设置overflow属性而使用默认值visible(大部分场景都是这样),那么,visual viewport的overflow就是auto:当网页中有内容超出visual viewport时,visual viewport上会出现滚动条。的最终overflow永远都是visible。也就是说,元素永远不可能拥有滚动条。
如果你想要为
设置非visible的overflow,需要先为设置一个非visible的值来冒泡,从而的overflow不会被冒泡。小练习小练习:
利用以上原理,使visual viewport和
都拥有横、竖滚动条,总共4个滚动条。不能使用overflow: scroll(这样就太简单了)。步骤:
- 使visual viewport和的最终overflow值都为auto,从而可以出现滚动条。
- 触发visual viewport和的溢出。通过【为内容设置一个更大的尺寸】来做到。
代码+注释:
test
结果:

自己在chrome中打开以上代码,能更加清晰地看出是怎么做到的。
也可以通过absolute的方式来溢出initial containing block:
test
结果:

自己在chrome中打开以上代码,能更加清晰地看出是怎么做到的。
如何看出某个滚动条是属于哪个元素的?
通过Chrome DevTools就可以看出滚动条的所属元素。
前面已经说过,滚动条的位置在元素的border与padding之间。当你使用Chrome DevTools选中某个元素,发现滚动条恰好在高亮区域(border)内部时,滚动条就属于当前元素。

要判断滚动条是否属于visual viewport,首先先将右边、下边的滚动条分别滚动到最下、最右(这一步很重要,它保证没有内容藏在滚动条下面)。然后,Ctrl+Shift+C选择右边或下边的滚动条,如果高亮的区域不包含这个滚动条,就说明这个滚动条不属于任何元素,也就是属于visual viewport。

参考资料
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 纯css实现立体摆放图片效果的示例代码纯css实现立体摆放图片效果的实例代码使用CSS制作立体导航栏纯CSS实现3D按钮效果实例代码CSS3 三维变形实现立体方块特效源码使用CSS3实现一个3D相册效果实例基于CSS3制作立体效果导航菜单CSS实现有立体感的横向按钮式菜单效果代码css3实现超立体3D图片侧翻倾斜效果如何用css代码实现有立体效果的表格用纯CSS3打造立体提示模块的效果实现(图) 附源码
- CSS 同级元素position:fixed和margin-top共同使用的问题css中子元素设置margin-top为什么影响了父元素margin-top塌陷问题的现象与解决的具体方法margin-top负值解决label 文字与input 垂直居中对齐问题父元素与子元素之间的margin-top问题(css hack)子元素margin-top导致父元素移动的问题解决
- margin-top塌陷问题的现象与解决的具体方法css中子元素设置margin-top为什么影响了父元素CSS 同级元素position:fixed和margin-top共同使用的问题margin-top负值解决label 文字与input 垂直居中对齐问题父元素与子元素之间的margin-top问题(css hack)子元素margin-top导致父元素移动的问题解决
- CSS中overflow-y: visible;不起作用的原因分析及解决方法css 设置overflow:scroll 滚动条的样式 深入理解CSS overflow:hidden——溢出,坍塌,清除浮动css中text-overflow属性与文本截断详解详解CSS中zoom属性或overflow:auto属性清除浮动的作用使用CSS的overflow属性防止float撑开div的方法CSS属性text-overflow的使用问题使用CSS隐藏元素滚动条的示例代码css 给div添加滚动并隐藏滚动条
- 纯css实现立体摆放图片效果的实例代码CSS3实现的3D立体文字时钟效果源码基于CSS3制作立体效果导航菜单CSS3实现的鼠标经过立体翻转切换特效源码CSS实现有立体感的横向按钮式菜单效果代码一款纯css3实现的3D立体翻转导航特效源码基于HTML5+CSS3实现鼠标悬停3D立体式图片效果源码html5+css3实现的会翻动的3D立体图书效果源码
- css实现二维码扫码框的示例代码CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS绘制三角形的实现代码(border法)利用css绘制三角形的方法及拓展纯CSS绘制三角形箭头图案技术解析Html+CSS绘制三角形图标css绘制透明三角形用CSS3绘制三角形的简单方法纯CSS绘制三角形箭头效果用CSS代码绘制三角形 纯CSS绘制三角形的代码CSS中三角形的绘制与巧妙应用实例详解
- 利用CSS3动画实现圆圈由小变大向外扩散的效果实例CSS3地图动态实例代码(圆圈向外扩散)HTML5结合CSS3实现的光感圆圈动画特效源码jquery+css3动态圆圈运动背景特效代码jQuery+css3实现漂亮的以圆圈方式显示的彩色时钟效果CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
- 使用CSS实现无滚动条滚动的两种方法CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- rem布局原理解析css基于媒体查询和 rem 的响应式布局实践详解html5页面 rem 布局适配方法移动端rem布局的两种实现方法详解H5 活动页之移动端 REM 布局适配方法浅谈移动端的自适应布局问题(响应式、rem/em、Js动态)使用CSS3的rem属性制作响应式页面布局的要点解析
