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>

    效果图如下:

  • 相关阅读:
    瀑布流布局(等宽不等高jQuery)
    多组图自动无限循环(swiper轮播)
    $.ajax的标准写法
    走马灯特效
    如何使用js改变HTML中title里面固定的文字
    test
    单例设计模式
    线程的五种状态(线程的生命周期)
    Net基础班第十三天
    装箱、拆箱
  • 原文地址:https://www.cnblogs.com/wang365366/p/7536122.html
Copyright © 2011-2022 走看看