CSS3-盒子模型-边距问题

这篇具有很好参考价值的文章主要介绍了CSS3-盒子模型-边距问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    1 清除默认内外边距
        场景:浏览器会默认给部分标签设置默认的margin和padding,但一般在项目开始前需要先清除这些标签默认的margin和padding,后续自己设置
            比如:body标签默认有margin:8px、p标签默认有上下的margin、ul标签默认由上下的margin和padding-left ……
        解决方法:
            *{
                margin: 0;
                padding: 0;
                /* 盒子自动内减*/
                box-sizing:border-box;
            }

    2 外边距折叠现象
        正常情况:
            场景:水平布局的盒子,左右的margin正常,互不影响
            结果:最终两者距离为左右margin的和
        
        合并现象:
            场景:垂直布局 的 块级元素,上下的margin会合并
            结果:最终两者距离为margin的最大值
            解决方法:避免就好,只给其中一个盒子设置margin即可

        塌陷现象(坑爹):
            场景:互相嵌套 的 块级元素,子元素的 margin-top 会作用在父元素上 因为父子的上外边界margin-top重合了
            结果:导致父元素一起往下移动
            解决方法:
                1 给父元素设置border-top 或者 padding-top(分隔父子元素的margin-top)
                2 给父元素设置overflow:hidden;
                3 转换成行内块元素 display:inline-block;

    3 行内元素的margin和padding无效情况
        场景:给行内元素设置margin和padding时
        结果:
            1 水平方向的margin和padding布局中有效
            2 垂直方向的margin和padding布局中无效,而padding-bottom 会和 div 重叠,因为行内元素不会因 padding 而占据更多空间,它们会按照文本流排列。

代码:清除默认外边距

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 先注释,再打开,分别看效果 */
        *{
            margin: 0;
            padding: 0;
            /* 盒子自动内减*/
            box-sizing:border-box;
        }
        
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

效果图:注意上面和左边的边距变化

CSS3-盒子模型-边距问题          CSS3-盒子模型-边距问题

 文章来源地址https://www.toymoban.com/news/detail-499041.html

 

