CSS盒子模型

本文详细介绍了CSS盒子模型的基础概念,包括边框(border)、内边距(padding)、外边距(margin)等属性及其简写形式。同时探讨了标准流、浮动及定位(position)的概念,以及如何使用display属性控制元素显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【学习笔记之CSS+DIV】CSS盒子模型

 

*红色标记的为默认值

  • border(边框):border-top,border-bottom, border-left,border-right

     1.border-color(边框颜色);

     2.border-width(边框粗细):medium|thin| thick|数值;

     4.border-style(边框样式):none|hidden(隐藏)|dotted(虚线)|dashed(点线)|solid(实线)|double(双实线)|groove(IE不支持)|ridge(IE不支持)|inset(IE不支持)|outset(IE不支持)。

  • padding(内边距):padding-top,padding-bottom ,padding-left,padding-right
  • margin(外边距):margin-top,margin-bottom ,margin-left,margin-right
    当margin设为负数时,会使被设为负数的块向相反的方向移动,甚至覆盖在另外的块上。当块之间是父子关系时,通过设置子块的margin参数为负数,可以将子块从父块中“分离”出来。
  • background-color(背景颜色)
    1.在给元素设置background-color背景色时,IE作用的区域为content+padding,而Firefox则是content+padding+border。
    2.body是一个特殊的盒子,它的背景色会延伸到margin的部分。
  • 属性值的简写形式

     1.如果给出2个属性值,前者表示上下的属性,后者表示左右的属性;

     2.如果给出3个属性值,前者表示上的属性,中间的数值表示左右的属性,后者表示下的属性;

     3.如果给出4个属性值,依次表示上、右、下、左的属性,即顺时针排序。

  • 标准流
    所谓“标准流”,就是指在不使用其他的与排列和定位相关的特殊CSS规则时,各种元素的排列规则。
  • 元素的分类

     1.块级元素(block):占一行

     块级元素div1和div2之间的垂直margin=MAX(div1的margin-bottom , div2的margin-top)。

     2.行内元素(inline

     行内元素span1和span2之间的水平margin=span1的margin-right + span2的margin-left

  • 盒子的浮动

     1.设置浮动:float:none|left|right

     2.清除浮动:clear:none|left|right|both

  • 扩展盒子的高度

实际效果

希望实现的效果

     一个div的范围是由它里面的标准流内容决定的,与里面的浮动内容无关。

     【解决方法】在其后添加一个div,并设置样式如下:

     .father .clear{

     margin:0;

     padding:0;

     border:0;

     clear:both;

     }

     *注意:这里必须指定其父div,并覆盖原来对margin,padding和border的设置。

  • 盒子的定位
    position:static|relative|absolute|fixed
    1.static这是默认的属性值,也就是该盒子按照标准流(包括浮动方式)进行布局。
    2.relative相对定位。
    (1)除了将position属性设置为relative之外,还需要指定一定的偏移量,水平方向通过left(向右)或者right(向左)属性来指定,竖直方向通过top(向下)或者bottom(向上)属性来指定。
    (2)使用相对定位的盒子,会相对于它原本的位置,通过偏移指定的距离,到达新的位置;
    (3)使用相对的盒子仍在标准流中,它对父亲和兄弟盒子都没有任何影响。
    3.absolute绝对定位。
    (1)使用绝对定位的盒子以它的“最近”一个“已经定位”(position属性被设置,并且被设置的不是static)的“祖先元素”为基准进行偏移。如果没有已经定位的祖先元素,那么会以浏览器窗口为基准进行定位;
    (2)使用绝对定位的盒子从标准流中脱离,这意味着它们对其后的兄弟盒子的定位没有影响,其他的盒子就好像这个盒子不存在一样;
    (3)如果设置了绝对定位,而没有设置偏移属性,那么它仍将保持在原来的位置。这个性质可以用于需要使某个元素脱离标准流,而仍然希望它保持在原来的位置的情况;
    (4)IE6的BUG:错误的位置和正确的位置相差了父div的padding的宽度。
    【解决方法】给父div(定位的基准盒子)增加一条CSS样式:height:1%;
    4.fixed(IE6不支持)称为固定定位,它和绝对定位类似,只是以浏览器窗口为基准,进行定位。
  • 盒子的display属性
    display : inline|block|none

 

### CSS 盒子模型详解 CSS盒子模型是网页设计和布局中的核心概念之一。它描述了HTML文档结构化的方式以及如何通过样式控制这些元素的空间分配。 #### 1. 盒子模型的组成部分 每个HTML元素都可以看作是一个矩形盒子,该盒子由以下几个部分组成[^1]: - **内容 (Content)**: 这是盒子的主要区域,用于放置文本或其他媒体内容。 - **内边距 (Padding)**: 它位于内容边缘与边框之间的空白区域,用来增加内容周围的可读空间。 - **边框 (Border)**: 边框围绕着内边距和内容,可以设置不同的宽度、颜色和风格来定义边界线。 - **外边距 (Margin)**: 外边距是在边框之外的一片透明区域,用于分隔相邻的盒子并防止它们相互接触。 #### 2. 盒子模型属性 以下是几个重要的盒子模型相关属性及其功能说明: ##### 2.1 `width` 和 `height` 属性 这两个属性分别设定盒子的内容区宽度和高度。需要注意的是,默认情况下,指定的尺寸仅适用于内容区域而不包括 padding, border 或 margin 的值[^2]。 ##### 2.2 `border` 边框属性 可以通过此属性自定义边界的外观,比如粗细、线条样式(实线、虚线等)以及颜色[^3]。 ##### 2.3 `padding` 内边距 用于调整内部填充量,即内容与其周围边框间的距离。它可以单独应用于上、右、下、左各个方向或者统一应用到所有侧面[^1]。 ##### 2.4 `margin` 外边距 负责管理与其他元素之间外部间距的部分。同样支持多向配置,并且当两个垂直 margins 邻近时会发生折叠现象——取两者较大者作为最终间隔[^2]。 ##### 2.5 盒子模型占位计算 总的实际占用面积等于 content area 加上其四周的所有附加层厚度之和。例如给定一个具有固定 width/height 值为100px 的 div 元素加上额外参数如下所示,则实际渲染出来的大小将是 `(100 + 5 + 5 + 20 + 20)` px × `(100 + 5 + 5 + 20 + 20)` px: ```css div { width: 100px; height: 100px; border: 5px solid black; /* 上下左右均为5像素 */ padding: 20px; /* 各侧均设为20像素 */ } ``` #### 3. box-sizing 属性 为了简化复杂布局的设计过程,引入了一个名为 `box-sizing` 的新特性。默认行为遵循传统标准模式 (`content-box`) ,其中声明的 dimensions 不含 paddings/borders;而另一种选项叫做 alternate model(`border-box`) 可让开发者更直观地操作整体尺寸因为此时所指代的就是整个可视范围内的确切数值. ```css /* 使用 border-box 来改变盒模型的行为方式*/ * { box-sizing: border-box; } ``` 以上便是关于CSS盒子模型的一些基本介绍及常见应用场景下的实现方法论探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值