HTMl元素根据表现形式,常见的可以分为两类。

     (1)块元素(block)

     (2)行内元素(inline)。

  当然,除了以上两种元素类型外,还有inline-block、table-cell等元素类型。

     1:块元素

           块元素在浏览器默认状态下将占据整行,排斥其他元素与其位于同一行。块元素一般为矩形,可以容纳行元素和其他的块元素。

           常见的块元素有:div(div层)  h1~h6(1到6级标题) p(段落,会自动在其前后创建一些空白) hr(分割线) ol(有序列表) ul(无序列表)

           块元素具有如下特点:

           (1)独占一行,排斥其他元素跟其位于同一行,包括块元素和行内元素。

           (2)块元素内部可以容纳其他块元素或行元素。

           (3)可以定义高度(height),也可以定义宽度(width。

           (4)可以定义四个方向的margin属性。

    2:行内元素

          行内元素默认显示状态可以与其他行内元素共存在同一行。

          常见的行内元素有:strong(加粗强调) em(斜体强调) s(删除线) u(下划线) a(超链接) span(常用行级,可定义文档中的行内元素)

          行内元素具有以下特点:

          (1)可以与其他行内元素位于同一行。

          (2)行内内部可以容纳其他行内元素,但不可以容纳块元素,不然会出现无法预知的效果。

          (3)无法定义高度(height),也无法定义宽度(width)。

          (4)可以定义margin-left和margin-right,无法定义margin-top和margin-bottom。

    3:Display简介

        如果想要将元素从一个类型转换为另外一个类型,就需要display属性。

        其语法:display:属性值;

        display属性取值:

                   inline      行内元素

                   block      块元素

                   inline-block     行内块元素

                   table      以表格形式显示,类似于table元素

                   table-row    以表格行形式显示,类似于tr元素

                   table-cell    以表格单元格形式显示,类似于td元素

                   none       隐藏元素

       

      在CSS中,可以使用display:inline-block来将元素转换为行内块元素。行内块元素有以下两个特点。

         (1)可以定义width和height。

         (2)可以与其他行内元素位于同一行。

                  inline-block元素既具备块元素的特点,也具备行内元素的特点,在HTMl中,常见的inline-block元素有两个:img元素和input元素。


      display:none

           在CSS中我们可以使用display:none来隐藏元素。一般情况下,配合JavaScript来动态隐藏元素。

           对于display:none需要注意以下:

           (1)display:none一般用于JavaScript动态隐藏元素,被隐藏的元素不占据原来的位置空间。

           (2)display:none不推荐用来隐藏一些对SEO关键的部分。对于搜索引擎来说,它会直接忽略diaplay:none隐藏的内容,不会把display:none隐藏的内容加入权重考虑。


     display:none和visibility:hidden的区别    

         在CSS中,如果想要隐藏某一个元素,我们可以使用display:none或者visibility:hidden来实现,其二者有本质的区别。

         (1)display:none的元素被隐藏之后,不占据原来的位置,也就是说彻底消失了,看不见也摸不着。

         (2)visibility:hidden的元素被隐藏之后,依然占据原来的位置,也就是说并没有彻底消失,看不见但摸得着。


     display:table-cell

            在CSS中,display:table-cell可以让元素以表格单元格的形式呈现,也就是说table-cell类型的元素具备td元素的特点。

            display:table-cell非常强大,可以实现以下三种功能。

            (1)图片垂直居中于元素。

            (2)等高布局。

            (3)自动平均划分元素,并且在一行显示。

       【1】图片垂直居中于元素

                在CSS中,可以使用display:table-cell和vertical-align:center来实现大小不固定的图片的垂直居中效果。

                语法:

                       父元素

                       {

                           display:table-cell;

                           vertical-align:center;

                      }

                      子元素{vertical-align:center;}

        【2】自动平均划分元素

                 语法:

                        父元素{display:table};

                        子元素{display:table-cell;}   

                       当父元素定义display-table而子元素定义display:table-cell时,如果给父元素一定的高度,父元素宽度就会根据子元素的个数进行自动平均划分。


        去除inline-block元素间距

              在CSS中,使用font-size:0来去除inline:block元素的间距。

              语法:

              父元素{font-size:0;}

              说明:font-size:0是在inline-block元素的父元素添加的。

              也可使用font-size:0来去除图片之间的间距。