代码:盒子外边距合并

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        div{
            width: 200px;
            height: 200px;
            text-align: center;
            line-height: 200px;
            background-color: pink;
        }
        .one{
            margin-bottom: 20px;
        }
        .two{
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div class="one">盒子一</div>
    <div class="two">盒子二</div>
</body>
</html>

效果图:

CSS3-盒子模型-边距问题

 CSS3-盒子模型-边距问题

 

代码:盒子外边距塌陷

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .father{
            width: 300px;
            height: 300px;
            background-color: pink;
        }
        .son{
            width: 100px;
            height: 100px;
            background-color: green;
            /* 给子盒子设置上外边距,应该是子对父下移30px才对,但是父子一起下移了 */
            /* 这是因为父子的上外边界margin-top重合了 */
            margin-top: 30px;
        }

    </style>
</head>
<body>
    <div class="father">
        <div class="son">
        </div>
    </div>
</body>
</html>

效果图:

CSS3-盒子模型-边距问题

 

代码:行内元素的margin和padding无效情况

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        div{
            width: 200px;
            height: 200px;
            text-align: center;
            line-height: 200px;
            background-color: pink;
        }
        span{
            background-color: green;
            /* 1 水平方向的margin和padding布局中有效 */
            margin-right: 20px;
            padding-left: 20px;
            /* 2 垂直方向的margin和padding布局中无效 */
            margin-top: 30px;
            /* padding-bottom 会和 div 重叠,因为行内元素不会因 padding 而占据更多空间,它们会按照文本流排列。 */
            padding-bottom: 30px;
        }
    </style>
</head>
<body>
    <div class="one"></div>
    <span>1我是一个行内元素1</span><span>2我是一个行内元素2</span><span>3我是一个行内元素3</span>
    <div class="two"></div>
</body>
</html>

效果图:

CSS3-盒子模型-边距问题

 

到了这里,关于CSS3-盒子模型-边距问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【CSS】盒子模型阴影 ( box-shadow: 水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色 内外阴影; )

    盒子模型阴影 使用 如下 属性设置 : 只有 前两个阴影 , 水平阴影 和 垂直阴影 必须写 , 后面的四个值可以省略 ; 标准的阴影代码 : 展示效果 : 水平阴影代码 : 只修改第一个属性值 ; 展示效果 : 水平阴影代码2 : 只修改第一个属性值 ; 展示效果 : 垂直阴影代码 : 只修改第二个属

    2024年02月12日
    浏览(51)
  • CSS3中盒子居中

    (1)利用定位(子绝父相)、margin-left、和margin-top实现 (2) 利用定位(子绝父相)、transfrom属性实现 (3) 利用flex布局实现盒子居中

    2024年02月22日
    浏览(36)
  • css如何给盒子底部加阴影,CSS3 --添加阴影(盒子阴影、文本阴影的使用)

    CSS3 - 给div或者文字添加阴影(盒子阴影、文本阴影的使用) CSS3定义了两种阴影:盒子阴影和文本阴影。其中盒子阴影需要IE9及其更新版本,而文本阴影需要IE10及其更新版本。下面分别介绍两种阴影的使用: 1,盒子阴影 (1)盒子阴影的属性是 box-shadow 1 box-shadow:5px 5px 10px g

    2024年02月10日
    浏览(56)
  • CSS系列之盒子阴影box-shadow(CSS3)

    用于在元素的框架上添加阴影效果。你可以在同一个元素上设置多个阴影效果,并用逗号将他们分隔开。该属性可设置的值包括 阴影的X轴偏移量 、 Y轴偏移量 、 模糊半径 、 扩散半径 和 颜色 。 当给出两个、三个或四个 length 值时。 如果只给出两个值, 那么这两个值将会被

    2023年04月08日
    浏览(52)
  • day11_2 CSS3弹性盒子flexbox

    弹性盒子由**弹性容器(Flex container)和弹性子元素(Flex item)**组成。 通过设置 display 属性 的值为 flex 或 inline-flex将其定义为弹性容器。 弹性容器内包含了一个或多个弹性子元素。 注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内

    2024年01月17日
    浏览(45)
  • CSS学习(2) - 边距与高宽 + 框模型

    文章首发于:欢迎大佬们前来逛逛 border 属性能够设置边框的属性,包括样式,颜色和宽度。 其中border-style可以设置边框的样式,具体属性如下: dotted - 定义点线边框 dashed - 定义虚线边框 solid - 定义实线边框 double - 定义双边框 groove - 定义 3D 坡口边框。效果取决于 border-co

    2023年04月16日
    浏览(30)
  • 【CSS】网站 网格商品展示 模块制作 ( 清除浮动需求 | 没有设置高度的盒子且内部设置了浮动 | 使用双伪元素清除浮动 )

    绘制的如下模块 : 在上面的盒子中 , 没有设置高度 , 只设置了一个 1215px 的宽度 ; 在列表中每个列表项都设置了 浮动 ;   之前的盒子都设置了高度 , 因此其中虽然设置了浮动 , 但不会影响到后续的页面布局 ; 上述模型中 , 没有设置高度 , 并且设置了浮动 , 如果不清除浮动 , 后

    2024年02月10日
    浏览(49)
  • 【CSS】课程网站 网格商品展示 模块制作 ③ ( 清除浮动需求 | 没有设置高度的盒子且内部设置了浮动 | 使用双伪元素清除浮动 )

    如果盒子没有设置高度 , 并且盒子中还设置了浮动 , 如上一篇博客 【CSS】课程网站 网格商品展示 模块制作 ② ( 网格商品展示盒子模型测量及样式 | 处理列表间隙导致意外换行问题 | 代码示例 ) 中绘制的如下模块 : 在上面的盒子中 , 没有设置高度 , 只设置了一个 1215px 的宽度

    2023年04月09日
    浏览(41)
  • 微信小程序内外边距以及边框

    在微信小程序中设置内外边距和边框可以使用 CSS 样式来实现,具体如下: 内外边距: 通过设置 padding 和 margin 来控制元素的内外边距。 例如,设置一个 div 元素的内外边距为 10px: 上面的代码表示该 div 元素的内外边距都为 10px。 在微信小程序中,可以使用padding来设置组件

    2024年02月03日
    浏览(45)
  • 【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )

    需求 : 制作如下搜索栏 ; 首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ; 然后 , 设置固定定位盒子垂直方向位置 , 设置为 top: 0; 紧贴顶部 ; 再后 , 设置 left: 50% 样式 , 将盒子左侧设置到中心位置 , 这个 50% 是相对于父容器的 比

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包