布局display

 

 

 

什么是布局: 浏览器以正确的大小将元素摆放在正确的位置上。

布局:元素摆放的模式。

影响元素大小和位置的css属性: display  position   float  flex

 

 

display

设置元素的显示方式 ,包括 大小和位置 , display的取值有:

block

inline

inline-block

none

 

 

 

display : block

block元素又称为『块级元素』

image

特性:

1 .默认宽度为父元素宽度

2. 可以设置宽高

3. 换行显示( 前序元素 相对于 display : block 是换行显示的, 后续元素相对于 display : block 也是换行显示的。)

 

 

默认的html 元素中,  div, p , h1-h6, ul, form, … 默认的display 是  block

 

 

 

 

 

 

display : inline

image红色边框为父级元素

 

 

image

 

 

 

 

display: line的特性:

1.默认宽度为内容宽度

2.不可设置宽高  ,因为行级元素是不可设置宽高的

3.同行显示。  如果 前序元素和后续元素都是 display:inline  (行级元素) ,那么他们是同行显示的。可以在元素内部换行。

默认display: inline 元素  span , a , label, cite , em, …

 

举个栗子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>display_inline</title>
    <style type="text/css">
    .sample{
        background-color: pink;
    }

    /* 行级元素设置宽高无效 */
    .sample{
        width: 200px;
        height: 200px;
    }

    /* 指定em为块级元素 ,块级元素换行显示(自身相对前序元素是换行的)*/
    em{
        display: block;
    }

    </style>
</head>
<body>

<span>before inline</span>
<span class="sample">display : inline;</span>
<em>after inline</em>
</body>
</html>

image

 

block vs inline 对比

display 默认宽度 可设置高度 起始位置

block

父元素宽度

换行

inline

内容宽度

同行

 

 

display : inline-block

 

 

image

图1

image

        图二

 

image

      图三

 

display: inline-block 特性

1.默认宽度为内容宽度  (图一所示)

2.可设置宽高 

3.同行显示 (图三所示)

4.整块换行 如果超过了 inline-block的宽度,会『整行换行』。而『inline』是可以在『元素内』换行的。

 

默认 display: inline-block 元素  input , textarea , select , button …

举一个栗子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>display_inline-block</title>
    <style type="text/css">
    .sample{
        background-color: pink;
    }
    .sample{
        display: inline-block;
    }
    .sample{
        width: 200px;
        height: 200px;
    }
    /* inline-block元素还具有其他inline元素的特征 ,  比如设置垂直居中(由于sample比较高,所以sample的前序和后序两个元素在『一行』垂直居中)*/
    .sample{
        vertical-align: middle;
    }
    </style>
</head>
<body>
<span>before inline-block</span>
<span class="sample">display : inline-block;</span>
<em>after inline-block</em>
</body>
</html>

image

 

 

 

display : none

设置元素不显示

image

 

 

 

dislplay: none  vs visibility:hidden

imagevisibility:hidden会继续占据位置。

举个栗子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>display_none vs visibility_hidden</title>
    <style type="text/css">
    .parent{
        margin: 30px;
        border: 1px solid pink;
    }
    .dn{
        /*display: none;*/
    }

    .vh{
        /*visibility: hidden;*/
    }

    </style>
</head>
<body>
<div class="parent">
        <div class="dn">display : none;</div>
</div>
<div class="parent">
        <div class="vh">visibility : hidden;</div>
</div>

</body>
</html>

 

 

image

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

image

posted @ 2016-11-01 15:04  刘江龙  阅读(488)  评论(0编辑  收藏  举报