第四章必备前端基础知识-第二节3:CSS盒模型和浮动

news2024/11/14 18:35:40

文章目录

  • 一:盒模型
    • (1)border
    • (2)padding
    • (3)margin
  • 二:flex布局

一:盒模型

盒模型:在HTML中,每个标签(或元素)相当于是一个盒子,这个盒子由以下四个部分构成

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

在这里插入图片描述

(1)border

border:可以利用以下属性来设置border

  • border-width:边框粗细
  • border-style:边框样式
    • solid:实现
    • dashed:虚线
    • dotted:点线
  • border-color:边框颜色
div {  
    width: 200px;  
    height: 100px;  
    background-color: indianred;  
    border-width: 5px;  
    border-style: solid;  
    border-color:green;  
  
}

当然也可以简写为(没有顺序要求)

div {  
    width: 200px;  
    height: 100px;  
    background-color: indianred;  
    border:5px solid green;  
  
}

在这里插入图片描述

仔细观察上图,最终盒子大小并不是设定的200×100,而是210×110,这是因为边框会撑大盒子,这样的行为并不是我们所期望的,所以使用box-sizing: border-box禁止这种行为,转而让content缩水

在这里插入图片描述

另外可以也可以单独设定任意方向上的边框,使用border-left/right/bottom/top

div {  
    width: 200px;  
    height: 100px;  
    background-color: indianred;  
    border-top:5px solid green;  
    border-left:5px solid green;  
    box-sizing:border-box;  
    text-align: center;  
    line-height: 100px;  
  
}

在这里插入图片描述

(2)padding

padding:默认状态下内容会紧挨着边框,而padding则可以控制这个距离,和boarder一样,也可以分别在四个方向上设定或者统一设定

  • padding-top
  • padding-bottom
  • padding-left
  • padding-right
div {  
    width: 200px;  
    height: 100px;  
    background-color: indianred;  
    padding: 10px;  
  
    text-align: center;  
    line-height: 100px;  
  
}

在这里插入图片描述

可以看到,paddingborder一样,默认也会撑大盒子,所以这里也可以利用box-sizing:border-box

div {  
    width: 200px;  
    height: 100px;  
    background-color: indianred;  
    padding: 10px;  
    box-sizing: border-box;  
  
    text-align: center;  
    line-height: 80px;  
  
}

在这里插入图片描述

(3)margin

margin:用于控制和盒子与盒子之间的距离,写法和borderpadding类似

<div id="one">测试元素1</div>  
<div id="two">测试元素2</div>  
<div id="three">测试元素3</div>
div {  
    width: 200px;  
    height: 100px;  
  
    text-align: center;  
    line-height: 100px;  
}  
  
#one {  
    background-color: red;  
    margin-bottom: 50px;  
}  
  
#two {  
    background-color: blue;  
}  
  
#three {  
    margin-top: 100px;  
    background-color: green;  
}

在这里插入图片描述

二:flex布局

flex布局:又称为弹性布局,是W3C于2009年推出的一种布局方式,可以简单、快速、响应式的实现各种布局页面,现在已经得到了所有主流浏览器的支持

如下,设置一个div,内部含有3个span

<div>  
    <span>1</span>  
    <span>2</span>  
    <span>3</span>  
</div>
div {  
    width: 100%;  
    height: 150px;  
    background-color: red;  
}  
  
span {  
    width: 100px;  
    background-color: green;  
}

效果如下,并不是我们预期的样子,这是因为对于行内标签,其宽度、高度、外边距都是不生效的

在这里插入图片描述

所以这里我们把span转换为块级标签

div {  
    width: 100%;  
    height: 150px;  
    background-color: red;  
}  
  
span {  
    width: 100px;  
    background-color: green;  
    display: block;  
}

效果如下,此时宽度生效,但三个标签独占一行

在这里插入图片描述

如果我们想要让这几个标签能够在水平方向上排列开就要使用到flex布局,注意在设定时要给父标签设定,并且它只会作用于子标签

div {  
    width: 100%;  
    height: 150px;  
    background-color: red;  
    display: flex;  
}  
  
span {  
    width: 100px;  
    background-color: green;  
    display: block;  
}

