CSS之常用属性、元素的显示模式、盒模型(下)

简介: CSS之常用属性、元素的显示模式、盒模型(下)

三、盒模型

🍎总述

每一个 HTML 元素就相当于是一个矩形的 "盒子"

这个盒子由这几个部分构成

  • 边框 border
  • 内容 content
  • 内边距 padding
  • 外边距 marg

先来张图

fab39690f14f49159dca388647d46e10.png

5c54367074aa4a1f94ddc38aea476236.png

🍎边框

基础属性

  1. 粗细: border-width
  2. 样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
  3. 颜色: border-color

🌰一个边框的代码栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- witdth粗细,border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框,颜色: border-color -->
    <style>
        .test {
            width: 200px;
            height: 100px;
            border-width: 50px;
            border-style: solid;
            border-color: brown;
        }
    </style>
</head>
<body>
    <div class="test">
        这是一个块级元素
    </div>
</body>
</html>


效果展示


c8c2d8735e8e4b928c83cb703b0d53ad.png

🌰再看一个栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- border-witdth粗细,border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框,颜色: border-color -->
    <!-- 通过通配符选择器,我们就可以使我们所有的盒子都不被边框撑大 -->
    <style>
        * {
            box-sizing: border-box;
        }
        .test {
            width: 200px;
            height: 100px;
            /* border-width: 10px;
            border-style: solid;
            border-color: brown; */
            border: 10px solid brown;
            /* 简写的和上面的效果是一样的 */
        }
        p {
            width: 200px;
            height: 100px;
            border-top: 20px dashed green; 
            border-bottom: 10px dotted gray;
            border-left: 10px solid yellow;
            border-right: 5px solid blue;
        }
    </style>
</head>
<body>
    <div class="test">
        这是一个块级元素
    </div>
    <p>
        这是一个段落
    </p>
</body>
</html>

3c3b3aed9b0f483a841657b73cfe77cf.png

注意,通常情况下,我们设置的width和height是指的内容的大小,而一个盒子有了边框后,默认情况下我们的盒子会被撑大

但如果你设置了border-box,让盒子不再撑大。这时width和height指的就是整体盒子的大小,相当于内容大小就被缩水了


 

🍎内边距

padding 设置内容和边框之间的距离.


基础写法


默认内容是顶着边框来放置的. 用 padding 来控制这个距离

可以给四个方向都加上边距


padding-top

padding-bottom

padding-left

padding-right


🌰栗子


2b054d1aeb9349dda02396a60a70a4d8.png


637590b4ceb1435d974299143e3d4510.png

一点补充:复合写法

可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]


padding: 5px; 表示四个方向都是 5px

padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px

padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px

padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)


🍎外边距

基础写法

控制盒子和盒子之间的距离.

可以给四个方向都加上边距

  • margin-top
  • margin-bottom
  • margin-left
  • margin-rig


90b21802268843aba12e617eddffd86c.png

324de40803544cccabc6adc10acbbe54.png

288dfdeb9bb34bc1bba971546723e5f8.png

🍎块级元素居中

a11928ca01ce481081a41540bb51f4fb.png

6edc1d98751c414d99ab13c530c59846.png

🔔注意:

这个水平居中的方式和 text-align 不一样.

margin: auto 是给块级元素用得到.

text-align: center 是让行内元素或者行内块元素居中的.

另外, 对于垂直居中, 不能使用 "上下 margin为auto"的方式

 


🍎去除浏览器默认样式

2e065ef21b374e8591f2cff56d471f0e.png

四、弹性布局

📝初体验

使用前

327615d4302f41b2931c1f947381f572.png 使用后


cb3c522625fd4483a8dab06820537ed9.png


进一步的使用

e0f585155c5f468f92c7ccdf4a31e564.png



a3251e4b950d4fd0a247c30268b21785.png


📝flex 布局基本概念

flex 是 flexible box 的缩写. 意思为 "弹性盒子".

任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.

flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式.


基础概念:

被设置为 display:flex 属性的元素, 称为 flex container

它的所有子元素立刻称为了该容器的成员, 称为 flex item

flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

10ab501782474034ae6aba5c75185198.png

6baf1bb919d149909238c6653ca30781.png

📝 实现元素的居中

73089bbb9a534ad0a5f4811404418375.png


8bfda80a79544843a9f04e2fde4fd37e.png

📝注意

理解 stretch(拉伸):

这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度, 那么就会填充满父元素的高度

align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents

相关文章
|
11天前
|
前端开发
学习css的clip-path属性
【7月更文挑战第1天】了解CSS `clip-path`属性,用于定义元素显示区域的裁剪形状,如圆形、椭圆、多边形、矩形及SVG路径。通过配合过渡和动画,可创建动态交互效果。例如,`clip-path: circle(radius at center);`用于创建圆形裁剪,`polygon`用于自定义多边形。还可以使用`path()`引用SVG路径数据。[资源推荐:bennettfeely.com/clippy/](https://bennettfeely.com/clippy/),提供交互式工具测试不同形状。
29 0
学习css的clip-path属性
|
19天前
|
前端开发 容器
CSS对行级元素的影响
【7月更文挑战第4天】CSS对行级元素的影响
17 2
|
18天前
|
前端开发 容器
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
12 0
|
18天前
|
前端开发 JavaScript C++
CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)
CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)
18 0
|
22天前
|
前端开发
css实战——清除列表中最后一个元素的下边距
css实战——清除列表中最后一个元素的下边距
33 0
|
23天前
|
前端开发
css 超实用的:empty —— 隐藏空元素、缺失字段智能提示
css 超实用的:empty —— 隐藏空元素、缺失字段智能提示
12 0
|
24天前
|
前端开发
设计--字体样式---斜体,CSS字体属性用法
设计--字体样式---斜体,CSS字体属性用法
|
10月前
|
Web App开发 前端开发 容器
CSS进阶: 选择器进阶、背景相关属性、元素显示模式、CSS特性
CSS进阶: 选择器进阶、背景相关属性、元素显示模式、CSS特性
126 1
|
19天前
|
前端开发 UED
使用HTML和CSS创建响应式表格
在网页设计中,表格是一种组织和展示数据的有效方式。本文档将指导你如何使用HTML和CSS来创建一个既美观又响应式的表格,以便在不同设备和屏幕尺寸上都能良好显示。我们将涵盖基础的HTML表格结构,样式美化以及如何实现响应式布局,使得表格内容在小屏设备上也能清晰阅读
63 0