(Java高级教程)第四章必备前端基础知识-第二节3:CSS盒模型和浮动

news2024/11/28 10:46:45

文章目录

  • 一:盒模型
    • (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/180263.html

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

相关文章

DaVinci:色彩匹配

z调色页面&#xff1a;色彩匹配Color&#xff1a;Color Match色彩匹配 Color Match调板是专业的一级调色工具&#xff0c;专门用于对视频图像进行精准的校色还原。色彩匹配时&#xff0c;先定位到视频中持有色卡的画面。在检视器左下角快捷菜单中选择“色卡” Color Chart工具&…

C 语言零基础入门教程(十二)

C enum(枚举) 枚举是 C 语言中的一种基本数据类型&#xff0c;它可以让数据更简洁&#xff0c;更易读。 枚举语法定义格式为&#xff1a; enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子&#xff0c;比如&#xff1a;一星期有 7 天&#xff0c;如果不用枚举&…

【Linux】vim编辑器的使用

文章目录vim的基本概念vim指令集复制粘贴撤销、剪切光标定位vim的基本概念 vim是一款多模式的编辑器&#xff0c;在我们常用的模式有3~5种。分别是命令模式&#xff08;command mode&#xff09;、插入模式&#xff08;Insert mode&#xff09;和底行模式&#xff08; last lin…

【PHP 随记】—— ThinkPHP 配置数据库

&#x1f449;总目录&#x1f448;\large\colorbox{skyblue}{&#x1f449;总目录&#x1f448;}&#x1f449;总目录&#x1f448;​ 文章目录1、数据库连接及导入① 数据库连接② 数据库导入2、配置 ThinkPHP 数据库连接信息① 配置连接信息1、数据库连接及导入 ① 数据库连…

大数据分析案例-基于随机森林算法构建人口普查分析模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Datawhale 202301 设计模式 | 人工智能 现代方法 习题

Exercise 1 绪论 Q&#xff1a;用您自己的话来定义&#xff1a;&#xff08;a&#xff09;智能&#xff0c;&#xff08;b&#xff09;人工智能&#xff0c;&#xff08;c&#xff09;智能体&#xff0c;&#xff08;d&#xff09;理性&#xff0c;&#xff08;e&#xff09;逻…

【大数据趋势】1月24日 流动、固定汇率和货币政策独立性三者的三者选二,A股持续的会上涨。

前言&#xff1a;昨天写的被朋友看到&#xff0c;认为我写的太水&#xff0c;故意不提日常讨论的那个关键指标&#xff0c;所以下午重新修改了一下。 确定欧美大势市场形态1 - 美元指数 关键位置大概率不会一次就破&#xff0c;有较强反弹可能&#xff0c;带动美股反弹 作为长…

MH-100X微波运动传感器介绍

MH-100X微波运动传感器简介微波运动传感器是利用多普勒雷达原理设计的微波移动物体探测器。不同于一般的红外探测器&#xff0c;微波传感器通过通过检测物体反射的微波来探测物体的运动状况&#xff0c;检测对象将并不会局限于人体&#xff0c;还有很多其他的事物。微波传感器不…

java基础语法——条件判断与循环语句

目录 一、流程控制语句 流程控制语句分类 二、顺序结构 顺序结构概述 顺序结构图 三、选择结构 选择结构概述 选择结构(if语句1) 选择执行图1 选择结构(if语句2) 选择执行图2 选择结构(if语句3) 选择执行图3 选择结构(switch语句) switch语句执行流程图 四、 循环…

剪映电脑版超简单使用教程Mac

相机 我主要用到的两个键 点击开始创作导入本地视频 导入本地视频 将素材拖拽到时间线上 时间线面板操作 撤销、恢复、分割 撤销上一次操作也可以用快捷键 command z 定格、倒放、镜像、裁剪 剃刀 点击菜单的分割可以出来一个剃刀&#xff0c;分割更方便 选择模式 …

代码随想录算法训练营第十二天|239. 滑动窗口最大值| ● 347.前 K 个高频元素

239 滑动窗口最大值 看完题后的思路 这是一道典型的单调队列的题&#xff0c;如果不是之前刷过一遍&#xff0c;对这道题没有一点头绪。即使刷过&#xff0c;也只是留了个印象。 解题思路 对于本道题来说&#xff0c;到窗口右移&#xff0c;如果一个新元素a进入窗口&#x…

【Maven】分模块开发与设计与依赖管理

目录 一、分模块开发与设计 1. 分模块开发的意义 2. 分模块开发&#xff08;模块拆分&#xff09; 二、依赖管理 1. 依赖传递 2. 可选依赖 3. 排除依赖 4 可选依赖和排除依赖的区别 一、分模块开发与设计 1. 分模块开发的意义 问题导入 分模块开发对工程有什么好处…

ChatGPT - 横看成岭侧成峰

定义 ChatGPT 是什么&#xff1f; ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序&#xff0c;由 OpenAI 公司于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。 ChatGPT以对话方式进行交互&#xff0c;可以用于包括自动文本生成、自…

一起自学SLAM算法:8.3 LOAM算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 不管是Gmapping还是Cartographer&#xff0c;通常都是采用单线激光雷达作为输入并且只能在室内环境运行。虽然Cartographer支持2D建图和3D建图模式&#xff0c;但是Cartographer采用3D建图模式构建出来的地图格式…

微信小程序 java失物招领系统uniAPP设计

开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 基于微信小程序的失物招领系…

四轮两驱小车(三):STM32驱动MPU6050进行转弯

前言&#xff1a; 寒假已经过了一半了&#xff0c;前段时间跟学弟一起从零开始搞了一下深度学习&#xff0c;现在才想起来这个系列还没有更完。本篇博客主要介绍一下这个小车转直角弯的神器----MPU6050 MPU6050介绍&#xff1a; 我所采用的MPU6050是某宝上十几块钱的这种&…

FPGA:Verilog HDL程序的基本结构

⭐本专栏针对FPGA进行入门学习&#xff0c;从数电中常见的逻辑代数讲起&#xff0c;结合Verilog HDL语言学习与仿真&#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计&#xff0c;对状态机FSM进行剖析与建模。 &#x1f525;本文已收录于FPGA系列专栏&#xff1a;FP…

Redis从入门到精通-常用命令

本文使用命令行模式进行操作 &#xff08;1&#xff09;keys keys的作用是返回所有符合条件的key的列表 *是返回所有的&#xff0c;名字不限制 也可以使用限制 这个命令的原理是查询到所有名字符合条件的&#xff0c;然后返回 练习可以用&#xff0c;但是千万别在生产环境使…

C++学习笔记之数组,结构体...

1️⃣.一维数组的声明&#xff1a; 一般声明&#xff1a;typeName arrayName[arraysize]; 要创建数组&#xff0c;可使用声明语句。数组的声明应该指出数组的①存储在每个元素中的值的类型②数组名③数组中的元素数 比如&#xff1a; short month[12] //create an array o…

各位软件工程师,你知道如何转行跨入Web3.0领域吗?

本篇博客介绍一些 Web3 领域相关知识&#xff0c;由于擦哥长期从事的 Python 研发工作&#xff0c;所以很多内容将从 Python 程序员的视角出发进行阐述。 本系列文章由擦哥撰写&#xff0c;下述用第三人称橡皮擦转述。 文章目录Web3 的学习路径Web3 是什么&#xff1f;语义网络…