CSS3盒模型

CSS3盒模型规定了网页元素的显示方式,包括大小、边框、边界和补白等概念。2015年4月,W3C的CSS工作组发布了CSS3基本用户接口模块,该模块负责控制与用户接口界面相关效果的呈现方式。

1、盒模型基础

在网页设计中,经常会听到内容(content)、补白(padding)、边框(border)、边界(margin)等术语,在日常生活中盒子装东西与此类似,所以统称为盒模型。

盒模型具有如下特点,其结构示意图如下图所示:

  • 盒子都有4个区域:边界、边框、补白、内容。
  • 每个区域都包括4个部分:上、右、下、左。
  • 每个区域可以统一设置,也可以分别设置。
  • 边界和补白只能定义大小,而边框可以定义样式、大小和颜色。
  • 内容可以定义宽度、高度、前景色和背景色。
    在这里插入图片描述
    在默认状态下,所有元素的初始状态(margin、border、padding、width和height)都为0,背景色为透明。当元素包含内容后,width和height会自动调整为内容的宽度和高度。调整补白、边框和边界的大小,不会影响内容的大小,但会增加元素在网页内显示的总尺寸。

2、大小

使用width(宽)和height(高)属性可以定义内容区域的大小。
根据CSS盒模型规则,可以设计如下等式:

  • 元素的总宽度=左边界+左边框+左补白+宽+右补白+右边框+右边界
  • 元素的总高度=上边界+上边框+上补白+高+下补白+下边框+下边界

假设一个元素的宽度为200px、左右边界为50px、左右补白为50px、边框为20px,则该元素在页面中实际占据的宽度为50px + 20px + 50px + 200px + 50px + 20px + 50px =440px。

注意:在浏览器怪异解析模式中,元素在页面中占据的实际大小如下:

  • 元素的总宽度=左边界+宽+右边界
  • 元素的总高度=上边界+高+下边界

使用CSS盒模型公式表示如下:
元素的总宽度=左边框+左补白+宽+右补白+右边框
元素的总高度=上边界+上补白+高+下补白+下边框

