zoukankan      html  css  js  c++  java
  • 盒子模型

    在css中,每个元素都可以当作一个矩形的盒子。之所以这样是为了更方便布局。把这些元素作为盒子后,我们的布局就相当于在页面中摆放盒子了。

     

    Content内容区

    内容区相当于盒子存放东西的空间,位于盒子的最里层。元素的所有子元素都是放在父元素的内容区。
    值得注意的是,当我们指定一个元素的width和height时,其实只是设置了内容区的宽和高。

    padding内边距

    盒子在内容区周围可能有一层内边距,会影响盒子的大小。内边距是透明的,没有颜色也没有装饰。
    盒子一共有四个方向的内边距,分别为padding-top、padding-right、padding-bottom、padding-left。

    可以利用上述属性设置单侧内边距,也可以同时设置四个方向的内边距。例如:padding:10px 20px 30px 40px; 表示的是设置上 右 下 左的内边距分别为10px,20px, 30px, 40px。
    也可以 padding: 10px 20px 30px; 表示的是上 左右 下 的内边距
    也可以 padding:10px 20px; 表示的是上下 左右 的内边距
    还可以 padding:10px; 表示的是 上下左右 内边距都为10px.

    Border边框

    边框位于盒子的边缘,设置边框需要同时设置border-width、border-color、border-style三个样式,缺一不可。

    border-width
    边框的宽度,可以同时指定,也可以分别指定。与padding规则一致。为边框指定宽度可以指定长度值,比如 2px 或 0.1em;
    border-color
    边框的颜色。需要的时候可以设置边框的颜色为"transparent"。这种透明边框相当于内边距,因为元素的背景会延伸到边框区域(如果有可见背景的话)。
    border-style
    定义边框的样式。默认无边框。

    除了这三个样式,CSS中还提供了border-xxx-width、 border-xxx-color、 border-xxx-style 来单独设置四个边的宽度、颜色、样式。xxx可以是top、right、 bottom、left。

    边框的简写属性:
    border可以同时设置四个边的颜色,宽度和样式,border-xxx可以单独设置某一个边。使用这些样式可以同时设置border-width、border-color、border-style,不同的属性用空格隔开,没有顺序要求。

    例如:border : 2px red solid;

    margin外边距

    外边距包围着边框。利用外边距,可以为同一个页面上的不同元素之间增加空间。类似于内边距,外边距也是透明的,无颜色和装饰。
    也是具有四个方向的外边距,分别为:margin-top、margin-right、margin-bottom、margin-left。
    margin的简写属性规则与padding一致。
    如果单独将左/右外边距设置为auto,则会将左/右外边距设置为最大值。
    如果同时将左右外边距设置为auto,则会将左右外边距设置为一个相等的值,通过这种方式使一个子元素在它的父元素中水平居中。
    例如:margin:0 auto;表示水平居中。
    margin也可以设置为负值,元素会向相反的方向移动。

    margin的折叠问题
    相邻的垂直外边距会发生折叠现象,相邻元素的外边距会取最大值,子元素的外边距会传递给父元素;水平外边距不会重叠,而是取和。                                                                                                                  如果一个元素嵌套在另一个元素中,都有外边距的话也会折叠。判断元素外边距是否会发生折叠:只要两个垂直外边距碰到一起,它们就会折叠。若是外面的元素有一个边框,那么两个元素的外边距不会碰在一起,这样就不会折叠了。

    内联元素的盒子模型

    给内联元素设置width和height是不起作用的。
    支持水平方向的padding;垂直方向的padding也支持,但是不会影响布局,即不会挤压垂直方向上相邻的元素,而是覆盖。
    四个方向的边框都支持,但是垂直方向上的边框不影响布局。
    支持水平方向的外边距,不支持垂直方向的外边距。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .box{
                    width: 100px;
                    height: 100px;
                    background-color: yellow;
                    border:2px blue solid;
                    margin: 10px;
                }
    
                .s1{
                    /* 对内联元素设置宽高不起作用 */
                    width: 100px;
                    height: 100px;
                    background-color: red;
                    padding:10px;
                    border:20px green solid;
                    margin: 10px 100px 30px 40px;
    
                }
                
                .s2{
                    background-color: rgb(79, 153, 196);
                    padding:10px;
                    border:20px rgb(132, 115, 192) solid;
                    margin: 10px 20px 30px 40px;
                }
            </style>
        </head>
        <body>
            <div class="box">我是div</div>
            <span class="s1">我是span</span>
            <span class="s2">我是第二个span</span>
        </body>
    </html>

    结果如下:

    盒模型相关的样式

    display 设置元素的显示类型

    可选值:none 元素不会在页面中显示,并且不会占据页面的位置
        block 元素会作为块元素显示
        inline 元素会作为内联元素显示
        inline-block 元素会作为行内块元素显示,既有内联元素的特点也有块元素的特点:不独占一行以及可以设置宽和高

    visibiity 设置元素是否在页面中显示

    可选值:visible 默认值,元素在页面中正常显示
        hidden 溢出的内容会被隐藏不会显示

    overflow 设置元素如何处理溢出内容

    可选值:visible 默认值,不会处理溢出的内容,在父元素之外的仍然会显示
        hidden 溢出的内容会被隐藏,不会显示出来
        scroll 在父元素中添加水平和垂直方向上的滚动条,不论内容是否溢出都会添加
        auto 根据需要自动生成滚动条

  • 相关阅读:
    绝对路径和相对路径的问题
    get请求中的中文乱码问题的解决方法
    jsp中的另一种分页实现方法
    jsp中退出功能实现代码
    jsp中完整的分页显示和页面跳转功能实现的源代码
    jsp中未登录用户也可以浏览页面的功能实现代码
    date和calendar对象的转化,使用,以及插入数据库中的总结
    jsp中向数据库中插入当前时间的方法精确到秒
    硬盘方式安装 Windows 7
    HP笔记本中CQ4x系列,在XP下的未知设备与声卡设备驱动
  • 原文地址:https://www.cnblogs.com/ly2019/p/10547584.html
Copyright © 2011-2022 走看看