CSS中常见的块级元素:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote>、<form>。
块级元素的特点:
每个块级元素都是独自占一行,其后的元素也只能另起一行,并不能两个元素共用一行。元素的高度、宽度、行高和顶底边距都是可以设置的。元素的宽度如果不设置的话,默认为父元素的宽度。
行级元素的特点:
可以和其他元素处于一行,不用必须另起一行。元素的高度、宽度及顶部和底部边距不可设置。元素的宽度就是它包含的文字、图片的宽度,不可改变。
拓展资料:行级元素与块级元素的转换
可以在css样式中用display:inline将块级元素设为行级元素,同样,也可以用display:block将行级元素设为块级元素。(资料参考:网页链接)
首先,css规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的diaplay值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“行内”元素。(1)行内元素有:a
b
span
img
input
select
strong
(2)块级元素有:
div
ul
ol
li
dl
dt
dd
h1
h2
h4...p
(3)常见的空元素:<br><hr><img><input><link><meta>
鲜为人知的是:
<area>,<base><col><command><embed><keygen><param><source><track><wbr>
盒子模型用于处理元素的内容、内边距、边框和外边距的方式简称。元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。
内边距、边框和外边距都是可选的,默认值是零。但是,许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。
CSS实现页面布局的一种思想:把页面的所有元素都看成一个类似于礼品盒的盒子,礼品盒可能会有好多层包装组成,那么页面元素也对应的有内容、边框、内外边距等组成。这里特别提醒一下,盒模型是要把元素看成立体的,它确实有空间的3D属性,css盒子3D模型从上到下分为5层:1、border;2、content+padding;3、background-image;4、background-color;5、margin。
目前有: 标准盒子模型和IE盒子模型 2种盒模型 ,区别在于:
为了满足跨浏览器的差异,我们比较肯定的方式是使用标准盒模型,这里通过在网页顶部增加DOCTYPE的声明,来解决跨浏览器兼容方案(或者使用css3的声明方式):
块级元素会独占一行,默认情况下,其宽度自动填满其父元素宽度。
行内元素不会独占一行,相邻的行内元素会排列在同一行里,直到一行排不下,才会换行,其宽度随元素的内容而变化,另外
块级元素:div , p , form, ul, li , ol, dl,form, address, fieldset, hr, menu, table...
行内元素(内联元素):a , span, strong, em, br , img , input, label, select, textarea, cite....
如果想让一个元素可以设置宽度高度,又让它以行内形式显示,我们可以设置display的值为inline-block。
CSS3增加的box-sizing属性,允许我们规定元素使用哪种盒模型。IE8及以上版本支持该属性,Firefox 需要加上浏览器厂商前缀-moz-,对于低版本的IOS和Android浏览器也需要加上-webkit-。它具有有3个属性值:
box-sizing:content-box: W3C标准盒模型,默认属性。padding和border不被包含在定义的width和height之内。
box-sizing:border-box: IE6混杂模式盒模型, padding和border被包含在定义的width和height之内。此属性表现为怪异模式下的盒模型。
box-sizing:inherit : 从父级元素中继承该属性。
如果设置box-sizing:border-box来使用IE6混杂盒模型 ,那么
设置padding与border后,内容区的宽度和高度被压缩为70px 70px,盒子的原尺寸仍然是100px 100px
当一个容器宽度定义为 width:100%之后,如果再增加 padding 或者 border 则会溢出父容器,是向外扩张的。如果使用该样式,指定为 box-sizing: border-box则 padding 和 border 就不会再溢出,而是向内收缩的,这个效果是非常实用的。