• display:inline、block、inline-block的区别


    我觉得css有必要对这个概念进行聊聊。display:inline、block、inline-block的区别

    inline:就是内联样式,什么是内联样式呢,来看一个demo

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <style>
     5 ul
     6 {
     7 list-style-type:none;
     8 margin:0;
     9 padding:0;
    10 }
    11 li
    12 {
    13 display:inline;
    14 }
    15 </style>
    16 </head>
    17 
    18 <body>
    19 <ul>
    20 <li><a href="#home">Home</a></li>
    21 <li><a href="#news">News</a></li>
    22 <li><a href="#contact">Contact</a></li>
    23 <li><a href="#about">About</a></li>
    24 </ul>
    25 
    26 </body>
    27 </html>    

    运行结果是上面那样子,但是如果<li>属性去掉style中的dispaly:inline会是什么样子呢?

    请看下面的代码

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <style>
     5 ul
     6 {
     7 list-style-type:none;
     8 margin:0;
     9 padding:0;
    10 }
    11 
    12 </style>
    13 </head>
    14 
    15 <body>
    16 <ul>
    17 <li><a href="#home">Home</a></li>
    18 <li><a href="#news">News</a></li>
    19 <li><a href="#contact">Contact</a></li>
    20 <li><a href="#about">About</a></li>
    21 </ul>
    22 
    23 </body>
    24 </html>    

    也就是说所谓的内联样式不过就是:  上面这种效果,具体是上面感觉你自己领会领会

     block:块    这个比较好理解,就是说他的元素是以块的形式显示的、来一个demo

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <style>
     5 ul
     6 {
     7 list-style-type:none;
     8 margin:0;
     9 padding:0;
    10 overflow:hidden;
    11 }
    12 li
    13 {
    14 float:left;
    15 }
    16 a
    17 {
    18 display:block;
    19 width:60px;
    20 background-color:#dddddd;
    21 }
    22 </style>
    23 </head>
    24 
    25 <body>
    26 <ul>
    27 <li><a href="#home">Home</a></li>
    28 <li><a href="#news">News</a></li>
    29 <li><a href="#contact">Contact</a></li>
    30 <li><a href="#about">About</a></li>
    31 </ul>
    32 
    33 <p><b>Note:</b> If a !DOCTYPE is not specified, floating items can produce unexpected results.</p>
    34 
    35 <p>A background color is added to the links to show the link area. The whole link area is clickable, not just the text.</p>
    36 
    37 <p><b>Note:</b> overflow:hidden is added to the ul element to prevent li elements from going outside of the list.</p>
    38 
    39 </body>
    40 </html>
    41             

    显示效果如下:

    加入去掉这个block样式的话,会是什么样子的呢?

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <style>
     5 ul
     6 {
     7 list-style-type:none;
     8 margin:0;
     9 padding:0;
    10 overflow:hidden;
    11 }
    12 li
    13 {
    14 float:left;
    15 }
    16 
    17 </style>
    18 </head>
    19 
    20 <body>
    21 <ul>
    22 <li><a href="#home">Home</a></li>
    23 <li><a href="#news">News</a></li>
    24 <li><a href="#contact">Contact</a></li>
    25 <li><a href="#about">About</a></li>
    26 </ul>
    27 
    28 <p><b>Note:</b> If a !DOCTYPE is not specified, floating items can produce unexpected results.</p>
    29 
    30 <p>A background color is added to the links to show the link area. The whole link area is clickable, not just the text.</p>
    31 
    32 <p><b>Note:</b> overflow:hidden is added to the ul element to prevent li elements from going outside of the list.</p>
    33 
    34 </body>
    35 </html>
    36             

    显示效果如下:

    好,最后一种 

    display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>display:inline、block、inline-block的区别</title>
     6 </head>
     7 <style>
     8 div,span{background-color:green;margin:5px;border:1px solid #333;padding:5px;height:52px;color:#fff;}
     9 .b{display:block;}
    10 .i{display:inline;}
    11 div.ib{display:inline-block;}
    12 div.ib{display:inline;}
    13 a.ib{display:inline-block;}
    14 a.ib{display:block;}
    15 span.v{padding:0;margin:0;border:0;vertical-align:middle;height:100%}
    16 </style>
    17 <body>
    18 <div>div display:block</div>
    19 <div class="i">div display:inline</div>
    20 <div class="ib">div display:inline-block</div>
    21 <span>span display:inline</span>
    22 <span class="b">span display:block</span>
    23 <span><a class="ib">a display:block</a></span><br />
    24 <div><span class="v">vertical-align:middle</span></div>
    25 </body>
    26 </html>

    效果如下图所示:

    备注:

    ①<div>, <p>, <h1>, <form>, <ul> 和 <li>默认是块元素的例子。

    ②<span>, <a>, <label>, <input>, <img>, <strong> 和<em>默认是inline元素的例子。

    1. Block和inline元素对比
    所有的HTML元素都属于block和inline之一。
    block元素的特点是:
    总是在新行上开始;
    高度,行高以及顶和底边距都可控制;
    宽度缺省是它的容器的100%,除非设定一个宽度
    <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。
    
    相反地,inline元素的特点是: 
    和其他元素都在一行上;
    高,行高及顶和底边距不可改变;
    宽度就是它的文字或图片的宽度,不可改变。
    <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。
    
    用display: inline 或display: block命令就可以改变一个元素的这一特性。什么时候需要改变这一属性呢? 
    让一个inline元素从新行开始;
    让块元素和其他元素保持在一行上;
    控制inline元素的宽度(对导航条特别有用);
    控制inline元素的高度;
    无须设定宽度即可为一个块元素设定与文字同宽的背景色。
    ---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
  • 相关阅读:
    c#中判断对象为空的几种方式(字符串等)
    log4net示例3控制台、windows事件
    c#中如何截取Windows消息来触发自定义事件
    向ArcGIS的ToolBarControl中添加任意的windows组建的方法
    log4net示例1最简单的回滚文件记录日志程序(时间)
    Qt 定时器实现循环
    把 MPP Sample 编译成动态库
    Linux Shell 常用编程语法
    VSCode 调试
    Hisi 使用GDB调试(直接调试)
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4556913.html
Copyright © 2020-2023  润新知