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

相关文章
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
342 1
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
327 0
|
6月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
213 1
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
438 0
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
787 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
633 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
844 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
290 34