zoukankan      html  css  js  c++  java
  • display属性(元素转换)

      

    display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有:

    none

    inline

    block

    inline-block

    了解display属性必须知道几个重要的基本知识:块级元素和行内元素。(注:实际上还有空元素,如<br>用于换行,

      <hr>为一条水平线)

    块级元素特点:

    • 总是以一个块的形式表现出来,占领一整行。若干同级块元素会从上之下依次排列(使用float属性除外)。
    • 可以设置高度、宽度、各个方向外边距(margin)以及各个方向的内边距(padding)。
    • 当宽度(width)缺省时,它的宽度时其容器的100%,除非我们给它设定了固定的宽度。
    • 块级元素中可以容纳其他块级元素或行内元素。
    • 常见的块级元素由<p><div><h1><li>等等。
    • 块级元素的display属性值默认为block。

    行内元素特点:

    • 它不会单独占据一整行,而是只占领自身的宽度和高度所在的空间。若干同级行内元素会从左到右(即某个行

          内元素可以和其他行内元素共处一行),从上到下依次排列。

    • 行内元素不可以设置高度、宽度,其高度一般由其字体的大小来决定,其宽度由内容的长度控制。
    • 行内元素只能设置左右的margin值和左右的padding值,而不能设置上下的margin值和上下的padding值。因此我

         们可以通过设置左右的padding值来改变行内元素的宽度。

    • 常见的行内元素由<a><em><img>等等。
    • 行内元素一般不可以包含块级元素。
    • 块级元素的display属性值默认为inline。

    1.display:none;这个值表示此元素将不被显示。

    2.使用了display:block;之后, 此元素将显示为块级元素,此元素前后会带有换行符。

    通过对一个行内元素设置display: block;可以将行内元素设置为块级元素,进而设置它的宽高和上下左右的padding和margin。

    我们经常会制作导航栏,这时就要使用ul li 和a组合的方式,但是<a>是行内元素,我们无法设置它的宽和高,这时,就可以在<a>

    的样式表中,将之设置为display:block。这样就可以设置它的宽和高,以及上下左右的margin和padding以达到我们想要的效果了。

     
    <style>
            *{padding: 0;margin:0;list-style: none;}
            ul li{float: left;}
            a{display:block; 30px;height: 30px;background: yellow;margin: 5px; text-decoration: none;text-align: center;line-height: 30px;}
        </style>
    </head>
    <body>
        <ul>
            <li><a href="">1</a></li>
            <li><a href="">2</a></li>
            <li><a href="">3</a></li>
            <li><a href="">4</a></li>
            <li><a href="">5</a></li>
        </ul>
    </body>

     效果如下:

    3.display:inline

      此元素会被显示为内联元素,元素前后没有换行符。在第二部分中,我们介绍了行内元素和块级元素。显然,display:inline的作用即

    可以将一个块级元素转换成行内元素,那么这个块级元素将不能再设置宽和高以及上下方向的margin和padding。

    4.

    display:inline-block

      display:inline-block是行内块元素,大家对这个属性一定是不陌生的。根据名字,实际上我们就可以才出来它是结合了inline和block的特性于一身。

    即设置了inline-block属性的元素既具有block元素可以设置width和height属性的特性,又保持了inline元素不换行的特性。

    我们之前在做横向导航菜单的时候,一般是用ul li a组合,然后将li设置为float,这样就可以得到横向的导航标签了。而现在我们可以通过li和display:inline-block;来实现。

    <style>
            ul,li,a,*{padding:0; margin:0;list-style: none;text-decoration: none;}
            li{display: inline-block;border: thin solid red;}
        </style>
    </head>
    <body>
        <ul>
            <li><a href="">1</a></li>
            <li><a href="">2</a></li>
            <li><a href="">3</a></li>
            <li><a href="">4</a></li>
            <li><a href="">5</a></li>
        </ul>

    效果图如下:

  • 相关阅读:
    ClickOnce發布經驗
    reporting Server組件不全引起的致命錯誤
    異步調用
    Usercontrol Hosted in IE
    MATLAB命令大全(转载)
    一种保护眼睛的好方法
    关于oracle自动编号
    An Algorithm Summary of Programming Collective Intelligence (1)
    An Algorithm Summary of Programming Collective Intelligence (3)
    An Algorithm Summary of Programming Collective Intelligence (4)
  • 原文地址:https://www.cnblogs.com/wang365366/p/7536122.html
Copyright © 2011-2022 走看看