盒模型入门

盒布局

各种盒模型

盒的基本类型

在CSS3中使用display属性来定义盒的类型,总体来说盒分为block类型和inline类型。

例如:
div元素和p元素属于block类型;span和a属于inline类型。

  1. 1 inline-block类型
    inline-block类型是CSS2.1中追加的一个盒类型。
    inline-block类型盒属于block盒的一种,但是在显示时具有inline类型盒的特点。

    示例:
    在div元素中分别将display设置为inline-block和inline后它们的效果一样。

    代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>盒的基本类型</title>
    <style>
        /*div{background: green}*/
        /*span{background: red}*/
        div{background: green;width: 50px;height: 50px}
        .div1{display: inline-block}
        .div2{display: inline}
    </style>
</head>
<body>
<h1>盒的基本类型</h1>
<div class="div1">在css3中使用display属性来定义盒的类型,总体来说盒分为block类型和inline类型。</div>
<div class="div2">在css3中使用display属性来定义盒的类型,总体来说盒分为block类型和inline类型。</div>
<!--<span>在css3中使用display属性来定义盒的类型,总体来说盒分为block类型和inline类型。</span>-->
</body>
</html>
  1. 2 使用inline-block类型来执行分列显示
    在CSS2.1之前,如果需要在一行中并列显示多个block类型的元素,需要用float属性或者position属性,但是会造成样式变复杂。
    CSS2.1中追加的inline-block类型使得并列显示多个block类型的元素变得简单。

    示例:
    block类型
    首先新建三个div元素,给前两个div使用float让其并列显示,第三个div就会显示在前两个div元素的下面,用clear属性清除因前两个高度不一造成的浮动。

    代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用inline-block类型来执行分列显示</title>
    <style>
        div.div{
            width:400px
        }
        div.div1{
            width: 200px;
            background-color: green;
            float: left;
        }
        div.div2{
            width: 200px;
            background-color: #ff6600;
            float: left;
        }
        div.div3{
            clear: both;
            background-color: #d829ff;
        }
    </style>
</head>
<body>
<h1>使用inline-block类型来执行分列显示</h1>
<div class="div">
    <div class="div1">
        inline-block类型是css2.1中追加的一个盒类型。
        inline-block类型盒属于block盒的一种,但是在显示时具有inline类型盒的特点。
        在DIV元素中分别将display设置为inline-block和inline后他们的效果一样。
    </div>
    <div class="div2">
        在css2.1之前,如果需要在一行中并列显示多个block类型的元素,需要用float属性或者position属性,但是这样会让我们的样式变的复杂,
    </div>
    <div class="div3">
        css2.1之前,如果需要在一行中并列显示多个block类型的元素,需要用float属性或者position属性,但是这样会让我们的样式变的复杂,所以在CSS2.1中就追加了inline-block类型,使得并列显示多个block类型的元素操作变的很简单。
        首先新建三个div元素,给前两个DIV使用float让前两个div元素并列显示,第三个div的话就会显示在前两个div元素的下部,但是因为前两个的高度不一样所以我们要使用clear属性清除浮动。
    </div>
</div>
</body>
</html>

inline-block类型
使用inline-block类型可以直接将两个div元素进行并列显示,不需要使用float属性,也不需要使用clear属性。

代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用inline-block类型来执行分列显示</title>
    <style>

        div.div1{
            width: 200px;
            background-color: green;
            display: inline-block;
        }
        div.div2{
            vertical-align: top;
            width: 200px;
            background-color: #ff6600;
            display: inline-block;
        }
        div.div3{
            width: 400px;
            background-color: #d829ff;
        }
    </style>
</head>
<body>
<h1>使用inline-block类型来执行分列显示</h1>
<div class="div">
    <div class="div1">
        2、inline-block类型
        inline-block类型是css2.1中追加的一个盒类型。
        inline-block类型盒属于block盒的一种,但是在显示时具有inline类型盒的特点。
        例如:
        在DIV元素中分别将display设置为inline-block和inline后他们的效果一样。

        如果我们给他们都指定宽度和高度结果会是怎样?

    </div><div class="div2">
        2.2使用inline-block类型来执行分列显示
        在css2.1之前,如果需要在一行中并列显示多个block类型的元素,需要用float属性或者position属性,但是这样会让我们的样式变的复杂,

    </div>
    <div class="div3">
        css2.1之前,如果需要在一行中并列显示多个block类型的元素,需要用float属性或者position属性,但是这样会让我们的样式变的复杂,所以在CSS2.1中就追加了inline-block类型,使得并列显示多个block类型的元素操作变的很简单。

        示例对比:
        block类型
        首先新建三个div元素,给前两个DIV使用float让前两个div元素并列显示,第三个div的话就会显示在前两个div元素的下部,但是因为前两个的高度不一样所以我们要使用clear属性清除浮动。



    </div>

</div>
</body>
</html>
  1. 3 使用inline-block类型来显示水平菜单
    在CSS2.1之前,如果要实现水平菜单,那么我们需要使用float属性,大多数菜单是利用ul列表盒li列表项目来显示的。li元素隶属于block类型下的list-item类型,所以要并列显示的话就要使用float属性。

使用float属性的代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用inline-block类型来显示水平菜单</title>
    <style>
        ul{
            margin:0;
            padding: 0;
        }
        li{
            padding: 10px 20px;
            background-color: #2292ff;
            border-right: solid 1px #2066c7;
            width: 100px;
            text-align: center;
            list-style: none;
            float: left;
        }
        a{
            color: #fff;
            text-decoration: none;
        }
    </style>
