网站首页 > 基础教程 正文
css盒模型、元素类型
一、css盒模型的概念及组成
概念:盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系。css定义所有的元素都可以拥有像盒子一样的外形和平面空间.
盒模型的组成:边框、外边界/外边距、补白/内填充、内容区。
二、盒子模型的相关元素
三、标准盒子大小计算方式
宽 =左右border+左右padding+width,
高 =上下border+上下padding+height,
例如:一个盒子的border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px,
宽= border*2 + padding*2 + content.width = 1*2 + 10*2 +200 = 262px,
高= border*2 + padding*2 + content.height = 1*2 +10*2 + 50 = 112px,
怪异盒模型/IE盒子模型组成:margin+内容区
宽:width;
高:height;
四、盒模型注意事项
*margin值的解析:左右边界累加,正常文档流的上下边界重合。
*在正常文档流下,子元素(块)直接写margin-top时,会将margin-top属性值加上父元素身上,(子元素或父元素不设置任何浮动及定位的属性,或父元素不设置边框的情况下。)
我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取
一个标记可以设置多个class名
语法:<标记 class="名称1 名称2 名称3 " ></标记>
? 版权(圈C)
CSS元素类型
1、元素类型分类依据和元素类型分类
2、元素类型的转换
3、inline-block元素类型的应用
4、置换和非置换元素的概念和应用案例
一、元素类型分类
根据css显示分类,XHTML元素被分为
两种类型:块状元素,内联元素
1.块状元素(block element)
A)块状元素在网页中就是以块的形式显示,所谓块状就是元素显示为矩形区域,常用的块状元素包块div,dl,dt,dd,ol,ul,li,(h1-h6),p,form,hr,table,tr,td,fieldset,legend,option,thead,tbody,tfoot,caption,th等;
B)默认情况下,块状元素都会独占一行,通俗地说,两个相邻块状元素不会出现并列显示的现象;默认情况下,块状元素会按顺序自上而下排列。
C)块状元素都可以定义自己的宽度和高度。
D)块状元素一般都作为其他元素的容器,它可以容纳其它内联元素和其它块状元素。我们可以把这种容器比喻为一个盒子
注:p标签是一个块元素,但它只能作为内联元素(inline element)的容器;
标题标签之间不能互相嵌套
2.内联元素(inline element)(或是行内元素)
A) 常见的内联元素如:a,span,i,em,strong,b,u,del,s,br,sub,sup,img,input,select,textarea,button等
B) 内联元素的表现形式是始终以行内逐个进行显示;
C) 内联元素没有自己的形状,不能定义它的宽和高,它显示的宽度、高度只能根据所包含内容的高度和宽度来确定,它的最小内容单元也会呈现矩形形状;
D)内联元素也会遵循盒模型基本规则,如可以定义padding,border,margin等属性,padding,border,margin上下的值没有实际布局功能;
二、元素类型的转换
元素可通过display属性来改变元素的显示类型
1)display属性与属性值 (18个属性值)
属性值:block/inline/inline-block(img,input,textarea,select)/none/list-item(li)/table-row(tr)/table(table)/table-cell(td)/table-header-group(thead)/table-footer-group(tfoot)/table-row-group(tbody),flex,inline-flex;
作用:块状元素和内联元素之间的转换。
说明:各属性值的作用
1)Block块状显示:类似在元素后面添加换行符,也就是说其他元素不能在其后面并列显示。或者就是让元素竖排显示。
2)inline内联显示:在元素后面删除换行符,多个元素可以在一行内并列显示。或者就是让元素横排显示。
3)Inline-block行内块状显示:元素的内容以块状显示,行内的其他元素显示在同一行。
(此元素类型支持vertical-align属性)img,input
4)none:隐藏元素。
5)list-item:列表 项,将元素转换成列表。li的默认类型。
6)当元素设置了float属性后,就相当于该元素加了display:block;
三、inline-block元素类型的应用
Inline-block行内块元素显示:元素的内容以块状显示,行内的其他元素显示在同一行。
(此元素类型可以支持vertical-align属性)img,input
vertical-align:控制一行内的内联元素的垂直对齐方式,也可以支持table-cell元素直接设置vertical-align的属性,table-cell的元素不支持margin属性
垂直对齐方式{vertical-align:baseline(基线对齐,默认值)vertical-align:top(元素的顶端与行中最高的元素顶端对齐)/bottom元素的底端与行中最低的元素底端对齐/middle/sub(与父元素的下标字体基线对齐)/super(与父元素的上标字体基线对齐)/text-top(与父元素的字体顶端对齐)/text-bottom(与父元素的字体底端对齐);}
四、置换和非置换元素的概念
拓展:
置换元素/替换元素 概念:一个内容不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,这些元素往往没有实际的内容,即是一个空元素,置换元素就是浏览器根据元素的属性和属性值,来决定元素的具体显示内容。大部分的置换元素的元素类型为inline-block;被称之为置换元素。HTML中的img、input都是置换元素。 例如浏览器会根据img标签的src属性的值来读取图片信息并显示出来。 又例如根据input标签的type属性来决定是显示输入框,还是单选按钮等。 非置换元素/不可置换元素 :HTML中除了可替换元素外,其它都是不可替换元素(即其内容直接表现给用户端例如浏览器) textarea select object
1、认识盒子模型
2、盒子模型的组成部分
3、学习盒子模型的相关元素 margin padding
1、padding的使用方法
说明:
填充:padding,在设定页面中一个元素内容到元素的边缘(边框) 之间的距离。 也称补白或填充。
用法:
1)用来调整子元素在父元素中的位置。
注:padding属性需要添加在父元素上。
2)padding值是额外加在元素原有大小之上的,如想保证元素大小不变,需从元素宽或高上减掉后添加的padding属性值
属性值的4种方式:
四个值:上 右 下 左 {padding:0px 0px 0px 40px;}
三个值:上 左右 下 {padding:10px 20px 30px ;}
二个值:上下 左右 {padding:10px 20px ;}
一个值:四个方向 padding:2px;/*定义元素四周填充为2px*/
说明:可单独设置一方向填充,如:上方向padding-top:10px; 右方向padding-right:10px; 下方向padding-bottom:10px; 左方向padding-left:10px;
2、margin的使用方法
说明:
边界:margin,在元素外边的空白区域,被称为边距/边界。 “属性值的用法同上”
margin-left:左边界
margin-right:右边界
margin-top:上边界
margin-bottom:下边界
属性值的4种方式:
四个值:上 右 下 左
三个值:上 左右 下
二个值:上下 左右
一个值:四个方向 margin:2px;/*定义元素四边边界为2px*/
margin:0 auto;/*一个有宽度的元素在浏览器中横向居中。
定义元素上、下边界为2px,
说明:可单独设置一方向边界,如:margin-top:10px;
注:/*上下边距重叠,左右边距相加*/
原文链接:https://blog.csdn.net/ff186345/article/details/103755602
作者:ff186345
- 上一篇: Java之Field对象,通过映射对实体类赋值
- 下一篇: java通过反射set,get属性的值
猜你喜欢
- 2024-11-20 java Swing用户界面组件文本输入:文本域+密码域+格式化的输入域
- 2024-11-20 如果没有JS框架该怎么办
- 2024-11-20 12、HTML5新特性
- 2024-11-20 CSS 样式重置的两种方法
- 2024-11-20 React ant组件表单数据使用setState更新,前端不渲染问题
- 2024-11-20 行内元素和块级元素-html教程
- 2024-11-20 ASP.NET MVC – 样式和布局简介
- 2024-11-20 Java动态字节技术之Javassist
- 2024-11-20 Web前端程序员应该遵循的15个开发原则
- 2024-11-20 和无用代码说再见!阿里文娱无损代码覆盖率统计方案
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)