【CSS】盒子模型

ops/2024/10/19 23:34:36/

  • width 宽度 、height 高度 、padding 内边距 、margin 外边距 ( 外边距合并、子元素外边距塌陷问题 )
  • border 边框
  • border-radius 圆角
  • box-shadow 阴影
  • overflow 溢出
  • float 浮动 ( 父元素塌陷问题 )

盒子模型(Box Model )是指在网页设计中,用于描述和布局元素的一种模型。它将每个元素看作是一个具有四个边界的矩形盒子,包括内容区域(content)、内边距(padding)、边框(border)和外边距(margin)

width 宽度 、height 高度 、padding 内边距 、margin 外边距 ( 外边距合并、子元素外边距塌陷问题 )

margin / padding说明margin / padding说明
1个值四方相同2个值上下    左右
3个值上    左右    下4个值上     右     下      左

浏览器会自带 8px 的 margin 外边距

<style>css">div{/* 内容区域 */width: 200px;height: 200px;/*padding-方位名词  margin-方位名词设置元素水平居中(margin: x auto;)*/margin: 10px 20px 30px 40px;padding: 20px;/* 盒子尺寸 = 内容尺寸 + border尺寸 + 内边距尺寸 */border: 1px solid red;/* 防止盒子撑大方法:(1)手动减法 border/padding 的尺寸(2)内减模式 box-sizing:border-box 自动去计算占据的宽高 */box-sizing: border-box;}
</style>
<div></div>

效果:
在这里插入图片描述
外边距合并问题

垂直排列的兄弟元素,上下 margin 合并两个 margin 中较大值生效;左右则会相加

<style>css">.one,.two,.three,.four{ width: 200px;height: 50px; float: left;}.clear::after{content: "";display: block;clear: both;}.one{background-color: #145eff;margin-right: 20px;}.two{background-color: #ffec00;margin-left: 30px;}.three{background-color: #09c90c;margin-right: 40px;}.four{background-color: #ee00ff;margin-left: 60px;}.div1{margin-bottom: 30px;}.div2{margin-top: 20px;}
</style>
<div class="clear div1"><div class="one"></div><div class="two"></div>
</div>
<div class="clear div2"><div class="three"></div><div class="four"></div>
</div>

效果:
在这里插入图片描述

子元素外边距塌陷问题

<style>css">/*父子级的标签;子元素 margin-top 会将值传递给父元素产生塌陷问题,导致父级一起向下运动;子元素 margin-bottom 会将值给传递使父元素产生下外边距*/.one,.four{ width: 180px;height: 50px;}.one{ background-color: #0067ff; }.four{ background-color: #ff0000; }.two{background-color: #fdf10d;width: 100px;height: 100px;margin-top: 20px; /* 导致父元素下拉 */}.three{background-color: #ed0dfd;width: 100px;height: 100px;margin-bottom: 20px; /* 使父元素产生下外边距 */}.fu{width: 180px;background-color: #00b905;/* 解决方法:1.给父元素加边框2.给父元素设置 overflow: hidden(也能触发BFC)3.给父元素通过 ::before 或 ::after 添加子元素(推荐).clear::after,.clear::before{content: "";display: table;clear: both;}4.设置内边距(方法1,方法4会将元素扩大)*//*overflow: hidden;*//*border: 1px solid red;*//*padding: 10px 0;*/}.clear::after,.clear::before{content: "";display: table;clear: both;}
</style>
<div class="one"></div>
<div class="fu clear"><div class="two"></div><div class="three"></div>
</div>
<div class="four"></div>

效果:
在这里插入图片描述

border 边框

none:无边框; solid:实线边框,默认; double:双线边框; dashed:虚线边框; dotted:点线边框。允许单独对某一方向的边框线: top bottom left right

<style>css">body{display: flex;}div{width: 200px;height: 100px;margin-left: 20px;}div:nth-of-type(1){border: 10px double #0048ff;}div:nth-of-type(2){border-top: 10px double #ffea00;border-bottom: 10px dashed #0fa612;border-left: 10px dotted #ff00dd;border-right: 10px solid #ff0000;}
</style>
<div></div>
<div></div>

效果:
在这里插入图片描述

border-radius 圆角

个数说明个数说明
1个值四个角相同2个值左上+右下    左下+右上
3个值左上    右上+左下    右下4个值左上    右上    右下    左下
<style>css">body{display: flex;align-items: center;flex-wrap: wrap;}div{width: 120px;height: 120px;border: 1px solid red;margin: 0 20px 20px 0;}div:nth-of-type(1){border-radius: 30px;}div:nth-of-type(2){border-radius: 50%;}div:nth-of-type(3){width: 150px;height: 70px;border-radius: 50px;}div:nth-of-type(4){border-radius: 5px 50% 50% 50%;}div:nth-of-type(5){border-radius: 50% 0% 0% 50%;}div:nth-of-type(6){border-radius: 10% 100% 10% 0%;}
</style>
<div></div><div></div><div></div>
<div></div><div></div><div></div>

效果:
在这里插入图片描述

box-shadow 阴影

属性值:x轴偏移量γ轴偏移量模糊半径扩散半径颜色内 \ 外阴影。可以设置多个阴影效果,每个阴影效果之间用逗号分隔