</head>
<body>
<h1>使用inline-block类型来显示水平菜单</h1>
<ul>
    <li><a href="index1.html">首页</a> </li>
    <li><a href="index1.html">首页</a> </li>
    <li><a href="index1.html">首页</a> </li>
    <li><a href="index1.html">首页</a> </li>
    <li><a href="index1.html">首页</a> </li>
</ul>
</body>
</html>

使用inline-block类型的代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用inline-block类型来显示水平菜单</title>
    <style>
        ul{
            margin:0;
            padding: 0;
        }
        li{
            display: inline-block;
            padding: 10px 20px;
            background-color: #2292ff;
            border-right: solid 1px #2066c7;
            width: 100px;
            text-align: center;
        }
        a{
            color: #fff;
            text-decoration: none;
        }
    </style>
</head>
<body>
<h1>使用inline-block类型来显示水平菜单</h1>
<ul>
    <li><a href="index1.html">首页</a></li><li><a href="index1.html">首页</a></li><li><a href="index1.html">首页</a></li><li><a href="index1.html">首页</a></li><li><a href="index1.html">首页</a></li>
</ul>
</body>
</html>
  1. inline-table类型
    inline-table类型是CSS2中新增的盒模型。

    示例:
    在CSS中使用table,做一个表格,前后都有文字将其环绕。

代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>inline-table类型</title>
    <style>
        table{
            display: inline-table;
            vertical-align: bottom;
            border: solid 3px #ccc;
        }
        td{
            border: solid 3px #898989;
        }
    </style>
</head>
<body>
<h1>inline-table类型</h1>
这里是文字内容
<table>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>
这里是文字内容
</body>
</html>
  1. list-item类型
    list-item类型,可以将多个元素作为列表来显示,同时在元素的开头加上列表的标记。

代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>list-item类型</title>
    <style>
        div{
            display: list-item;
            list-style-type: circle;
            margin-left: 30px;
        }
    </style>
</head>
<body>
<h1>list-item类型</h1>
<div>list-item类型</div>
<div>list-item类型</div>
<div>list-item类型</div>
<div>list-item类型</div>
<div>list-item类型</div>
<div>list-item类型</div>
<div>list-item类型</div>
</body>
</html>
  1. run-in类型与compact类型
    将元素指定为run-in类型或compact类型时,如果元素后面还有block类型的元素,run-in类型的元素将被包括在后面的block类型的元素的内部,而compact类型的元素将被放置在block类型的元素的左边。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>run-in类型或compact类型</title>
    <style>
        dl.run-in dt{
            display: run-in;
            border: solid 2px #d829ff;
            background-color: #cccccc;
        }
        dl.compact dt {
            display: compact;
            border: solid 2px #d829ff;
            background-color: #cccccc;
        }
    </style>
</head>
<body>
<h1>run-in类型或compact类型</h1>
<dl class="run-in">
    <dt>run-in类型</dt>
    <dd>run-in类型的元素将被包括在后面的block类型的元素的内部</dd>
</dl>
<dl class="compact">
    <dt>compact类型</dt>
    <dd>ompact类型的元素将被放置在block类型的元素左边</dd>
</dl>
</body>
</html>

效果图:
在这里插入图片描述

  1. 表格相关类型
    在CSS3中所有与表格相关的元素及其所属类型表:
元素所属类型说明
tabletable代表整个表格
tableinline-table代表整个表格可以被指定为table类型也可以是inline-table类型
trtable-row代表表格中的一行
tdtable-cell代表表格中的单元格
thtable-cell代表单元格中的列标题
tbodytable-row-group代表表格中行中的所有行
theadtable-header-group代表表格中的表头部分
tfoottable-footer-group代表表格中的脚注部分
coltable-column代表表格中的一列
colgrouptable-column-group代表表格中的所有列
captiontable-caption代表整个表格的标题

代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>CSS3中所有与表格相关的元素</title>
    <style>
        div.table{
            display: table;
            border: solid 3px #ccc;
        }
        div.table-caption{
            display: table-caption;
        }
        div.thead{
            display: table-header-group;
        }
        div.tr{
            display: table-row;
        }
        div.td{
            display: table-cell;
            border: solid 3px #898989;
            padding: 5px;
        }
    </style>
</head>
<body>
<h1>CSS3中所有与表格相关的元素</h1>
<div class="table">
    <div class="table-caption">表格标题</div>
    <div class="thead">
        <div class="tr">
            <div class="td">1</div>
            <div class="td">2</div>
            <div class="td">3</div>
        </div>
        <div class="tr">
            <div class="td">1</div>
            <div class="td">2</div>
            <div class="td">3</div>
        </div>
        <div class="tr">
            <div class="td">1</div>
            <div class="td">2</div>
            <div class="td">3</div>
        </div>
    </div>
</div>
</body>
</html>

效果:
在这里插入图片描述

  1. none类型
    当元素被指定了none类型后,这个元素将不会被显示。
    利用伪类选择器实现鼠标移动上去隐藏,移开显示的效果:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>none类型</title>
    <style>
        div#a{
            width: 500px;
            height: 500px;
            background-color: #cccccc;
        }
        div#b{
            display: block;
            width: 200px;
            height: 200px;
            background-color: green;
        }
        div#a:hover div#b{
            display: none;
        }
    </style>
</head>
<body>
<h1>none类型</h1>
<div id="a">
    <div id="b"></div>
</div>
</body>
</html>
  1. 各种浏览器对各种盒模型的支持情况

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值