ss盒模型、元素类型
一、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
页面布局的过程中,浮动是大家经常用的属性。在好多的排版布局中都是用的的浮动比如说下面这些地方都是应用到了浮动。
在我学习浮动的时候可是熬坏了脑筋,在这里我分享一下我对浮动这块知识的总结。
一、浮动的定义
使元素脱离文档流,按照指定的方向(左或右发生移动),直到它的外边缘碰到包含框或另一个浮动框的边框为止。
说到脱离文档流要说一下什么是文档流,文档流是是文档中可显示对象在排列时所占用的位置/空间,而脱离文档流就是在页面中不占位置了。
二、属性
float:left; 左浮动
float:right;右浮动
三、浮动的情况
下面我就用这个布局为例子来讲解浮动,css样式外面的div给了一个高度,其他的不多说。
1.左浮动float:left;
给里面的三个p标签 float:left; 属性,看一下是什么情况的。我们都知道块级标签会默认占据一行的所以他们是一排一个展示的,但是看下图会发现他们按照顺序排列成一排了。
2.右浮动 float:right;
同样的我们给box中的p标签一个 float:right; 属性。他们会按照顺序排到右边去了。
3.这一次我们只给第二个p浮动来看看会发生什么情况,这时候你会发现,3不见了,他其实在2的下面,我给3一个宽一点的宽度。会发现3在2的下面。
4.给3一个浮动
他会没有什么变化,因为浮动只会影响他后面的元素,如果上面的元素不浮动,他也不会上去的
5.把外面的div宽度变小一些,p浮动
如果父元素太窄,无法容纳所有的浮动元素,无法容纳的浮动元素会换行显示。
6.浮动的特殊情况
以换行的那个元素为基准,如果有浮动元素的高度大于换行的那个元素,那么当换行元素换行时会被高的那个元素"卡住"。初始样式是左图.
7.浮动对文字的影响 给p标签浮动
浮动框只会占据自己的位置,使文字可以围绕浮动框显示
四、浮动之后有很多特性
1.块级元素可以横排显示
2.行内元素可以设置宽度和高度
3.元素没有设置宽度和高度时,宽度为内容撑开宽
4.支持margin
5.脱离文档流
6.提升半层级
问题:不支持margin:auto;
五、清除浮动
1. 为什么要清除浮动?
前面提到了我给了外面的div一个高度,这里我们不给他高度,让里面的p浮动看看会发生什么情况。
未浮动
浮动之后
我们会发现子元素浮动会造成父级盒子高度坍塌,这样如果下面在进行继续布局的话会使页面布局错乱,(下图中黄色的盒子是nav下的div)如果想要继续布局就要清除浮动了,这里我介绍几种清除浮动的方法。
标签和样子如下两幅图
父级的做法
1. 父级 紧邻兄弟法
给nav一个clear:both属性,下图会发现可以正常显示
缺点:只是让后面的元素正常显示,并没有撑开box的高度
2.父级给高度
box给高度,可以正常显示。
缺点:一般都是元素内容撑开高度,拓展性不好。
3.父级元素 display:inline-block;
box给display:inline-block;可以正常显示
缺点:父级盒子margin:auto;失效,会发现上部分和下面黄色中间有间隙。
4.父级overflow:hidden;
可以正常显示
缺点:需要配合宽度
子元素
1.要加给浮动元素末尾的后面再添加一个元素。加上一个clear属性
可以正常显示
缺点:随意的添加一个空元素,不符合代码规范
内联框架(内嵌框架),是在页面(body)里生成个内部框架
width 定义iframe的宽度;
height 定义iframe的高度;
frameborder 规定是否显示框架周围的边框
src 规定在框架中显示的文档的 URL。
scrolling 规定是否在框架中显示滚动条。
name 规定框架的名称
frameset元素可定义一个框架集 可包含多个子框架,每个框架都有独立的文档
rows :定义框架集中子框架 行的数目和尺寸(列展示)必写
cols : 定义框架集中子框架 列的数目和尺寸(横排展示)必写
单位值:px像素 %百分比 * 余下的
noresize="noresize" 整体设置子框架是否可调整范围。
frameborder 整体设置子框架的边框
frameset框架可以包含frameset
rameborder 规定是否显示框架周围的边框。
src 规定在框架中显示的文档的 URL
scrolling 规定是否在框架中显示滚动条同iframe框架
name 规定框架的名称
noresize="noresize“
marginheight 定义框架的上方和下方的边距。
marginwidth 定义框架的左侧和右侧的边距。
好了这期就到这,欢迎大家转载收藏,喜欢的朋友可以关注我,咱会每天分享网站前端的一些小知识,需要视频教程的关注我后私信我,我会送出一套完整的网页前端基础教程。
*请认真填写需求信息,我们会在24小时内与您取得联系。