美文网首页
盒子模型

盒子模型

作者: 赵小莹 | 来源:发表于2018-01-31 16:20 被阅读0次

    div

    div 可定义文档中的分区(division)。
    div 标签可以把网页分割为独立的、不同的部分。
    <div> 不像 h1,p标签,没有任何默认样式,其主要作用是标识网页上的某块区域。常见做法是通过给div元素加上id或class,然后通过css选中某个div,对其进行样式美化。

    <div class="demo">我是一个div</div>
    <style>
            .demo{
                color:red;
                font-size: 20px;
            }   
    </style>
    

    每个div可以看成一个盒子

    一个盒子中主要的属性有5个:width、height、padding、border、margin。
    如下:

    width:内容的宽度。CSS中 width 指的是内容的宽度,而不是盒子的宽度。盒子的宽度=内容宽度+padding+border

    height:内容的高度。CSS中 height 指的是内容的高度,而不是盒子的高度。盒子的高度=内容高度+padding+border

    padding:内边距。

    border:边框。

    margin:外边距。


    元素宽高
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>        
         div {
            width: 200px;
            height: 200px;
            background-color: gray;
        }    
    </style>
    </head>
    <body>
    <div>我是一只小小鸟</div>
    </body>
    </html>
    

    边框

    属性 说明 示例
    border-top-color 上边框颜色 border-top-color:#369;
    border-right-color 右边框颜色 border-right-color:#369;
    border-bottom-color 下边框颜色 border-bottom-color:#fae45b;
    border-left-color 左边框颜色 border-left-color:#efcd56;

    border-color 四个边框为同一颜色 border-color:#eeff34;
    上、下边框颜色:#369
    左、右边框颜色:#000
    border-color:#369 #000;
    上边框颜色:#369
    左、右边框颜色:#000
    下边框颜色:#f00
    border-color:#369 #000 #f00;
    上、右、下、左边框颜色:#369、#000、#f00、#00f
    border-color:#369 #000 #f00 #00f;

    边框粗细
    border-width:像素值

            order-top-width:5px;
            border-right-width:10px;
            border-bottom-width:8px;
            border-left-width:22px;
            border-width:5px ;
            border-width:20px 2px;
            border-width:5px 1px 6px;
            border-width:1px 3px 5px 2px;
    

    边框样式

    none
    hidden
    dotted
    dashed
    solid
    double

            border-top-style:solid;
            border-right-style:solid;
            border-bottom-style:solid;
            border-left-style:solid;
            border-style:solid ;
            border-style:solid dotted;
            border-style:solid dotted dashed;
            border-style:solid dotted dashed double;
    

    border简写
    同时设置边框的颜色、粗细和样式

    > border-bottom: 9px #F00 dashed ;
     border: 9px #F00 dashed ;
    

    外边距
    margin-top
    margin-right
    margin-bottom
    margin-left
    margin

            margin-top: 1px 
            margin-right : 2 px 
            margin-bottom : 2 px 
            margin-left : 1 px 
            margin : 3 px 5 px 7 px 4 px;上右下左
            margin: 3px 5px;
            margin: 3px 5px 7px;
            margin: 8px;
    

    外边距的妙用

    网页居中对齐
    前提,居中对齐的网页元素必须设定宽度。
    margin:0px auto;
    内边距

    padding
    padding-left
    padding-right
    padding-top
    padding-bottom
    padding

    padding-left:10px;
    padding-right: 5px;
    padding-top: 20px;
    padding-bottom:8px;
    padding:20px 5px 8px 10px ;上右下左
    padding:10px 5px;上下  左右
    padding:30px 8px 10px ;上   左右  下
    padding:10px;上下左右
    

    盒子模型的尺寸



    盒子模型总尺寸=border-width+padding+margin+内容宽度

    元素默认样式

    很多标签都有自己的默认样式
    我们在chrome浏览器中运行时,可以通过开发者工具(快捷键Ctrl+Shift+I)来一个个审查元素,来看看它们的默认样式

    body标签的margin为8px


    p标签的上下外边距为16px


    h1标签的上下外边距为21.440px


    ul标签的上下外边距也为16px,左内边距也为40px


    重置默认样式

    为了兼容性,凡是浏览默认的样式,都不要使用。
    重置默认样式 (css reset)

    /*默认样式重置(css reset)*/
            body, p, h1, h2, h3, h4, h5, h6, dl, dd {
                margin: 0;
                font-size: 12px; /* 中文字体大小的最小值 */
            }
            ol, ul {
                list-style: none; /* 去除列表样式 */
                padding: 0;
                margin: 0;
            }
            a {
                text-decoration: none;
            }
    

    元素分类

    • 块级元素
    • 行级(内联)元素
    • 行块标签(内联块元素)

    行级元素:浏览器窗口宽度空间足够的话行级标签会排在一行,宽度不够才去下一行
    1.默认同行可以继续跟同类型标签
    2.内容撑开宽度
    3.不支持宽高
    4.不支持上下的margin
    a,em, strong,span,普通文本

    span

    span是一个特殊的行级标签,和div(块级标签)一样,没有任何语义(样式)。

    通常用来着重显示某行文字中的某个单词

    块级元素:独占一行
    p,h1-h6,div,ol-li,ul-li,dl-dt-dd

    块元素的特性:
    1.默认独占一行显示
    2.没有宽度时,默认撑满一排
    3.支持所有css命令

    行块元素
    img

    inline-block的特点:
    元素在一行显示
    支持宽高
    没有宽度的时候内容撑开宽度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>        
            img {
            width: 300px;
            height: 200px;
            }    
        </style>
    </head>
    <body>
    <img src="img/1.jpg">
    <img src="img/2.jpg">
    </body>
    </html>
    

    效果图


    display属性

    控制元素的显示和隐藏

    块级元素与行级元素的转变

    值 说明
    block 块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行符
    inline 内联元素的默认值。元素会被显示为内联元素,该元素前后没有换行符
    inline-block 内联块元素
    none 设置元素不会被显示

    背景图像

    background-image属性
    background-image:url(图片路径);

    背景重复方式
    background-repeat属性

    repeat:沿水平和垂直两个方向平铺,默认的
    no-repeat:不平铺,即只显示一次
    repeat-x:只沿水平方向平铺
    repeat-y:只沿垂直方向平铺

    背景定位
    background-position属性

    Xpos Ypos
    单位:px
    Xpos表示水平位置,Ypos表示垂直位置

    X% Y%
    使用百分比表示背景的位置
    eg.50% 50%图片中心点和整个div中心点重合
    100% 100% 右下角

    X、Y方向关键词
    水平方向的关键词:left、center、right
    垂直方向的关键词:top、center、bottom
    eg.center center图片中心点和整个div中心点重合
    right bottom 右下角
    Alt+Enter可以合并简化书写

    练习:制作分页

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>分页</title>
        <link rel="stylesheet" href="resert.css">
        <style>
            .fenye {
                width: 600px;
                height: 60px;
                background-color: #E8E8E8;
                line-height: 60px;
                margin: 0 auto;
                text-align: center;
                margin-top: 90px;
            }
            .fenye li {
                display: inline-block;
            }
            .fenye a {
                color: black;
                border: 1px solid #CDCDCD;
                padding: 6px;
                background-color: white;
            }
            .fenye a:hover {
                color: red;
                border: 1px solid red;
            }
            .fenye .activied {
                font-weight: bold;
                background: #fcf9ea;
                cursor: text;
            }
            .fenye .activied:hover {
                font-weight: bold;
                background: #fcf9ea;
                color: black;
                border: 1px solid #CDCDCD;
            }
    
        </style>
    </head>
    <body>
    <div class="fenye">
        <ul>
            <li><a href="#">上一页</a></li>
            <li><a href="#" class="activied">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
            <li><a href="#">6</a></li>
            <li><a href="#">7</a></li>
            <li><a href="#">8</a></li>
            <li><a href="#">9</a></li>
            <li><a href="#">10</a></li>
            <li><a href="#">...87</a></li>
            <li><a href="#">下一页</a></li>
        </ul>
    </div>
    </body>
    </html>
    

    cursor:text;
    激活页:文本(对于a标签来说就是手没有了)
    cursor:hand;(对于a标签来说就是手出来了)

    只有一行文字的时候行高height和高度 line-height相同,里面的内容上下就可以居中

    相关文章

      网友评论

          本文标题:盒子模型

          本文链接:https://www.haomeiwen.com/subject/cjuhzxtx.html