【前端笔记】网页布局与CSS盒子模型

这是我的第一篇前端学习笔记。前端网页开发我在初一就开始学习相关内容,但是现在也忘得差不多了,写网页经常要查资料问AI也挺麻烦的,所以我想梳理一下相关的内容。

盒子模型 / The box model

在前端网页中,每个元素都是一个盒子,它有内容(content),内边距(padding),边框(border),外边距(margin),如下图清晰的展示了这些组成部分的位置

Block Boxes & Inline Boxes

block box 顾名思义是块状盒子,它会在HTML文档中另起新的一行放置元素,inline box 则不会换行。使用display属性来指定盒子显示属性。需要注意的是当“display: inline”时width和height属性不会生效。还有一种显示方式:inline-block,它即保持了行内属性,同时也保留了块级元素的特性

Inner and outer display types

每个盒子都有inner display type和outer display type两个属性,前者定义盒子内的元素如何排列,后者定义盒子本身如何排列。比如上面所说”display: block”和”display: inline”都是outer display type,而flex,grid这样的属性值都是inner display type。

例子 / Example

接下来是一个示例:


<body>
    <div class="container">
        <div class="content">
             <p>Content1</p>
        </div>

        <div class="content">
             <p>Content2</p>
        </div>
    </div>
</body>
body {
    width: 50%;
}

.container {
    padding: 10px;
    border: 1px solid blueviolet;
    border-radius: 14px;
}

.content {
    display: block;
    border: 1px solid blue;
    border-radius: 14px;
    margin: 10px;
}

以下是浏览器中显示的效果:

可以看到两个div都是block显示方式,所以换行显示。这里还涉及到外边距重叠(Margin Collapse),两个div垂直放置,中间的距离取的是两个div的margin最大值,而不是叠加。内层div和外层div的距离则是由外层div的padding和内层div的margin相加而得。

接下来把内层div的显示方式改为inline-block:

此时两个div就并排显示了,并且间距为两个margin相加(只有垂直margin取最大值)

至于为什么没有用inline是因为inline属性的元素行高受父容器行高(line-height)限制,inline元素并不会向外挤压,会挡住边框。

可以在浏览器调试工具中看到一个盒子的各个部分占用的空间。

本文作者: undefined
文章标题:【前端笔记】网页布局与CSS盒子模型
本文地址:https://blog.xuxiny.top/index.php/2025/06/29/1232/
版权说明:若无注明,本文均由undefined原创,转载请保留文章出处。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