本文将分享html–CSSoverflow:隐藏列表的子弹?的详细内容,并且还将对css隐藏列表符号进行详尽解释,此外,我们还将为大家带来关于CSSOverflow属性、CSSoverflow-y:v
本文将分享html – CSS overflow:隐藏列表的子弹?的详细内容,并且还将对css隐藏列表符号进行详尽解释,此外,我们还将为大家带来关于CSS Overflow 属性、CSS overflow-y:visible,overflow-x:scroll、CSS 中 关于 Overflow ,你需要了解的这些知识点!、CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素的相关知识,希望对你有所帮助。
本文目录一览:- html – CSS overflow:隐藏列表的子弹?(css隐藏列表符号)
- CSS Overflow 属性
- CSS overflow-y:visible,overflow-x:scroll
- CSS 中 关于 Overflow ,你需要了解的这些知识点!
- CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素
html – CSS overflow:隐藏列表的子弹?(css隐藏列表符号)
<ol> <li>Lorem</li> <li>ipsum</li> <li>dolor</li> <li>sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui,non felis. Maecenas malesuada elit lectus felis,malesuada ultricies. Curabitur et ligula.</li> </ol>
而这个CSS:
li { white-space: Nowrap; overflow: hidden; }
最后一个项目中的长文本确实在与容器的宽度相符时被黑客入侵,如预期的那样.但!列表项号也受溢出属性影响,不显示.
但是,像这样修改CSS:
ol { overflow: hidden; } li { white-space: Nowrap; }
按照预期的方式工作(文本不会出现在容器中,但是显示了列表项目).至少所有这一切对于Firefox 4 beta10来说都是如此.
你不觉得受溢出影响的编号有点不合逻辑吗?为什么会发生这种情况?是意图行为吗?这是在规范中,还是只是一些奇怪的人有人忘了处理?
解决方法
CSS Overflow 属性
根据CSS的盒模型概念,页面中的每个元素,都是一个矩形的盒子。这些盒子的大小、位置和行为都可以用CSS来控制。对于行为,我的意思是当盒子内 外的内容改变的时候,它如何处理。比如,如果你没有设置一个盒子的高度,该盒子的高度将会根据它容纳内容的需要而增长。但是当你给一个盒子指定了一个高度 或宽度而里面的内容超出的时候会发生什么?这就是该添加CSS的overflow属性的时候了,它允许你设定该种情况下如何处理。
overflow属性有四个值:visible (默认), hidden, scroll, 和auto。同样有两个overflow的姐妹属性overflow-y 和overflow-x,它们很少被采用。
让我们分别看一下这几个值,并讨论一写共同用法和技巧。
Visible
如果你不设置overflow属性,则默认的overflow属性值就是visible。所以一般而言,并没有什么理由特别的设定overflow的属性为visible除非你想覆盖它在其它地方被设定的值。
这里需要记住的重要的事情是,尽管盒子外面的内容是可见的,内容并不会影响页面的工作流。比如:
一般来说,你至少不用为里面的内容为文字的盒子设置固定的高度,这样就不会遇到这种情况了。
Hidden
默认值visible的相反的值就是hidden。它会将所有超出盒子的所有内容都给隐藏掉。
这对应付使用动态的内容,而且可能会由于内容溢出而引起一些布局上的问题的确很有用。尽管如此,请记住用此方法隐藏的内容将彻底的看不到(除非去查看源代码)。 比如有的用户设置他们的浏览器的默认字体比你预期的要大些,你会将一些文字推到盒子的外面然后完全的隐藏之……
Scroll
设置一个盒子的overflow值为scroll将会隐藏掉渲染到盒子之外的内容,但是它将会提供一个滚动条在盒子内部滚动,从而可以查看剩下的内容。
值得注意的是,使用scroll将会同时产生水平和垂直两个滚动条,就算内容只需要其中一个。
Auto
overflow的auto值很像scroll,它唯一解决的是在你不需要的时候也会出现滚动条的问题。
清除浮动
设置overflow的一个更流行的用处是,说也奇怪,清除浮动。设置overflow并不会在该元素上清除浮动,它将清除自己(self-clear)。意思就是,应用了overflow(auto或hidden)的元素,将会扩展到它需要的大小以包围它里面的浮动的子元素(而不是叠了起来(collapsing)),假设未定义高度。就像这样:
对于此问题,经过测试,IE6会自动扩展父层元素的高度,而IE8和FF等浏览器加上overflow:auto后,即可清除浮动。——神飞
这里有更多关于浮动的细节文章关于浮动的一切。
跨浏览器的烦恼
就像CSS中的很多东东,overflow有很多的跨浏览器的蹊跷的事情。比如这些:
滚动条在盒子里面还是外面?
Firefox将其放到盒子外面,而IE则将其放到里面。我认为只有IE是对的(它应该在里面的)。
看清楚这个明显的不同。
IE 8 扩展盒子的bug
IE8有很多有趣的新bug,包括一些非常严重的隐藏在网页中的。这里有更多的关于IE8的overflow的bug的介绍。
破坏浮动布局
IE 6, 7 和 8都会扭曲默认的overflow visible值并将水平的扩展一个盒子一匹配内容(比如图片)。 这对使用浮动列布局的结构非常痛苦,而且单个扩展的列就能够将其它列挤下去并使布局乱掉!
事实上,这个我在验证的时候发现,只有IE6才会出现这种情况,而IE7、IE8和其它浏览器表现一致。如果大家在使用IE7或IE8时有遇到这种情况,请告诉我,多谢!——神飞
滚动条能用CSS控制吗?
IE过去在较老的版本中允许这样,但是之后就收敛了。比如许多表单元素,滚动条就不允许使用CSS控制。我在它是否是件好事情上没有任何具体的意 见,但是我可以说,在网站的所有内容上使用滚动条是很丑陋的和俗气的。如果你需要一个美化的滚动条,你或许需要寻找JavaScript来模拟。
IE 技巧
无论是否需要,IE都会一直显示一个垂直的滚动条,这对预防水平跳动是有些作用的,但并非总是可取的。要想在IE中移除它,可以在body元素中设置overflow为auto。PS:此种情况也较少发现,不过在body的样式中添加overflow:auto的方法,建议考虑采用——神飞
演示
本文的演示页面,可以查看这个页面。
CSS overflow-y:visible,overflow-x:scroll
<style> .parent { overflow-y:scroll; overflow-x:visible; width:100px; } .child { position:relative; } .child-menu { position:absolute; top:0px; left:-100px; display:inline-block; } </style> <div> <!-- Lots of the following divs --> <div> Text Line <div>some pop out stuff</div> </div> </div>
好的,这只是一个例子。但基本上,我想要完成的是.child类可以在y轴上滚动…上下滚动。但我想要x轴…子菜单在.parent容器外部可见。
那有意义吗?所以发生的是,当页面呈现时,浏览器将溢出解释为自动完全,不尊重单独的轴。我做错了什么或浏览器只是不符合CSS3规范呢?大部分只在Chrome上测试。
解决方法
父应该溢出:auto;
.child应该是position:relative;
.child菜单应该是position:fixed;无顶部或左定位。
如果你这样做,它会保持它内联的内容。
如果你需要移动子菜单使用边距,而不是顶部或左边。示例margin-left:-100px;
CSS 中 关于 Overflow ,你需要了解的这些知识点!
作者:Ahmad shaded
译者:前端小智
来源:sitepoint
点赞再看,养成习惯本文
GitHub
https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎 Star 和完善,大家面试可以参照考点复习,希望我们一起有点东西。
在 CSS 中,当一个元素的内容太大而无法容纳时,我们可以对其进行控制。该元素的属性是 overflow
,它是 overflow-x
和 overflow-y
属性的简写形式。
在本文中,将会介绍这些属性,然后我们将一起深入讨论与 overflow
相关的一些概念和用例。你准备好了吗? get it!
简介
要使用 overflow
属性,我们需要确保将其应用到的元素具有以下特征:
- 块级元素 (例如:
div
、section
),通过height
或max-height
设置高度。通过设置高度,我的意思是项目应该有内容 (不是空的),也不是添加一个显式的高度。 - 或将
white-space
设置为nowrap
的元素
Overflow 有哪些值
overflow
属性可以有收下属性:
visible, hidden, scroll, auto
.element {
height: 200px;
overflow: [overflow-x] [overflow-y];
}
由于 overflow
是一种简写属性,因此它可以接受一个或两个值。 第一个值用于水平轴,第二个值用于垂直轴。
Visible
overflow
默认值为 visible
,其中的内容可以超出其父值。可以这样设置:
.element {
height: 200px;
overflow: visible;
}
有趣的一面是,当一个轴设置为 visible
,而另一轴设置为 auto
时,visible
的轴将计算为 auto
。
MDN 上这样说到:
注意:设置一个轴为visible
(默认值),同时设置另一个轴为不同的值,会导致设置 visible的轴的行为会变成
auto`。
例如,如果我们用以下内容设置一个元素:
.element {
height: 200px;
overflow: visible auto;
}
overflow
属性的计算值将为 auto auto
。
大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。
Hidden
当内容比其父内容长时,它将被剪切。但是,可以使用 Javascript 滚动内容。
Scroll
在上图中,无论内容是否长,滚动条总是可见的。注意,这取决于操作系统。
Auto
auto
这是一个聪明的关键字,仅当内容比其容器长时才显示滚动条。
注意,在图中,只有当内容比其容器长时,滚动条才可见。接下来,我们将讨论与 overflow
相关的 longhand
属性
Overflow-X
该家伙负责 x
轴或元素的水平边。
Overflow-Y
该家伙负责 y
轴或元素的垂直边。
用例和事例
简单滑块
我们可以通过水平裁剪内容并使其滚动来创建快速简单的滑块。
在上面的模型中,我们有水平放置的卡片,还有一个滚动条,可以滚动并显示更多内容。 为此,我们需要执行以下操作:
- 将卡片显示在同一行,为此使用
flexbox
- 向容器中添加
overflow-x
.wrapper {
display: flex;
overflow-x: auto;
}
它可以在桌面浏览器上工作。然而,在 Safari 上对 iOS(12.4.1)
进行测试时,滚动并没有起作用。经过反复试验,当我为子项添加宽度时,滚动起作用了,在 iOS(13.3)
上运行就没有问题啦。
事例源码:https://codepen.io/shadeed/pe...
模态框内容
当模态内容太长时,我们可以很容易地使区域可滚动。要做到这一点,我们应该做到以下几点
- 设置模态框的最大高度
- 模态框 body 应占用全部可用空间
.modal {
display: flex;
flex-direction: column;
max-height: 400px;
max-width: 450px;
}
/* 1. 让模态框 body 占据剩余的可用空间 */
/* 2. 如果内容很长,则允许滚动。 我使用`auto`是因为它在内容足够长之前不会显示滚动条 */
.modal__content {
flex-grow: 1; /* [1] */
overflow-y: auto; /* [1] */
}
事例源码:https://codepen.io/shadeed/pe...
带有圆角的卡片
当我们有一张卡并且希望其角是圆的时,我们倾向于为顶部和底部的角添加 border-radius
,如下所示:
.card-image {
border-top-right-radius: 7px;
border-top-left-radius: 7px;
}
.card-content {
border-bottom-right-radius: 7px;
border-bottom-left-radius: 7px;
}
这可能需要很多工作,特别是如果卡片在移动设备上具有不同的设计。 例如,它们不会彼此堆叠,而不是堆叠其子项。
在这种情况下,最好使 overflow: hidden
将其隐藏在包装器上,然后向其添加 border-radius
,这样我们只需要设置一个地方就行了。如下所示:
.card {
overflow: hidden;
border-radius: 7px;
}
动画
当涉及动画时,overflow: hidden
的好处是:在剪辑时可以悬停显示的隐藏元素上。 考虑下图:
在 CSS 中,如下所示:
.button.slide-left {
overflow: hidden;
}
.button.slide-left:after {
content: "";
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: #000;
opacity: 0.25;
border-radius: 100px;
transform: translateX(-100%);
transition: 0.2s ease-in;
}
我们有两个按钮,每个按钮都有一个伪元素,该元素相应地过渡到左侧和底部。 如下所示:
事例源码:https://codepen.io/shadeed/pe...
大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。
Overflow 的常见问题:在手机上滚动
例如,当我们有一个滑动条时,仅仅添加 overflow-x
是不够的。在 Chrome iOS 上,我们需要手动滚动和移动内容。看下面的动图:
幸运的是,有一个属性可以增强滚动体验。
.wrapper {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
这称为基于动量的滚动。 根据 MDN:
-webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果。它有两个值:
auto: 使用普通滚动,当手指从触摸屏上移开,滚动会立即停止。
touch:使用具有回弹效果的滚动,当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。
下图是使用基于动量的滚动的效果。
内联块元素
根据 CSS 规范:
将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)
当一个 inline-block
元素的 overflow
值不是 visible
的时,这将导致该元素的底边根据其同级元素的文本基线对齐。
要解决该问题,我们可以主按钮添加 overflow: hidden
,并更改其对齐方式:
.button {
vertical-align: top;
}
事例源码:https://codepen.io/shadeed/pe...
水平滚动问题
通常,我们会遇到水平滚动的问题,当原因未知时,滚动滚动会变得更加困难。 在本节中,我将列出水平滚动的一些常见原因,以便大家以后在构建布局时可以想到到它们。
position
是 absolutely/fixed
元素
当元素的 position
值为 absolute
或 fixed
值时,就有可能导致水平滚动。 当 left
,right
值中的一个将元素定位在 body
元素外部时,可能会发生这种情况
要解决这个问题,首先需要检查为什么这个元素被放置在 viewport
之外。如果没有必要,则必须删除它或编辑 position
值。
grid 项目
CSS 网格有三种情况可以导致水平滚动,来看看它们。
对列使用像素值
当使用像素值时,这将在视口宽度较小时引起问题。 见下文:
.wrapper {
display: grid;
grid-template-columns: 200px 1fr;
grid-gap: 1rem;
}
解决方案是重置列,只在有足够空间的视口上使用上面的列。
.wrapper {
display: grid;
grid-template-columns: 1fr;
grid-gap: 1rem;
}
@media (min-width: 400px) {
grid-template-columns: 200px 1fr;
}
使用 minmax()
.wrapper {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 1rem;
}
可能会遗忘要针对移动设备进行测试,因为最小宽度为 300px
,这将导致在某个点进行水平滚动。
一个简单的解决方法是将 grid-template-columns
重置为 1fr
,并在视口较大时对其进行更改。
.wrapper {
display: grid;
grid-template-columns: 1fr;
grid-gap: 1rem;
}
@media (min-width: 400px) {
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
源码地址:https://codepen.io/shadeed/pe...
大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。
长词或链接
处理内容中的长字或链接时,它应该换行,否则,将会出现水平滚动。
为了解决这个问题,我们需要中断长单词和链接。我们可以这样做
.post-content a {
word-wrap: break-word;
}
或者我们可以使用 text-overflow
:
.post-content a {
overflow: hidden;
text-overflow: ellipsis;
}
如何调试水平滚动问题
既然我们已经知道了水平滚动的原因,我将介绍一些方法来帮助我们识别这些问题并解决它们。
使用 CSS outline
*, *:before, *:after {
outline: solid 1px #000;
}
通过添加这些内容,我们可以注意到哪些元素的宽度较大,因此我们可以解决问题。 阿迪・奥斯曼尼(Addy Osmani)用他的简单脚本进一步完善了这一点:
[].forEach.call(document.querySelectorAll("*"),function(a){a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)})
该脚本的作用是使轮廓颜色随机化,而不是使所有轮廓都具有单一颜色,这将使其变得更容易。
Firefox scroll
标签
在 Firefox 中,会向导致水平滚动的元素添加一个小标签。
删除元素
有时,上述技术无效。 在这种情况下,我要做的是打开 DevTools,然后开始删除元素并注意。 一旦水平滚动消失了,我就可以确定引起问题的元素。
最后一个解决方案:使用 overflow-x: hidden
最后,可以使用 overflow-x:hidden
解决水平滚动问题,但这一般是最后没办法的备用方案。
原文:https://ishadeorddeed.com/art...
代码部署后可能存在的 BUG 没法实时知道,事后为了解决这些 BUG,花了大量的时间进行 log 调试,这边顺便给大家推荐一个好用的 BUG 监控工具 Fundebug。
交流
文章每周持续更新,可以微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,整理了很多我的文档,欢迎 Star 和完善,大家面试可以参照考点复习,另外关注公众号,后台回复福利,即可看到福利,你懂的。
本文同步分享在 博客 “前端小智”(SegmentFault)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。
CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素
CSS是什么?
CSS 代表层叠样式表
CSS 描述了 HTML 元素如何在屏幕、纸张或其他媒体上显示
CSS 节省了大量工作。它可以同时控制多个网页的布局
外部样式表存储在 CSS 文件中
为什么我们使用CSS?
CSS 用于定义网页的样式,包括设计、布局以及针对不同设备和屏幕尺寸的显示变化。
示例
身体{ 背景颜色:浅蓝色; } h1 { 白颜色; 文本对齐:居中; } p { 字体系列:verdana; 字体大小:20px; }
CSS解决了一个大问题
HTML 从来没有打算包含用于格式化网页的标签!
HTML 的创建是为了描述网页的内容,例如:
这是一个标题
这是一个段落。
CSS 节省了大量工作!
样式定义通常保存在外部.
CSS 语法
CSS 规则由选择器和声明块组成。
h1 {颜色:蓝色;字体大小:12px;}
选择器指向您想要设置样式的 HTML 元素。
声明块包含一个或多个以分号分隔的声明。
每个声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
示例
p { 红色; 文本对齐:居中; }
示例解释
p 是 CSS 中的选择器(它指向您想要设置样式的 HTML 元素:
)。
颜色是一个属性,红色是属性值
text-align 是一个属性,center 是属性值
CSS 选择器
CSS 选择器用于“查找”(或选择)您想要设置样式的 HTML 元素。
我们可以将 CSS 选择器分为五类:
简单选择器(根据名称、id、类选择元素)
组合选择器(根据元素之间的特定关系选择元素)
伪元素选择器(选择元素的一部分并为其设置样式)
CSS 元素选择器
元素选择器根据元素名称选择 HTML 元素。
示例
p { 文本对齐:居中; 红色; }
以上就是CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素的详细内容,更多请关注php中文网其它相关文章!
我们今天的关于html – CSS overflow:隐藏列表的子弹?和css隐藏列表符号的分享已经告一段落,感谢您的关注,如果您想了解更多关于CSS Overflow 属性、CSS overflow-y:visible,overflow-x:scroll、CSS 中 关于 Overflow ,你需要了解的这些知识点!、CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素的相关信息,请在本站查询。
本文标签: