首页 > 其他分享 >CSS盒子模型的外边距详解

CSS盒子模型的外边距详解

时间:2024-11-19 13:13:53浏览次数:3  
标签:块级 盒子 auto 元素 详解 外边 margin CSS

CSS盒子模型的外边距(margin)是控制元素之间间距的重要属性。以下是与CSS盒子模型外边距相关的所有重要知识点:

一、外边距的概念

外边距是指盒子边框与其他元素边框之间的空白区域。它用于控制元素之间的距离,从而调整页面布局。
在这里插入图片描述

二、外边距的设置

在CSS中,可以使用margin属性或margin-top、margin-right、margin-bottom和margin-left属性来设置外边距。

属性作用
margin-left左外边距
margin-right右外边距
margin-top上外边距
margin-bottom下外边距
margin属性:

是一个简写属性,可以设置一个声明中的所有外边距属性。
可以接受一个或多个值,用于分别设置上、右、下和左边距的大小。

如果只指定一个值,则会应用于所有四个边距。
如果指定两个值,则第一个值应用于上下边距,第二个值应用于左右边距。
如果指定三个值,则第一个值应用于上边距,第二个值应用于左右边距,第三个值应用于下边距。
如果指定四个值,则分别应用于上、右、下和左边距。

margin-top、margin-right、margin-bottom和margin-left属性:
分别用于设置上、右、下和左边距的大小。
可以接受一个长度值(如像素、百分比等)或关键字(如auto、inherit等)。

三、外边距的取值

1.长度值:可以使用像素(px)、点(pt)、em等单位来定义外边距的大小。这些单位是固定的,可以精确地控制外边距的宽度。

2.百分比值:外边距也可以使用百分比值来设置。百分比值是相对于包含块(通常是父元素)的宽度计算的。例如,如果将一个元素的外边距设置为10%,则外边距的大小将是包含块宽度的10%。

3.自动值(auto):在某些情况下,可以使用auto值来让浏览器自动计算外边距的大小。例如,当使用margin: 0 auto;时,可以将块级元素水平居中。

四、外边距对盒子模型尺寸的影响

外边距不会增加元素本身的尺寸,但会影响元素与其他元素之间的距离。如果增加外边距,元素之间的距离会相应增大,而元素本身的宽度和高度不会发生变化。

五、外边距的合并(折叠)

1.相邻块级元素垂直外边距的合并:当上下相邻的两个块级元素相遇时,如果上面的元素有下外边距(margin-bottom),下面的元素有上外边距(margin-top),则它们之间的垂直间距不是这两个外边距之和,而是取这两个值中的较大者。这种现象被称为相邻块级元素垂直外边距的合并。

解决方案:尽量给只给一个盒子添加margin值

2.嵌套块级元素垂直外边距的塌陷:对于两个嵌套关系(父子关系)的块元素,如果父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷(即采用)较大的外边距值。

解决方案:

  1. 可以为父元素定义上边框。
  2. 可以为父元素定义上内边距
  3. 可以为父元素添加overflow:hidden。

六、文字居中和盒子居中区别

  1. 盒子内的文字水平居中是 text-align: center, 而且还可以让 行内元素和行内块居中对齐
  2. 块级盒子水平居中 左右margin 改为 auto
text-align: center; /* 文字 行内元素 行内块元素水平居中 */
margin: 10px auto; /* 块级盒子水平居中 左右margin 改为 auto 就阔以了 上下margin都
可以 */

七、插入图片和背景图片区别

  1. 插入图片 我们用的最多 比如产品展示类 移动位置只能靠盒模型 padding margin
  2. 背景图片我们一般用于小图标背景 或者 超大背景图片 背景图片 只能通过 background-position
img {
width: 200px;/* 插入图片更改大小 width 和 height */
height: 210px;
margin-top: 30px; /* 插入图片更改位置 可以用margin 或padding 盒模型 */
margin-left: 50px; /* 插入当图片也是一个盒子 */
}
div {
width: 400px;
height: 400px;
border: 1px solid purple;
background: #fff url(images/sun.jpg) no-repeat;
background-position: 30px 50px; /* 背景图片更改位置 我用 backgroundposition */
}

八、外边距的常见问题及注意事项

1.负外边距值:允许指定负外边距值,这会使元素向其相邻元素移动。

2.外边距的自动计算:在使用auto值时,浏览器会自动计算外边距的大小。例如,在水平方向上使用margin: 0 auto;可以将块级元素水平居中。但请注意,这种方法要求块级元素必须指定宽度。

3.外边距的百分比取值:当使用百分比值来设置外边距时,该百分比是相对于包含块的宽度计算的。如果包含块的宽度发生变化,外边距的大小也会相应变化。

4.外边距与浮动元素:当元素浮动时,外边距的行为可能会发生变化。特别是当浮动元素与相邻的非浮动元素相遇时,可能会出现一些预期之外的布局效果。

综上所述,CSS盒子模型的外边距是控制元素之间间距的重要属性。通过合理设置外边距,可以实现更好的页面布局效果。

扩展

一、清除元素的默认内外边距(重要)

为了更灵活方便地控制网页中的元素,制作网页时,我们需要将元素的默认内外边距清除

* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}

注意:行内元素为了照顾兼容性, 尽量只设置左右内外边距, 不要设置上下内外边距

二、圆角边框

语法:

border-radius:length;

其中每一个值可以为 数值或百分比的形式。
技巧:让一个正方形 变成圆圈。

三、盒子阴影

语法:

box-shadow:水平阴影 垂直阴影 模糊距离(虚实) 阴影尺寸(影子大小) 阴影颜色 内/外阴影; 1

在这里插入图片描述

标签:块级,盒子,auto,元素,详解,外边,margin,CSS
From: https://blog.csdn.net/2301_80409533/article/details/143859062

相关文章

  • HTML·第八章 利用CSS制作导航栏菜单
    8.1水平顶部导航栏水平顶部导航栏(HorizontalTopNavigationBar)是网页设计中常用的一种导航栏布局,通常位于页面的顶部,以水平的方式排列导航选项。这种布局便于用户快速访问网站的主要部分。常见的设计元素包括菜单项、图标、搜索框、以及用户信息等。一、水平顶部导航栏......
  • 详解 fftw3
    FFTW3(FastestFourierTransformintheWestversion3)是一个用来计算离散傅里叶变换(DiscreteFourierTransform,DFT)及其逆变换的高效库。它由MatteoFrigo和StevenG.Johnson开发,是广泛使用的自由开源软件,专为高效的快速傅里叶变换设计,支持多种操作系统,包括Linux......
  • 详解 C++ 的内存序模型
    详解C++的内存序模型C++提供了内存序模型来控制多线程程序中不同线程对共享内存的访问顺序。最常用的是顺序一致性内存模型(memory_order_seq_cst),但它也提供了其他模型(如memory_order_relaxed)以优化性能。一、顺序一致性内存模型(memory_order_seq_cst)定义顺序一致性......
  • 第八章 利用CSS制作导航菜单
    8.1水平顶部导航栏8.1.1简单水平导航栏的设计与实现8.1.1.1导航栏的创建通常使用HTML的无序列表(<ul>)和列表项(<li>)来创建导航栏的基本结构。通过CSS对列表进行样式设置,去除默认的列表样式,如项目符号等,使其呈现为水平排列的导航栏<!DOCTYPEhtml><html> <head> <......
  • 【网络安全】-网络安全的分类详解_网络安全类型
    介绍网络安全是保护计算机系统、网络和数据免受未经授权的访问、攻击、破坏或泄露的实践。对于初学者来说,了解网络安全的分类是建立安全意识的关键。在本教程中,我们将深入研究网络安全的不同方面,从基础理论到实际操作,以帮助小白用户更好地保护自己的数字生活。1.网络层......
  • 基于 Levenberg - Marquardt 法的 BP 网络学习改进算法详解
    基于Levenberg-Marquardt法的BP网络学习改进算法详解一、引言BP(BackPropagation)神经网络在众多领域有着广泛应用,但传统BP算法存在收敛速度慢、易陷入局部最优等问题。Levenberg-Marquardt(LM)算法作为一种有效的优化算法,被应用于改进BP网络学习,能够显著提高训......
  • 基于共轭梯度法的 BP 网络学习改进算法详解
    基于共轭梯度法的BP网络学习改进算法详解一、引言BP(BackPropagation)神经网络是一种强大的机器学习工具,广泛应用于模式识别、函数逼近、数据分类等领域。然而,传统的BP算法在训练过程中存在一些问题,例如收敛速度慢、容易陷入局部最优解等。共轭梯度法作为一种高效的优......
  • 遗传算法工具箱详解
    遗传算法工具箱详解一、引言遗传算法作为一种强大的优化算法,在解决复杂的优化问题中得到了广泛应用。为了方便用户使用遗传算法,许多编程语言都提供了相应的遗传算法工具箱。这些工具箱集成了遗传算法的核心功能,包括种群初始化、适应度评估、选择、交叉、变异等操作,使用户......
  • 遗传算法原理与详解
    遗传算法原理与详解一、引言遗传算法(GeneticAlgorithm,GA)是一种基于自然选择和遗传学原理的优化搜索算法。它模拟生物进化过程中的遗传、变异、交叉等机制,在复杂的搜索空间中寻找最优解或近似最优解。遗传算法具有广泛的应用,包括函数优化、组合优化、机器学习、自动控制等......
  • Python设计模式详解之1 —— 单例模式
    单例模式(SingletonPattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点。单例模式适用于需要确保全局唯一实例的场景,例如配置管理、日志记录器、数据库连接等。1.单例模式的特点全局唯一性:在整个应用程序的生命周期内,单例类只能有一个实例。全局访问:......