深入理解CSS overflow:hidden——溢出,坍塌,清除浮动

yizhihongxing

深入理解CSS overflow:hidden——溢出,坍塌,清除浮动

溢出(Overflow)

当元素的内容超出了容器的范围时,我们需要处理这种溢出现象。此时,我们可以使用CSS属性overflow来控制其内容的显示方式。

overflow:hidden

使用overflow:hidden可以隐藏元素的溢出内容,这通常用于父元素中有绝对定位子元素时的处理。例如,在一个包含了绝对定位元素的div中,如果父元素不加overflow:hidden,那么绝对定位元素就会因为超出父元素范围而出现不预期的效果。因此此时可以在父元素中加入overflow:hidden来隐藏其溢出内容。

示例代码:

<div class="parent">
    <div class="child"></div>
</div>
.parent { 
    position: relative;
    width: 200px;
    height: 200px;
    overflow: hidden;
}
.child {
    position: absolute;
    background-color: red;
    left: 100px;
    top: -100px;
    width: 50px;
    height: 50px;
}

效果:父元素中会隐藏子元素超出父元素范围的部分,使其只显示在父元素内部。

overflow:scroll

使用overflow:scroll可以将元素的溢出内容以滚动条的形式显示出来,这通常用于内容过长而需要进行滚动查看的情况。例如,当一个元素中内容的高度超出了其指定的高度时,可以将其加上overflow:scroll来实现滚动查看。

示例代码:

<div class="container">
    <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        Donec a diam lectus. Sed sit amet ipsum mauris.
        Maecenas consectetuer gravida velit.
    </p>
</div>
.container{
    width:400px;
    height:100px;
    overflow:scroll;
}

效果:当p元素中的内容高度超出容器指定的高度时,会出现垂直滚动条,以便于查看全部内容。

坍塌(Collapse)

当元素与其兄弟元素之间不包含margin或border时,它们的高度会被自动合并,即发生了坍塌现象。例如,当两个相邻的div无间距时,它们的高度会自动合并,并呈现为一个div的高度。

清除坍塌

因为坍塌现象可能引起不必要的布局问题,导致布局效果与预期不符,所以我们需要清除坍塌。可以在元素中使用overflow:hidden或为其添加一个1像素的border来清除坍塌。

示例代码:

<div class="parent">
    <div class="child"></div>
</div>
<div class="parent">
    <div class="child"></div>
</div>
.parent {
    width: 200px;
    height: 100px;
    border: 1px solid #000;
    overflow: hidden; /*清除坍塌*/
    margin-bottom: 20px;
}
.child {
    height: 50px;
    background-color: red;
}

效果:每个父元素都包含一个子元素,但是当父元素不清除坍塌时,两个父元素的高度将会合并,只显示出一个父元素的高度。而当父元素清除了坍塌时,两个父元素的高度不再合并。

清除浮动

当元素浮动时,它的父元素会因为该元素的高度消失而造成不必要的问题,如布局紊乱等。我们需要清除浮动以解决这些问题。使用clear:both会造成元素在父元素下方换行来清除浮动,而使用overflow:hidden也可以清除浮动并不会引起元素的换行。

示例代码:

<div class="parent">
    <div class="float-left"></div>
    <div class="float-right"></div>
    <div class="clear"></div>
</div>
<div class="parent">
    <div class="float-left"></div>
    <div class="float-right"></div>
</div>
.parent {
    width: 400px;
    height: 200px;
    border: 1px solid #000;
    overflow: hidden; /*清除浮动*/
    margin-bottom: 20px;
}
.float-left {
    float: left;
    width: 100px;
    height: 50px;
    background-color: red;
}
.float-right {
    float: right;
    width: 100px;
    height: 50px;
    background-color: blue;
}
.clear {
    clear: both; /*清除浮动*/
}