<style>css">div{width: 100px;height: 100px;border: 1px solid red;margin: 20px;float: left;}#div1{/*x轴偏移量(必写)γ轴偏移量(必写)模糊半径(值越大阴影越模糊)扩散半径(阴影的半径大小,值越大阴影越大)颜色内外阴影(外阴影默认;内阴影inset,而且扩散半径数值越大阴影往内扩散越大,直到铺满盒子)*/box-shadow: 10px -10px 5px 2px red;}#div2{box-shadow: -10px 10px 5px 2px #46b5ff;}#div3{box-shadow: -10px -10px 20px 2px #ffda4a inset;}#div4{box-shadow: 10px 10px 5px 2px #67ff38 inset;}#div5{box-shadow: -10px 5px 8px 30px #b3ff07 inset;}#div6{box-shadow: -10px 5px 8px 20px #ffb8f3;}#div7{box-shadow: 10px 5px 8px 7px #6fffe5,25px 5px 8px 15px #db8fff;}
</style>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div4"></div>
<div id="div5"></div>
<div id="div6"></div>
<div id="div7"></div>

效果:
在这里插入图片描述

overflow 溢出

<style>css">div{width: 200px;height: 200px;border: 1px solid red;/* visible:默认值      hidden:溢出隐藏(有清除浮动、清除margin-top塌陷的功能)scroll:溢出滚动(无论是否溢出,均显示滚动条位置)     auto:溢出滚动(溢出才显示滚动条位置)*/overflow-y: scroll;}
</style>
<div><h6>文字1</h6><h6>文字2</h6><h6>文字3</h6><h6>文字4</h6><h6>文字5</h6><h6>文字6</h6>
</div>

效果:
在这里插入图片描述

float 浮动 ( 父元素塌陷问题 )

left:左对齐,right:右对齐。浮动元素会脱离标准流 (脱标),不再保留原先的位置。浮动的元素会具有行内块元素的特性,此时不会有行内块元素间隙问题。浮动元素一行显示且顶端对齐排列,超出父级宽度就换行。父元素一般不设置高度而由内容决定,内容浮动后就会造成塌陷问题

<style>css">.one div{width: 100px;height: 100px;float: left;/*1.给塌陷的父元素最后添加一个没有意义的儿子元素(不推荐).clearDiv{ clear: both; }2.给父元素设置overflow: hidden,能够解决因为触发了BFC(BFC是一种块级格式化文档,是一种网页的隐藏格式,默认渲染页面是不会触发)3.谁塌陷就给谁加 class="clear"(推荐)*/}.clear::after{content: "";display: block;clear: both;}.one{overflow: hidden;}.one div:nth-of-type(1){ background-color: #0fa612;}.one div:nth-of-type(2){ background-color: #ffec00;}.one div:nth-of-type(3){ background-color: #145eff;}.one div:nth-of-type(4){ background-color: #d655ff;}
</style>
<div class="one clear"><div>块1</div><div>块2</div><div>块3</div><div>块4</div>
</div>

效果:
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/ops/118091.html

相关文章

如何配置路由器支持UDP

一、UDP协议简介 UDP是一种传输层协议&#xff0c;与TCP&#xff08;传输控制协议&#xff09;不同&#xff0c;它不需要建立连接&#xff0c;因此传输速度较快。由于UDP不需要确认数据包的接收状态&#xff0c;它适用于不需要严格数据完整性但需要低延迟的场景。 常见的UDP应…

RuoYi若依框架学习:多环境配置

在开发过程中&#xff0c;项目往往需要在不同的环境&#xff08;如开发、测试和生产&#xff09;中运行。RuoYi框架支持通过配置文件轻松实现多环境管理。以下是如何配置和使用多环境的技术分析。 1. 环境配置文件 RuoYi框架使用application-{profile}.yml文件来管理不同环境…

Linux用户管理

用户管理 在 Linux 系统中各种会存在着多个用户。我们的使用者靠用户名来区分各自登陆的账 号。如果我们的用户想要使用系统资源&#xff0c;就必须在系统中拥有合法的账号。在系统多个文 件中都保存了用户身份相关信息。 系统靠ID号区分用户&#xff08;ls -n&#xff09; …

网络安全等级保护 | 规范企业网络系统安全使用 | 天锐股份助力等保制度落地

在当今数字化高速发展的时代&#xff0c;网络安全对于企业的重要性日益凸显。而近年来&#xff0c;数据泄露、网络攻击等安全事件频发&#xff0c;给企业和个人带来了前所未有的挑战。在这一背景下&#xff0c;网络安全等级保护制度&#xff08;简称“等保”&#xff09;作为国…

web功能测试总结(自用分享)

一、web页面展示 1、页面清单是否完整&#xff1a;如按钮、单选框、复选框、列表框、超连接、输入框等 2、页面在不同的分辨率和不同的浏览器版本是否显示 3、页面在不同大小的窗口中的显示是否正确、美观&#xff0c;系统字体&#xff0c;颜色&#xff0c;风格是否统一 4、页面…

在vue2项目中使用dart-sass

问题描述 在vue2项目中使用dart-sass。或者将node-sass换成dart-sass&#xff0c;原因是node-sass安装比较困难&#xff0c;很多时候sass-loader无法安装成功。另外在win和Linux环境下运行行项目需要针对Linux搞一个node-sass的Linux版本。 问题分析 在 Vue 2 项目中使用 da…

ASP.NET Zero是什么?适合哪些业务场景?

一、ASP.NET Zero是什么&#xff1f; ASP.NET Zero 是一个基于 ASP.NET Boilerplate (ABP) 框架的模板项目&#xff0c;它提供了预建的页面和强大的基础设施架构&#xff0c;以便开发者能够快速开发应用层。它的特点包括但不限于&#xff1a; 多合一解决方案&#xff1a;提供多…

3. Linux系统——vim编辑器

Linux系统——vim编辑器 一、vim编辑器1、作用2、vim三种操作模式2.1 命令模式----> 插入模式2.2 插入模式 ----> 命令模式2.3 命令模式 ----> 末行模式 3、末行模式操作4、命令模式操作 二、vim实践2.1 命令别名2.2 vim编辑器定制2.3 关闭SELinux功能&#xff0c; 针…