【示例】定义两个并列显示的div元素,设置每个div的width为50%,显示效果如下图所示:

    <style type="text/css">div {                                     /*定义div元素公共属性 */float: left;                          /*向左浮动,实现并列显示*/background-image: url(images/1.jpg);  /* 定义背景图像 */background-color: #CC99CC;            /* 定义背景色 */font-size: 32px;                      /* 定义div内显示的字体大小 */color: #FF0000;                       /* 定义div内显示的字体颜色 */text-align: center;                   /* 定义div内显示的字体居中显示 */height: 540px;                        /* 定义高度*/}#box1 {                                   /*定义第1个div元素属性*/width: 50%;                           /* 占据窗口一半的宽度 */ }#box2 {                                   /*定义第2个div元素属性*/width: 50%;                           /* 占据窗口一半的宽度 */ }</style><div id="box1">左边元素</div><div id="box2">右边元素</div>

在这里插入图片描述

3、边框

边框可以设计修饰线,也可以作为分界线。定义边框的宽度有多种方法,简单说明如下:
(1)直接在属性后面指定宽度值。

    border-bottom-width:12px;        /*定义元素的底边框宽度为12px*/border-top-width:0.2em;          /*定义顶部边框宽度为元素内字体大小的0.2倍*/

(2)使用关键字,如thin、medium和thick。thick比medium宽,而medium比thin宽。不同浏览器对此解析的宽度值不同,有的解析为5px、3px、2px,有的解析为3px、2px、1px。
(3)单独为某边设置宽度,可以使用border-top-width(顶边框宽度)、border-right-width(右边框宽度)、border-bottom-width(底边框宽度)和border-left-width(左边框宽度)。
(4)使用border-width属性定义边框宽度。

    border-width:2px;                     /*定义四边都为2px*/border-width:2px 4px;                 /*定义上下边为2px,左右边为4px*/border-width:2px 4px 6px;             /*定义上边为2px,左右边为4px,底边为6px*/border-width:2px 4px 6px 8px;         /*定义上边为2px,右边为4px,底边为6px,左边为8px*/

提示:当定义边框宽度时,必须定义边框样式,因为边框样式默认为none,即不显示,所以仅设置边框的宽度,就看不到效果。

定义边框颜色可以使用颜色名、RGB颜色值或十六进制颜色值。

【示例1】分别为元素的各个边框定义不同的颜色:

    <style type="text/css">#box {/*定义边框的颜色 */height: 164px;                         /* 定义盒的高度 */width: 240px;                          /* 定义盒的宽度 */padding: 2px;                          /* 定义内补白 */font-size: 16px;                       /* 定义字体大小 */color: #FF0000;                        /* 定义字体显示颜色 */border-style: solid;                   /* 定义边框为实线显示 */border-width: 50px;                    /* 定义边框的宽度 */border-top-color: #aaa;                /* 定义顶边框颜色为十六进制值*/border-right-color: gray;              /* 定义右边框颜色为名称值*/border-bottom-color: rgb(120,50,20);   /* 定义底边框颜色为RGB值*/border-left-color:auto;                /* 定义左边框颜色将继承字体颜色*/}</style><div id="box"><img src="images/1.jpg" width="240" height="164" alt=""/></div>

在这里插入图片描述

CSS支持的边框样式主要包括以下几个:

  • none:默认值,无边框,不受任何指定的border-width值影响。
  • hidden:隐藏边框,IE不支持。
  • dotted:定义边框为点线。
  • dashed:定义边框为虚线。
  • solid:定义边框为实线。
  • double:定义边框为双线,两条线及其间隔宽度之和等于指定的border-width值。
  • groove:根据border-color值定义3D凹槽。
  • ridge:根据border-color值定义3D凸槽。
  • inset:根据border-color值定义3D凹边。
  • outset:根据border-color值定义3D凸边。

【示例2】在一段文本中包含一个span元素,利用它为部分文本定义特殊样式,设计顶部边框为80px的红色实线,底部边框为80px的绿色实线,如下图所示:

    <style type="text/css">p {                                        /* 定义段落属性 */margin: 50px;                          /* 定义段落的边界为50px */border: dashed 1px #999;               /* 定义段落的边框 */font-size: 14px;                       /* 定义段落字体大小 */line-height: 24px;                     /* 定义段落行高为24px */}span {                                     /* 定义段落内内联文本属性 */border-top: solid red 80px;            /* 定义行内元素的上边框样式 */border-bottom: solid green 80px;       /* 定义行内元素的下边框样式 */color: blue;}</style><p> 寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处舟催发。执手相看泪眼,竟无语凝噎。念去去千里烟波,
暮霭沉沉楚天阔。 <span>多情自古伤离别,更那堪冷落清秋节。</span>今宵酒醒何处?杨柳岸晓风残月。此去经年,应是良
辰好景虚设。便纵有千种风情,更与何人说? </p>

在这里插入图片描述
可以看到上边框压住上一行文字,并超出段落边框,下边框压住下一行文字,也超出段落边框。

4、边界

元素与元素外边框之间的区域称为边界,也称为外边距。设置边界可以使用margin属性。

    margin:2px;                     /*定义元素四边边界为2px*/margin:2px 4px;                 /*定义上下边界为2px,左右边界为4px*/margin:2px 4px 6px;             /*定义上边界为2px,左右边界为4px,下边界为6px*/margin:2px 4px 6px 8px;         /*定义上边界为2px,右边界为4px,下边界为6px,左边界为8px*/

也可以使用margin-top、margin-right、margin-bottom、margin-left属性独立设置上、右、下和左边界的大小。

    margin-top:2px;           /*定义元素上边界为2px*/margin-right:2em;         /*定义右边界为元素字体的2倍*/margin-bottom:2%;         /*定义下边界为父元素宽度的2%*/margin-left:auto;         /*定义左边界为自动*/

margin可以使用任何长度单位,如px、lb、in、cm、em、%等。margin默认值为0,可以取负值。如果设置负值,将反向偏移元素的位置。

【示例1】通过边界调整子元素在包含框内的显示位置:

    <style type="text/css">body {margin: 0; /*适用IE*/padding: 0;              /*适用非IE*/}/*清除页边距*/div {                                               /*定义父子元素共同属性*/margin: 20px;padding: 20px;float: left;}#box1 {                                             /*定义父元素的属性*/width: 500px;height: 300px;float: left;background-image: url(images/1.jpg);border: solid 20px red;}#box2 {                                             /*定义子元素的属性*/width: 150px;height: 150px;float: left;background-image: url(images/2.jpg);border: solid 20px blue;}</style><div id="box1"><div id="box2">子元素</div></div>

在这里插入图片描述

5、补白

元素包含内容与内边框间的区域称为补白,也称为内边距。设置补白可以使用padding属性。

    padding:2px;                    /*定义元素四周补白为2px*/padding:2px 4px;                /*定义上下补白为2px,左右补白为4px*/padding:2px 4px 6px;            /*定义上补白为2px,左右补白为4px,下补白为6px*/padding:2px 4px 6px 8px;        /*定义上补白为2px,右补白为4px,下补白为6px,左补白为8px*/

也可以使用padding-top、padding-right、padding-bottom、padding-left属性独立设置上、右、下和左补白的大小。

    padding-top:2px;          /*定义元素上补白为2px*/padding-right:2em;        /*定义右补白为元素字体的2倍*/padding-bottom:2%;        /*定义下补白为父元素宽度的2%*/padding-left:auto;        /*定义左补白为自动*/

补白取值不可以为负。补白和边界一样都是透明的,当设置背景色和边框色后,才能看到补白区域。

【示例】设计导航列表项目并列显示,然后通过补白调整列表项目的显示大小:

    <style type="text/css">ul {                                 /*清除列表样式*/margin: 0;                       /*清除IE列表缩进*/padding: 0;                      /*清除非IE列表缩进*/list-style-type: none;           /*清除列表样式*/}#nav {width: 100%;height: 32px;}     /*定义列表框宽和高*/#nav li {                            /*定义列表项样式*/float: left;                     /*浮动列表项*/width: 9%;                       /*定义百分比宽度*/padding: 0 5%;                   /*定义百分比补白*/margin: 0 2px;                   /*定义列表项间隔*/background: #def;                /*定义列表项背景色*/font-size: 16px;line-height: 32px;               /*垂直居中*/text-align: center;              /*平行居中*/}</style><ul id="nav"><li>美 丽 说</li><li>聚美优品</li><li>唯 品 会</li><li>蘑 菇 街</li><li>1 号 店</li></ul>

在这里插入图片描述

6、界面

6.1、显示方式

浏览器解析有两种模式:怪异模式和标准模式。在怪异模式下,border和padding包含在width或height之内;在标准模式下,border、padding、width或height是各自独立区域。

使用box-sizing属性可以定义对象的解析方式,具体语法如下所示:

    box-sizing : content-box | border-box;

取值简单说明如下:

  • content-box:为默认值,padding和border不包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即元素的实际宽度=宽+边框+补白。
  • border-box:padding和border包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即元素的宽度=width。

【示例】设计两个盒子,在标准模式和怪异模式下进行解析比较,显示效果如下图所示:

    <style type="text/css">div {float: left;                         /* 并列显示 */height: 100px;                       /* 元素的高度 */width: 100px;                        /* 元素的宽度 */border: 50px solid red;              /* 边框 */margin: 10px;                        /* 外边距 */padding: 50px;                       /* 内边距 */}.border-box { box-sizing: border-box;}   /* 怪异模式解析 */</style><div>标准模式</div><div class="border-box">怪异模式</div>

在这里插入图片描述

6.2、调整大小

使用resize属性可以允许用户通过拖动的方式改变元素的尺寸,具体语法如下所示:

    resize:none | both | horizontal | vertical

取值简单说明如下:

  • none:为默认值,不允许用户调整元素大小。
  • both:用户可以调节元素的宽度和高度。
  • horizontal:用户可以调节元素的宽度。
  • vertical:用户可以调节元素的高度。

目前除了IE浏览器外,其他主流浏览器都支持该属性。

【示例】演示使用resize属性设计可以自由调整大小的图片:

    <style type="text/css">#resize {/*以背景方式显示图像,这样可以更轻松地控制缩放操作*/background:url(images/1.jpg) no-repeat center;/*设计背景图像仅在内容区域显示,留出补白区域*/background-clip:content;/*设计元素最小和最大显示尺寸,用户也只能在该范围内自由调整*/width:200px; height:120px;max-width:800px; max-height:600px;padding:6px; border: 1px solid red;/*必须同时定义overflow和resize,否则resize无效,元素默认溢出显示为visible*/resize: both;overflow: auto;}</style><div id="resize"></div>

在这里插入图片描述

6.3、缩放比例

zoom是IE的专有属性,用于设置对象的缩放比例,另外它还可以触发IE的haslayout属性,清除浮动、margin重叠等作用,设计师常用这个属性解决IE浏览器存在的布局Bug。

CSS3支持该属性,基本语法如下所示:

    zoom:normal | <number> | <percentage>

取值说明如下:

  • normal:使用对象的实际尺寸。
  • <number>:用浮点数定义缩放比例,不允许负值。
  • <percentage>:用百分比定义缩放比例,不允许负值。

目前,除了Firefox浏览器之外,所有主流浏览器都支持该属性。

【示例】使用zoom放大第2幅图片为原来的2倍:

    <style type="text/css">img {height: 200px;margin-right: 6px;}img.zoom { zoom: 2; }</style><img src="images/bg.jpg"/><img class="zoom" src="images/bg.jpg"/>

当zoom属性值为1或100%时,相当于normal,表示不缩放;当zoom属性值为小于1的正数时,表示缩小,如zoom: 0.5;表示缩小一半。

7、轮廓样式

轮廓与边框不同,它不占用页面空间,且不一定是矩形。轮廓属于动态样式,只有当对象获取焦点或者被激活时呈现。使用outline属性可以定义块元素的轮廓线,具体语法如下所示:

    outline:<'outline-width'> || <'outline-style'> || <'outline-color'> || <'outline-offset'>

取值简单说明如下:

  • <'outline-width'>:指定轮廓边框的宽度。
  • <'outline-style'>:指定轮廓边框的样式。
  • <'outline-color'>:指定轮廓边框的颜色。
  • <'outline-offset'>:指定轮廓边框偏移值。

【示例】设计当文本框获得焦点时,在周围画一个粗实线外廓,以提醒用户交互效果:

    <style type="text/css">……/*设计表单内文本框和按钮在被激活和获取焦点状态下时,轮廓线的宽、样式和颜色*/input:focus, button:focus { outline: thick solid #b7ddf2 }input:active, button:active  { outline: thick solid #aaa }</style><div id="stylized" class="myform"><form id="form1" name="form1" method="post" action=""><h1>登录</h1><p>请准确填写个人信息...</p><label>Name <span class="small">姓名</span> </label><input type="text" name="textfield" id="textfield" /><label>email <span class="small">电子邮箱</span> </label><input type="text" name="textfield" id="textfield" /><label>Password <span class="small">密码</span> </label><input type="text" name="textfield" id="textfield" /><button  type="submit">登录</button><div class="spacer"></div></form></div>

在这里插入图片描述

8、圆角样式

使用border-radius属性可以设计元素的边框以圆角样式显示,具体语法如下所示:

    border-radius:[ <length> | <percentage> ]{1,4} [ / [ <length> | <percentage> ]{1,4} ]?

取值简单说明如下:

  • <length>:用长度值设置对象的圆角半径长度,不允许负值。
  • <percentage>:用百分比设置对象的圆角半径长度,不允许负值。
  • border-radius:此属性派生了以下4个子属性:
    ●border-top-right-radius:定义右上角的圆角。
    ●border-bottom-right-radius:定义右下角的圆角。
    ●border-bottom-left-radius:定义左下角的圆角。
    ●border-top-left-radius:定义左上角的圆角。

提示:border-radius属性可包含两个参数值:第一个参数值表示圆角的水平半径;第二个参数值表示圆角的垂直半径。如果仅包含一个参数值,则第二个参数值与第一个参数值相同。如果参数值中包含0,则这个角就是矩形,不会显示为圆角。

【示例】下面代码定义img元素显示为圆形,当图像宽高比不同时,显示效果不同:

    <style type="text/css">img {/*定义图像圆角边框*/border: solid 1px red;border-radius: 50%; /*圆角*/}.r1 {/*定义第1幅图像宽高比为1∶1*/width:300px;height:300px;}.r2 {/*定义第2幅图像宽高比不为1∶1*/width:300px;height:200px;}.r3 {/*定义第3幅图像宽高比不为1∶1*/width:300px;height:100px;border-radius: 20px; /*定义圆角*/}</style><img class="r1" src="images/1.jpg" title="圆角图像" /><img class="r2" src="images/1.jpg" title="椭圆图像" /><img class="r3" src="images/1.jpg" title="圆形图像" />

在这里插入图片描述

9、阴影样式

使用box-shadow属性可以定义元素的阴影效果,基本语法如下所示:

    box-shadow : none | inset? && <length>{2,4} && <color>?

取值简单说明如下:

  • none:无阴影。
  • <length>①:第1个长度值用来设置对象的阴影水平偏移值,可以为负值。
  • <length>②:第2个长度值用来设置对象的阴影垂直偏移值,可以为负值。
  • <length>③:如果提供了第3个长度值则用来设置对象的阴影模糊值,不允许负值。
  • <length>④:如果提供了第4个长度值则用来设置对象的阴影外延值,可以为负值。
  • <color>:设置对象的阴影的颜色。
  • inset:设置对象的阴影类型为内阴影。该值为空时,则对象的阴影类型为外阴影。

【示例1】定义一个简单的实影投影效果:

    <style type="text/css">img{height:300px;box-shadow:5px 5px;}</style><img src="images/1.jpg" />

在这里插入图片描述
【示例2】定义位移、阴影大小和阴影颜色:

    img{height:300px;box-shadow:2px 2px 10px #06C;}

在这里插入图片描述
【示例3】定义内阴影,阴影大小为10px,颜色为#06C:

    <style type="text/css">pre {padding: 26px;font-size:24px;box-shadow: inset 2px 2px 10px #06C;}</style><pre>-moz-box-shadow: inset 2px 2px 10px #06C;-webkit-box-shadow: inset 2px 2px 10px #06C;box-shadow: inset 2px 2px 10px #06C;</pre>

在这里插入图片描述

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

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

相关文章

浅谈安科瑞电力监控系统在百事亚洲研发中心的应用

摘要&#xff1a;介绍百事亚洲研发中心&#xff0c;采用智能电力仪表、采集配电现场的各种电参量和开关信号。系统采用现场就地组网的方式&#xff0c;组网后通过现场总线通讯并远传至后台&#xff0c;通过Acrel-2000型电力监控系统实现配电所配电回路用电的实时监控和管理。 …

【AI视野·今日Robot 机器人论文速览 第六十一期】Tue, 24 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 24 Oct 2023 Totally 50 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Robot Fine-Tuning Made Easy: Pre-Training Rewards and Policies for Autonomous Real-World Reinforcement Learning Autho…

全球互联网信息,中文内容只占1.3%,学好英语,这几条路子让你赚认知外的钱

在全世界的整个互联网上&#xff0c;中文内容只占1.3%&#xff0c;而英文内容接近60%&#xff0c;如果你不会英语&#xff0c;你的眼界和思维将局限在这1.3%里面。 单单就说赚钱这个事情&#xff0c;学好英语&#xff0c;你可以有很多特殊的路子赚到大钱&#xff0c;可以赚到你…

c语言练习(9周)(16~20)

输入12个一位整数&#xff0c;创建二维数组a[3][4]&#xff0c;显示二维数组及各列的平均值&#xff0c;平均值四舍五入到小数点后一位。 题干输入12个一位整数&#xff0c;创建二维数组a[3][4]&#xff0c;显示二维数组及各列的平均值&#xff0c;平均值四舍五入到小数点后一…

uni-app 应对微信小程序最新隐私协议接口要求的处理方法

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 一&#xff0c;问题起因 最新在开发小程序的时候&#xff0c;调用微信小程序来获取用户信息的时候经常报错一个问题 fail api scope is not declared in the privacy agreement&#xff0c;api更具公告…

STM32:AHT20温湿度传感器驱动程序开发

注&#xff1a;温湿度传感器AHT20数据手册.pdf http://www.aosong.com/userfiles/files/AHT20%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E4%B9%A6(%E4%B8%AD%E6%96%87%E7%89%88)%20B1.pdf 一、分析AHT数据手册文档 (1).准备工作 1.新建工程。配置UART2 2.配置I2C1为I2C标准模式&…

Rocky9 上安装 redis-dump 和redis-load 命令

一、安装依赖环境 1、依赖包 dnf -y install perl gcc gcc-c zlib-devel2、编译openssl 1.X ### 下载编译 wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz tar xf openssl-1.1.1t.tar.gz cd openssl-1.1.1t ./config --prefix/usr/local/openssl make make ins…

Vue项目创建与启动(2023超详细的图文教程)

目录 一、下载node.js 二、下载vue-cli与webpack插件 三、项目初始化(项目配置详细信息) 四、项目启动 五、Vue项目工程结构&#xff08;扩展知识&#xff09; 一、下载node.js 1.检测是否已经安装过node.js 打开控制台,输入 npm -v如果有会显示对应版本 如果没有会显示…

Python框架之Flask入门和视图

一、Flask入门和视图 需要安装Pycharm专业版 1. Flask简介 Python后端的2个主流框架 Flask 轻量级框架Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档&#xff1a;https://flask.palletsprojects.com/ 中文文档&#xff1a;https://dormousehole.readthe…

防范欺诈GPT

去年&#xff0c;ChatGPT的发布让全世界都感到惊讶和震惊。 突然间出现了一个平台&#xff0c;它比之前的任何其他技术都更深入地了解互联网。人工智能可以被训练成像阿姆一样说唱&#xff0c;以世界著名诗人的风格写作&#xff0c;并精确地翻译内容&#xff0c;以至于它似乎能…

【Unity实战】最全面的库存系统(二)

文章目录 先来看看最终效果前言箱子库存箱子存储物品玩家背包快捷栏满了,物品自动加入背包修复开着背包拾取物品不会刷新显示的问题将箱子库存和背包分开,可以同时打开完结先来看看最终效果 前言 本期紧跟着上期,继续来完善我们的库存系统,实现箱子库存和人物背包 箱子库…

R语言的DICE模型实践技术

随着温室气体排放量的增大和温室效应的增强&#xff0c;全球气候变化问题受到日益的关注。我国政府庄严承诺在2030和2060年分别达到“碳达峰”和“碳中和”&#xff0c;因此气候变化和碳排放已经成为科研人员重点关心的问题之一。气候变化问题不仅仅是科学的问题&#xff0c;同…

React中的状态管理

目录 前言 1. React中的状态管理 1.1 本地状态管理 1.2 全局状态管理 Redux React Context 2. React状态管理的优势 总结 前言 当谈到前端开发中的状态管理时&#xff0c;React是一个备受推崇的选择。React的状态管理机制被广泛应用于构建大型、复杂的应用程序&#xf…

贪心算法学习------优势洗牌

目录 一&#xff0c;题目 二&#xff0c;题目接口 三&#xff0c;解题思路和代码 全部代码&#xff1a; 一&#xff0c;题目 给定两个数组nums1和nums2,nums1相对于nums2的优势可以用满足nums1[i]>nums2[i]的索引i的数目来描述。 返回nums1的任意排序&#xff0c;使其优…

[AUTOSAR][诊断管理][ECU][$3E] 测试设备在线|会话保持

文章目录 一、简介二、服务请求报文定义三、肯定响应四、支持的NRC四、示例步骤(1)supportPosRspMsgIndicationBit=0(2)supportPosRspMsgIndicationBit=1三、示例代码3e_test_present.c一、简介 这个服务的目的是确保诊断服务或者之前激活的通信还处在激活的状态,可以保持…

【51单片机】矩阵键盘与定时器(学习笔记)

一、矩阵键盘 1、矩阵键盘概述 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”&#xff0c;就可以读出任何位置按键的状态 2、扫描的概念 数码管扫描&#xff08;输出扫描&#xff09;&#xff1a;…

Nginx搭配负载均衡和动静分离:构建高性能Web应用的完美组合

目录 前言 一、Nginx简介 1.Nginx是什么 2.Nginx的特点 3.Nginx在哪使用 4.如何使用Nginx 5.Nginx的优缺点 6.Nginx的应用场景 二、负载均衡和动静分离 1.负载均衡 2.动静分离 三、Nginx搭载负载均衡并提供前后端分离后台接口数据 1.Nginx安装 2.tomcat负载均衡 …

68 内网安全-域横向PTHPTKPTT哈希票据传递

目录 演示案例:域横向移动PTH传递-Mimikatz域横向移动PTK传递-Mimikatz域横向移动PTT传递-MS14068&kekeo&local国产Ladon内网杀器测试验收-信息收集,连接等 涉及资源: PTH(pass the hash) #利用lm或ntlm的值进行的渗透测试 PTT(pass the ticket) #利用的票据凭证TGT进行…

最长回文子串-LeetCode5 动态规划

由于基础还不是很牢固 一时间只能想到暴力的解法: 取遍每个子串 总数量nn-1n-2…1 O(n^2) 判断每个子串是否属于回文串 O(n) 故总时间复杂度为O(n^3) class Solution { public:string longestPalindrome(string s) { int max0;string ret;for(int i0;i<s.size();i)for(int…

Run, Don‘t Walk: Chasing Higher FLOPS for Faster Neural Networks(CVPR2023)

文章目录 AbstractIntroduction过去工作存在的不足我们的工作主要贡献&#xff08;待参考&#xff09; Related workCNNViT, MLP, and variants Design of PConv and FasterNetPreliminaryPartial convolution as a basic operatorPConv followed by PWConvFasterNet as a gene…