效果:当父元素清除浮动时,两个子元素会显示在父元素内部而不再产生父元素重叠的问题。而当父元素未清除浮动时,两个子元素会重叠产生不必要的布局问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入理解CSS overflow:hidden——溢出,坍塌,清除浮动 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS 变形(CSS3 transform)实例详解

    下面是对“CSS 变形(CSS3 transform)实例详解”的完整攻略: CSS 变形(CSS3 transform)实例详解 什么是CSS 变形? CSS 变形是一种改变HTML元素形状、位置和大小的技术,通常使用CSS3的transform属性设置。CSS3变形主要包括移动、缩放、旋转、倾斜和扭曲等,可以通过简单的一些组合,得到非常酷炫的效果。 语法…

    css 2023年6月10日
    00
  • 浅谈css实现背景颜色半透明的两种方法

    下面是详细讲解“浅谈CSS实现背景颜色半透明的两种方法”的完整攻略: 1. 通过rgba()函数实现背景颜色半透明 使用 rgba() 函数可以很方便地实现背景颜色半透明。这个函数接受四个参数:红、绿、蓝和透明度,简写方式为 rgba(red, green, blue, alpha),其中 alpha 参数取值范围为 0 到 1 ,数值越小,透明度越高,数值…

    css 2023年6月9日
    00
  • Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)

    下面是详细讲解: Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验) 在日常爬虫过程中,有很多情况下需要模拟登录实现数据或者页面的获取,这时就需要使用到selenium了。Selenium是一款自动化测试工具,但是同样能够用来模拟登录,其内部其实是通过去操作浏览器依靠JS控制实现各种自动化的。 需求 通过实例来演示Selenium…

    css 2023年6月10日
    00
  • jQuery使用CSS()方法给指定元素同时设置多个样式

    下面是使用jQuery中的css()方法给指定元素同时设置多个样式的详细攻略。 CSS()方法概述 css()方法是jQuery中用来操作指定元素的样式的方法,它可以设置一个或多个CSS属性及其值。它支持多个参数的输入方式,可以设置多个CSS属性,以键值对的形式传递。 下面是css()方法基本语法: $(selector).css(property,valu…

    css 2023年6月9日
    00
  • 最新百度PM告诉你SEO这六个方面的优化原则(干货)

    最新百度PM告诉你SEO这六个方面的优化原则(干货) 本文介绍了最新的百度搜索引擎优化原则,将涵盖以下六个方面的优化原则: 网站内容要有价值 关键词选择要精准 网站结构要清晰 链接质量要高 移动端适配要到位 速度优化要充分 下面将从这六个方面给出详细的优化攻略。 1. 网站内容要有价值 为了让用户有更好的体验,同时也是满足百度对内容要求的基础,网站内容需要提…

    css 2023年6月10日
    00
  • CSS3属性box-shadow使用详细教程

    CSS3属性box-shadow使用详细教程 box-shadow是CSS3新增的一个属性,可以为元素创建一个或多个投影。通过box-shadow属性,我们可以实现一些光影效果,比如阴影、发光等。 语法与用法 box-shadow属性的语法如下: box-shadow: h-shadow v-shadow blur spread color inset; 其…

    css 2023年6月9日
    00
  • CSS凹型导航按钮效果的实现代码

    下面是关于“CSS凹型导航按钮效果的实现代码”的完整攻略。 1. 实现思路 要实现凹型导航按钮效果,需要首先确定按钮的基本样式,包括按钮的颜色、大小、边框等,然后通过box-shadow属性在按钮的四个角上添加凹影,通过linear-gradient属性实现按钮的渐变效果,最后通过transition属性给按钮添加过渡效果,使其在被点击时可以有更好的视觉反馈…

    css 2023年6月10日
    00
  • 动易CMS改变行距、字体大小、颜色

    以下是详细讲解“动易CMS改变行距、字体大小、颜色”的完整攻略: 改变行距 改变行距可以使文章排版更加美观和易读。在动易CMS中,可通过以下步骤改变行距: 进入文章的编辑界面,选中需要改变行距的文字。 在工具栏中点击“行间距”按钮,选择所需的行距大小即可。 示例说明: 假设你的文章中有一段需要加大行距的文字,你可以先选中这段文字,然后在工具栏中点击“行间距”…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部