效果如下,可以发现此时这几个标签在水平方向上排列开来(水平方向上默认左对齐,高度和父标签一样(当然也可以指定具体大小)

在这里插入图片描述

所以flex布局其实解决了如何在一行里排列标签的问题。由于块级标签本身就是按照垂直方向排列,所以在实际网页布局的时候,就会按照一行一行的方式布局,然后在每一行里如果有多个标签并列则会使用flex规则进行布局

此时,我们便可以使用相关属性对这些标签在水平方向上随意布局,例如居中

div {  
    width: 100%;  
    height: 150px;  
    background-color: red;  
    display: flex;  
    justify-content: center;  
}  
  
span {  
    width: 100px;  
    height: 50px;  
    background-color: green;  
    display: block;  
}

在这里插入图片描述

又或者以等间距排列

div {  
    width: 100%;  
    height: 150px;  
    background-color: red;  
    display: flex;  
    justify-content: space-around;  
}  
  
span {  
    width: 100px;  
    height: 50px;  
    background-color: green;  
    display: block;  
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis和Jpa

这里写目录标题1.Mybatis1.1 JDBC的缺点1.2 Mybatis的整体架构1.3 入门案例1.3.1 问题:无法连接到数据库服务器1.4 动态代理实现Mapper1.5 mybatis-config.xml配置1.5.1 properties属性读取外部资源1.5.2 settings设置1.5.3 typeAliases1.5.4 typeHandlers&#xff08;类型处理…

【Substance Designer】基础操作和节点学习记录

写在前面 这个记录稍微有点杂&#xff0c;大概是庄懂的技术美术入门课(美术向)-直播录屏-第20课和一些基础操作的记录合集吧&#xff01; 补充 学习发现&#xff0c;基础的节点是需要学习和记录的&#xff0c;但是真正用起来还是要多用多练&#xff01;所以这种简单的记录节点…

YOLOv5/v7 引入 RepVGG 重参数化模块

本篇博文代码出自YOLOv5-lite &#xff0c;YOLOv5-lite的作者在CSDN的账号是 pogg_ &#xff0c;大家可以关注一下&#xff0c;这也是一位在开源项目上做了很多工作的博主。 RepVGG的原理和融合推导过程可以看我的这篇博文&#xff1a;RepVGG&#xff1a;让VGG风格的ConvNets再…

机制设计原理与应用(三)Screening

文章目录3 Screening3.1 为单个不可分割的项目定价3.1.1 对θ\thetaθ的假设3.1.2 问题描述3.1.3 特性3.2 为无限可分的项目定价3.2.1 对θ\thetaθ的假设3.2.3 特性3.2.4 收益最大化3.2.5 最优解决方案3 Screening Screening theory&#xff1a;机制设计理论可以被看作是其多…

Cadence PCB仿真使用Allegro PCB SI生成振铃ringing仿真报告及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 本文简单介绍使用Allegro PCB SI生成网络的振铃性能评估的报告的方法,及振铃ringing报告要点导读。 2,生成报告 第1步,选择需要生成报告的网络,然后…

第二章 ArcGIS数据和地理数据库

文章目录第一节 ArcGIS和4D数据基本知识1 4D数据介绍1.1 DLG1.2 DEM1.3 DOM1.4 DRG1.5 4D表现2 ArcGIS的数据和4D数据对应3 栅格数据3.1 查看帮助3.2 空间分辨率3.3 分辨率与比例尺换算3.4 栅格数据介绍——cellsize3.5 栅格数据波段3.6 栅格格式4 栅格数据改变分辨率5 转换栅格…

【 uniapp - 黑马优购 | 登录与支付(2)】如何实现三秒后跳转和微信支付

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;见文末 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;…

Ubuntu20.04+MAVROS+PX4+Gazebo安装教程

Ubuntu20.04MAVROSPX4Gazebo安装PX4步骤安装MAVROS安装QGCPX4仿真安装PX4步骤 从github上clone源码 git clone https://github.com/PX4/PX4-Autopilot.git --recursive进入PX4-Autopilot文件夹&#xff0c;继续下载未下载完的组件 cd PX4-Autopilot/ git submodule update -…

flowable使用 act_hi_xxx

HistoryService 流程历史信息 act_hi_procinst : 历史流程信息&#xff0c;&#xff0c;如果流程执行完了&#xff0c;end_time_ 和 duration不为null // 没有执行完的List<HistoricProcessInstance> list historyService.createHistoricProcessInstanceQuery().unfi…

uniapp封装并全局挂载request请求

前言 日常开发中,前端项目中需要调用服务端api完成页面渲染,uniapp提供的请求api:uni.request相对繁琐;另外服务端提供的不同api仅子路径不同,api域名以及根路径都是相同的,一旦接口api变更,需要更改地方就会很多.鉴于以上可以将uni.request进行封装,简化开发. 目前uniapp项…

MySQL(四):B+树索引、聚簇索引、二级索引、联合索引

目录一、B树索引1.1 在没有索引时进行查找记录1.2 索引方案1.3 InnoDB中的索引方案二、聚簇索引三、二级索引四、联合索引五、InnoDB中B树索引的注意事项5.1 根页面的位置不会改变5.2 内节点中目录项记录的唯一性5.3 一个页面至少容纳两条记录一、B树索引 数据库中的用来存储数…

MySQL进阶篇之索引1

02、索引 2.1、索引概述 1、介绍 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构&#xff08;有序&#xff09;。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#…

Cepstral Analysis 倒谱分析

源过滤器分离 倒谱分析是另一种将声道滤波器响应与激励分开的方法&#xff08;如线性预测&#xff09; 它基于以下观察&#xff1a;语音信号的频谱是激励频谱和声道频率响应的乘积 可以使用log将乘法转换为加法&#xff0c;因此&#xff0c;“对数频谱”可以看作是对数激励频…

十七、Gtk4-Menu and action

Menu 用户经常使用菜单向计算机发出命令。它是这样的: 现在让我们分析一下上面的菜单。对象有两种类型。 “File”, “Edit”, “View”, “Cut”, “Copy”, “Paste” and “Select All”. 它们被称为“菜单项&#xff08;menu item&#xff09;”或简单地称为“item”。当…

字节青训前端笔记 | 前端调试

在程序员的世界中&#xff0c;BUG 一词相信同学们再熟悉不过了&#xff0c;本节课将围绕前端开发中所遇见的 BUG 出发&#xff0c;讲解作为一名合格的前端开发人员&#xff0c;你应该掌握哪些开发调试知识 Chorme DevTools Chorme DevTools 是 chorme内核为大家提供的高效的前…

gdb使用

gdb是一款UNIX及UNIX-like下的调试工具 gdb可用于调试用gcc编译的可执行文件&#xff0c;用gdb调试时gcc编译需要使用参数-g 本文是对于gdb在Linux下使用的基本命令的总结gdb调试视频演示&#xff0c;gdb调试基础指令&#xff0c;gdb调试其他命令&#xff0c;gdb常见错误说明 目…

23种设计模式(二十一)——命令模式【行为变化】

文章目录 意图什么时候使用命令真实世界类比命令模式的实现命令模式的优缺点亦称:动作、事务、Action、Transaction、Command 意图 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递…

Centos7 Docker安装APISIX

Centos7 Docker安装APISIX1 基础介绍1.1 概念1.2 特性1.3 架构图2 快速安装2.1 前提条件2.2 安装步骤2.2.1 git命令克隆apisix-docker仓库2.2.2 docker-compose启动apisix2.2.3 访问apisix dashboard3 简单使用3.1 准备接口3.2 创建服务3.3 创建路由3.4 测试请求1 基础介绍 1.…

Kubernetes:分享一个很简洁的 k8s 管理工具 Skooner

写在前面 博文内容为 Skooner 简单介绍包括下载安装导入集群基本功能使用Skooner 的 sa 使用的当前命名空间默认的 sa不会显示创建 sa ,当然可以单独创建理解不足小伙伴帮忙指正 我所渴求的&#xff0c;無非是將心中脫穎語出的本性付諸生活&#xff0c;為何竟如此艱難呢 -----…

Spring_FrameWork_10(MyBatisPlus)

lombok mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplTestvoid selectById(){IPage page new Page(2,2);bookDao.selectPage(page,null);System.out.println("当前页码值&#xff1a;"page.getCurrent());System.out.println…