1、常见块元素:div h1 h2 h3 h4 h5 h6 p ul li ol form tr th 。
特点:块元素display:block 独占一行 默认宽度父级宽度的100%,默认垂直显示,可设置宽高、padding、margin。
2、常见行内元素:span a i br。
特点:行元素display:inline 宽度自适应,靠内容撑开(以内容的大小为大小),水平显示,在一行之内。不能写宽高,可改变display:block不支持垂直方向的margin和padding,但左右方向的margin和padding是可以设置的。
3、常见行块元素:img。
特点:display:inline-block 对外表现为行级,对内表现为块级支持宽高,支持垂直方向的margin和padding。
若想要使行元素块元素之间相互转换可设置display属性。
1、块状元素:
块级元素是指本身属性为display:block的元素。因为它自身的特点,我们通常使用块级元素来进行大布局(大结构)的搭建。
布局上:独占一行,可以容纳内联元素和其他块元素
样式上:设置width、height有效,可以设置盒子模型的相关css属性,
在不设置宽度的情况下,块级元素的宽度是它父级元素内容的宽度
在不设置高度的情况下,块级元素的高度是它本身内容的高度
2、 行内元素:
内联元素是指本身属性为display:inline的元素。因为它自身的特点,我们通常使用块级元素来进行文字、小图标(小结构)的应用。
布局上:和其他元素从左到右在一行排列,只能容纳文本或者其他内联元素(不要在内联元素中嵌套块级元素)
样式上:不能直接控制width、height,只能使用盒模型部分属性,如padding、line_height、margin-left、margin-right。
内联元素的宽高是由本身内容的大小决定(文字、图标等)
3、 行内块状元素:尽可能少的占用横向空间,和其他元素都在一行上;可以设置width、height、margin、padding等盒模型相关属性。
*常用:img、input、td。
display:block;(将元素变为块级元素)
display:inline; (将元素变为行级元素)
display:inline-block;(将元素变为行级块元素)
a. 块元素特立独行;内联元素随波逐流。
b.块元素通常用作网页的主要构建模块,而内联元素常用来标记小段内容(修饰文本)
c.设计一个页面时,一般从较大的块开始 ,然后完善页面的时候再加入内联元素。
d. 对标签能够清晰的分类,掌握标签的特性,在选择标签时避免犹豫不决,提高布局效率。
HTML5新结构标签
HTML5-新的属性语法
HTML5图形
HTML5音视频标签
对本地离线存储的更好的支持
新的表单控件,比如 calendar、date、time、email、url、search
移除的元素:
纯表现的元素:basefont,big,center,font, s,strike,tt,u
对可用性产生负面影响的元素:frame,frameset,noframes;
支持HTML5新标签 : IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。当然也可以直接使用成熟的框架、比如html5shim
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
1.下表列出了内联元素和块级元素的主要区别
块元素:不管内容多少,块元素都会在浏览器中独占一行。可设置宽高,如果不设置宽高那么它的宽度是100%(占满父级元素一整行)
缺点:1.相邻元素垂直。相邻外边距会重叠。margin-bottom和margin-top重叠(重叠之后的值是两个值中的最大值)
第一种解决方案:原理bfc相关
2.父子的相邻,父元素的margin-top和子元素的margin-top发生重叠 (重叠之后的值是两个值中的最大值)
关于父子相邻的解决方案:
第一种解决方案.取消相邻,给父元素设置border或者padding-top 让相邻之间有间隔。
第二种解决方案,父元素加overflow:hidden属性 -- 原理bfc相关
块元素包括:div, h1-h6 , p ,ul,li,ol, dl,dt, hr,form,table ,tr,td
行内元素:内容决定所占空间的多少,内容多少就占多少空间。不能设置宽高(默认宽高是0)。margin垂直方向无效(margin-top,margin-bottom),如果设置垂直方向用line-height属性。
多个行内元素排列在一起,他们之间会出席空格。
行内元素包括:font , span, b , i , u, sub, sup, a ,
标红为常见的块元素和行内元素。
行内块:共享一行,可设置宽高,多个行内元素排列在一起,他们之间会出席空格。可设置margin,padding属性。集合了块和行内的所有优点。
行内块元素包括:img,input
注意:设置两个并排的div.一个width:20%,一个width:80%.用display:inline-block 让两个div并排,会使右侧的div向下排列
效果图:
产生该问题的原因是:div1+div2的宽度:100%.但是display:inline-block 的设置会使两个div之间有空格。width就为100%再加上空格 大于 父级的宽度,所以会折行。
处理方式:将div1和div2之间的空格去掉
text-align这个属性在水平方向上对行内(inline),行内块(inline-block)以及文字都起作用(行内元素或行内块元素设置水平居中用text-align属性)
行内元素:垂直居中用line-height属性
行内块:设置垂直居中,不能line-height会出问题,应该用vertical-align.多个行内块元素并排,同时设置居中
同级中找设置一个最高的行内块元素(这个行内块元素内容为空,仅仅用来做对齐的标尺),让其他元素向它对齐。
块元素:
块元素水平居中:用margin-left和margin-right设置为auto的方式 类似:margin:0 auto
块元素水平垂直居中:
情况1子级元素定宽定高(宽高各为100px):
情况2:子级元素宽高不定:
第一种:
第二种:
块元素:display:block
行内:display:inline
行内块:display:inline-block
让块消失:display:none(元素结构还在,但是在页面不显示,也不占位置)
vertical-align属性:垂直方向的对齐方式,对齐依据找到同级别最高的元素,以该元素为参照进行vertical-align的设置。
值:top,middle,bottom