CSS — 文档流、盒模型

目录

一、文档流(normal flow)

  1.块元素

  2.行内元素

二、盒模型 

  1.边框

        (1).border-width 

        (2).border-color

        (3). border-style

         (4).border简写属性

  2.内边距(padding)

  3.外边距(margin)


一、文档流(normal flow)

        网页是一个多层的结构,一层摞着一层。通过CSS可以分别为每一层来设置样式,作为用户来讲只能看到最顶上一层。这些层中,最底下的一层称为文档流。

        文档流是网页的基础,我们所创建的元素默认都是在文档流中进行排列。对于我们来说元素主要有两个状态:在文档流中不在文档流中(脱离文档流)

 

元素在文档流中的特点:

  1.块元素

        (1).块元素会在页面中独占一行(自上向下垂直排列)

        (2).默认宽度是父元素的全部(会把父元素撑满)

        (3).默认高度是被内容撑开(子元素)

 

  2.行内元素

        (1).行内元素不会独占页面的一行,只会占自身的大小

        (2).行内元素在页面中从左向右水平排列,如果一行之中不能容纳所有行内元素,则元素会换到第二行继续自左向右排列(与书写习惯一致)

        (3).行内元素的默认宽度和高度都是被内容撑开

 

举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box1{
            width: 100px;
            background-color: springgreen;
        }
        .box2{
            width: 100px;
            background-color: tomato;
        }
        span{
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div class="box1">我是div1</div>
    <div class="box2">我是div2</div>
    <span>我是span1</span>
    <span>我是span2</span>
    <span>我是span3</span>
    <span>我是span4</span>
    <span>我是span5</span>
    <span>我是span6</span>
    <span>我是span7</span>
</body>
</html>

 效果如下:

二、盒模型 

        盒模型,也称盒子模型框模型(box model)。

        CSS将页面中所有元素都设置为了一个矩形的盒子

        将元素设置为矩形的盒子后,对页面的布局就变成了将不同的盒子摆放到不同的位置

        每一个盒子都由以下几部分组成:内容区(content)、内边距(padding)、边框(border)、外边距(margin)

  1.边框

        边框(border),边框属于盒子边缘,边框里边属于盒子内部出了边框都是盒子的外部,边框的大小会影响到整个盒子的大小。

        要设置边框,需要至少设置三个样式:

                    边框的宽度:border-width    (默认宽度是三个像素)

                    边框的颜色:border-color

                    边框的样式:border-style

 

        (1).border-width 

        border-width默认值一般都是3个像素,border-width可以用来指定四个方向的边框的宽度

                值的情况:

                    四个值:上 右 下 左

                    三个值:上 左右 下

                    两个值:上下 左右

                    一个值:上下左右

         除了border-width还有一组 border-xxx-width,xxx可以是top、 right、 left、 bottom,用来单独指定某一个边的宽度。

 

 

        (2).border-color

        border-color用来指定边框的颜色,同样可以分别指定四个边的边框,规则和border-width一样,border-color也可以省略不写,如果省略了则自动使用color的颜色值

 

 

        (3). border-style

        border-style指定边框的样式

                solid表示实线

                dotted点状虚线

                dashed虚线

                double双线

        border-style的默认值是none 表示没有边框

 

         (4).border简写属性

        通过该属性可以同时设置边框所有的相关样式,并且没有顺序要求,除了统一设置四个方向的border,以外还可以分开设置

            border-top

            border-right

            border-bottom

            border-left

 

 举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: orange;
            border-width: 20px;
            border-color: skyblue pink cadetblue darkblue;
            border-style: solid dotted dashed double;
        }
    </style>
    </style>
</head>
<body>
<div class="box1"></div>
</body>
</html>

效果如下:

 

  2.内边距(padding)

        内容区和边框之间的距离是内边距,一共有四个方向的内边距:

                    padding-top

                    padding-right

                    padding-bottom

                    padding-left

        内边距的设置会影响到盒子的大小,背景颜色会延伸到内边距上

        一个盒子可见框的大小,由内容区、内边距和边框共同决定。所以在计算盒子大小时,需要将这三个区域加到一起计算

         padding内边距的简写属性,可以同时指定四个方向的内边距,规则和border-width一样

 

举个例子: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box1{
            width: 200px;
            height:200px;
            background-color: orange;
            border: 10px skyblue solid;
            padding-top: 100px;
            padding-right: 50px;
        }
        .inner{
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="inner"></div>
    </div>
</body>
</html>

效果如下:

 

 

  3.外边距(margin)

        外边距不会影响盒子可见框的大小,但是外边距会影响盒子的位置。

        一共有四个方向的外边距:

               1. margin-top

                        上外边距,设置一个正值,元素会向下移动

                2. margin-right

                        默认情况下设置margin-right不会产生任何效果

                3. margin-bottom

                        下外边距,设置一个正值,其下边的元素会向下移动

                4. margin-left

                        左外边距,设置一个正值,元素会向右移动

         margin也可以设置负值,如果是负值则元素会向相反的方向移动

        元素在页面中是按照自左向右的顺序排列的,所以默认情况下如果设置左和上外边距则会移动元素自身,而设置下和右外边距移动其他元素。

        margin的简写属性:

        margin可以同时设置四个方向的外边距,用法和padding一样

 

举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .box1{
            height: 200px;
            width: 200px;
            background-color: paleturquoise;
            border: 10px red solid;
            margin: 50px;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: orange;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>
</html>

效果如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值