CSS3------盒模型
admin
2024-04-12 19:45:30

盒模型

每个标签在浏览器上都被渲染成一个矩形个盒子,这个盒子有一个标准都组成结构,我们称为标准盒模型

盒模型构成

 







盒模型基本构成



内容
内容:width height,写在文档中标签中的部分所占的宽和高content 内边距padding 内容到边界之间到距离 (1)padding:
  • 1值=>代表四个方向设置相同的内边距 padding:5
  • 2值=> 上下 左右
  • 3值=> 上 左右 下
  • 4值=> 上 右 下 左(顺时针)
(2)top right bottom left
  • padding-left: 5px;
边 border设置的区域 外边距margin 定义方式和padding一致 盒子在界面上的渲染大小
  • 宽度 = width + 左右的padding + 左右border
  • 高度 = height + 上下的padding + 上下的border
margin的作用:通过margin来移动盒子   (1)默认布局情况下,页面的盒子排列是按照从左到右,从上到下的 (2)水平方向:
  • margin-left:将盒子自身向右推
  • margin-right:盒子自身不动,将水平方向上的相邻盒子向右推
(2)垂直方向:
  • margin-top:将盒子自身向下推
  • margin-bottom:盒子自身不动,将垂直方向上的相邻盒子向下推
padding内边距是用来改变内容位置,由于默认页面的布局方向是从上到下,从左到右的 (1)垂直方向上:
  • padding-top:盒子上边界不动,将内容向下推
  • padding-bottom: 内容不动,盒子下边界向下移动,远离内容
(2)水平方向上:
  • padding-left :盒子左边界不动,将内容向右推
  • padding-right: 内容不动,盒子右边界向右移动,远离内容

盒模型之margin

margin的作用:通过margin来移动盒子 默认布局情况下,页面的盒子排列是按照从左到右,从上到下的 (1)水平方向:
  • margin-left:将盒子自身向右推
  • margin-right:盒子自身不动,将水平方向上的相邻盒子向右推
(2)垂直方向:
  • margin-top:将盒子自身向下推
  • margin-bottom:盒子自身不动,将垂直方向上的相邻盒子向下推
通过chrome浏览器的调试功能详细说明如下: margin-left:将盒子自身向右推

 margin-right:盒子自身不动,将水平方向上的相邻盒子向右推

 margin-top:将盒子自身向下推

 margin-bottom:盒子自身不动,将垂直方向上的相邻盒子向下推

嵌套情况下的margin起点问题

嵌套情况下子级盒子的margin特点
  • 移动方式与平级盒子一样
  • 移动的起点是从父级内容区域开始的,与父级的padding,border没有关系

嵌套情况的margin外边距坍塌问题

  • 在垂直方向上,当父级没有明确的边界时border-top,padding-top,border-bottom,paddingbottom,父级中的第一个子级的margin-top会传递给父级,导致父级跟子级一起向下移动父级中的最后一个子级的margin-bottom会传递给父级,导致无法撑开父级高度
  • 外边界坍塌问题出现在chrome firefox opera safari IE9以上浏览器中
  • 解决办法:给父级添加边界(border padding)
盒模型之padding padding内边距是用来改变内容位置,由于默认页面的布局方向是从上到下,从左到右的 (1)垂直方向上:
  • padding-top:盒子上边界不动,将内容向下推
  • padding-bottom: 内容不动,盒子下边界向下移动,远离内容
(2)水平方向上:
  • padding-left :盒子左边界不动,将内容向右推
  • padding-right: 内容不动,盒子右边界向右移动,远离内容
chrome浏览器调试功能所见如下: padding-left:盒子左边界不动,将内容向右推

 padding-right:内容不动,盒子有边界向右移动远离内容

 padding-top:盒子上边界不动,将内容向下推

 padding-bottom:内容不动,盒子下边界向下移动远离内容

marginpadding总结

margin和padding都可以改变超文本位置
  • margin是通过改变盒子位置,让盒子带着超文本移动
  • padding是通过改变盒子边界到盒子内容之间的距离,来推着超文本移动
使用时候要根据效果图来判断使用哪个属性进行位置改变
  • 当没有明确边界渲染时,margin,padding都可以使用
  • 当有明确边界渲染时,如果盒子之间有间隙,使用margin。如果盒子之间没有间隙,使用padding

块级元素和内联元素

Html组件的盒模型可以分为block和inline两种。
  • 常见的块级元素有DIV、FORM、TABLE、P、PRE、H1~H6、OL、UL等
  • 常见的内联元素有SPAN、A、STRONG、EM、LABEL、INPUT、SELECT、TEXTAREA、IMG、BR等。
display:block
  • block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度
  • block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行
  • block元素可以设置margin和padding属性
display:inline
  • inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化
  • inline元素设置width,height属性无效。
  • inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果
display:inline-block
  • 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

position用法

position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型

 


这是位于正常位置的标题

这个标题相对于其正常位置向左移动

这个标题相对于其正常位置向右移动

相对定位会按照元素的原始位置对该元素进行移动。

样式 "left:-20px" 从元素的原始左侧位置减去 20 像素。

样式 "left:20px" 向元素的原始左侧位置增加 20 像素。

 

CSS3边框

border-style值:none默认无边框;dotted点线边框;dashed虚线边框;solid:实线边框 阴影:box-shadow: 10px 10px 5px #888888; border-radius属性可以给任何元素制作圆角

 

相关内容

热门资讯

河南胡辣汤的 “隐藏吃法”:配... 河南胡辣汤是中原饮食文化的鲜明符号,麻辣鲜香的浓稠汤汁搭配丰富配料,是无数人清晨的味觉慰藉。而鲜少被...
青龙湖樱花绽放 游人打卡定格春... 春和景明,万物复苏。成都青龙湖湿地公园内数千株樱花如约绽放,粉白交织的花海绵延数里,成为春日里动人的...
万源市公园哪个好人气高 万源市的公园宛如城市中的绿色明珠,不仅为市民提供了休闲放松的好去处,还承载着城市的生态与文化内涵。不...
贵安,今日看花,明日听歌 3月10日,贵阳贵安告别淅沥小雨,天气转晴转暖,最高气温突破16℃。正处于盛花期的贵安樱花园迎来赏樱...
已出现严重安全风险!官方再就“... 由于近期已出现严重安全风险!官方再就“龙虾”发布提醒:国家互联网应急中心于3月10日晚发布《关于Op...