[个人学习笔记]CSS学习笔记

CSS:

概念:

层叠样式表或者级联样式表 (Cascading Style Sheets)

CSS作用:

设置网页结构样式(改变html标签样式),通过CSS给html标签设置属性达到改变标签样式。

CSS书写位置介绍:

内嵌式:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <!-- 内嵌: 将css放到html文件中设置 -->  
        <style type="text/css">  
            Css代码  
        </style>  
        <title>Document</title>  
    </head>  
    <body>  
        <!-- 概念:层叠样式表或者级联样式表(Cascading  Style Sheets)  
        层叠: CSS的特性  

        CSS作用:        
            设置网页结构样式(改变html标签样式),通过CSS给html标签设置属性达到改变标签样式。  

        CSS书写位置介绍:  
            内嵌式写法  
            外链式写法  
            行内式写法 -->  
    </body>  
    </html>  

外联式和行内式:

外部创建css文件,然后html引入css.

CSS例子:

    div{  
        font-style::30px;  
        color: red;  
    }  
    .one{  
        widows: 300px;  
        height: 300px;  
        background-color: pink;  
    }  

HTML文件例子:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 使用link标签将外部的css文件引入页面中  
        注意:  
            一个页面中可以同时引用多个外部样式表 -->  
        <link rel="stylesheet" type="text/css" href="17外联式.css">  
    </head>  
    <body>  
        <div>123</div>  
        <p class="one">456</p>  

        <!-- 行内式写法:  
            在标签内部使用style属性设置样式 -->  
        <p style="color: red">789</p>  
    </body>  
    </html>  

标签选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            /*标签选择器*/  
            /*html标签名  {属性: 值; }  

            常用的属性:  
            color               前景色(文字颜色)  
        background-color                背景色  
            font-size               设置文字大小  
            width               设置宽度  
            height              设置高度  
    text-align: left | center | right   内容(文字,图片)居中显示.  注意: 该属性只能给块级元素设置。  
            text-indet:             设置首行缩进*/  
            p{  
                color: red;  
                font-size: 50px;  
                background-color:pink;  
                width: 300px;  
                height: 300px;  
                /*px:像素  
                em:1em=一个文字大小*/  
            }  
        </style>  
    </head>  
    <body>  
        <p>段落文字</p>  

        <div>div中的文字</div>  

        <ul>  
            <li>列表1</li>  
            <li>列表2</li>  
            <li>列表3</li>  
        </ul>  
    </body>  
    </html>  

颜色的表示方式:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            #p1{  
                width: 300px;  
                height: 300px;  
                /*直接设置颜色的名称*/  
                background-color: pink;  
            }  
            #p2{  
                width: 300px;  
                height: 300px;  
                /*使用十六进制表示   #0-f*/  
                background-color: #0f0f0f;  
            }  
            #p3{  
                width: 300px;  
                height: 300px;  
                /*使用三原色表示  
                rgb()  
                  r:  red      (0-255)  
                  g:  green   (0-255)  
                  b:  blue    (0-255)*/  
                 background-color: rgb(234,12,12);  
            }  
            #p4{  
                width: 300px;  
                height: 300px;  
                /*半透明效果*/  
                /*rgba()     a  0-1*/  
                background-color: rgba(0,0,0,.1);  
            }  
            #p5{  
                /*使用opacity实现半透明*/  
                width: 300px;  
                height: 300px;  
                background-color: red;  
                opacity: .1;  
            }  
            #p6{  
                /*解决ie低版本不支持*/  
                width: 300px;  
                height: 300px;  
                background-color: red;  
                opacity: .3;  
                filter:Alpha(opacity=50);  
            }  
        </style>  
    </head>  
    <body>  
        <p id="p1"></p>  
        <p id="p2"></p>  
        <p id="p3"></p>  
        <p id="p4"></p>  
        <p id="p5"></p>  
        <p id="p6"></p>  
    </body>  
    </html>  

类选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
        /*自定义类名  {属性: 值; }*/  
        /*使用:  
        通过.自定义类名 定义一个类样式  
        .p_red {}  
        标签通过class属性调用类样式  
        <p  class=“p_red”></p>*/  
            .p1{  
                color: red;  
            }  
            .p2{  
                color: green;  
            }  
            /*一个类样式可以被多个标签同时调用*/  
            .c1{  
                color: blue;  
            }  
            /*一个标签可以同时调用多个类样式(人的名字)*/  
            .public{  
                font-size: 50px;  
            }  
        </style>  
    </head>  
    <body>  
        <p class="p1">文字1</p>  
        <p class="p2">文字2</p>  

        <div class="c1 public">div1</div>  
        <div class="c1">div2</div>  

        <span class="c1 public">span1</span>  
        <span class="c1">span2</span>  
    </body>  
    </html>  

类选择器命名规范:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            /*不能使用纯数字或者以数字开头定义类名*/  
            /*.1a{  
                color: red;  
            }*/  
            /*不推荐使用汉字定义类名*/  
            /*.文字颜色{  
                color: red;  
            }*/  
            /*不能使用特殊字符或者以特殊字符开头定义类名*/  
            /*不推荐使用标签名定义类名*/  

        </style>  
    </head>  
    <body>  
        <p>见名知其意:</p>  
        <!-- 头:header  
        内容:content/container  
        尾:footer  
        导航:nav  
        侧栏:column  
        页面外围控制整体宽度:wrapper  
        左右中:left right center  
        登录条:loginbar  
        标志:logo  
        广告:banner  
        页面主体:main  
        热点:hot  
        新闻:news  
        下载:download  
        子导航:subnav  
        菜单:menu  
        子菜单:submenu  
        搜索:search  
        友情链接:friendlink  
        页脚:footer  
        版权:copyright  
        滚动:scroll  
        内容:content -->  
    </body>  
    </html>  

Id选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
        /*语法: #自定名称 {属性: 值; }*/  
        /*使用:  
        首先通过#自定义名称 定义一个id选择器样式  
        #p_color { color: red;}  
        标签通过id属性调用id样式  
        <p  id=”p_color”></p>  
        id选择器与类选择器的区别:  
        1.页面中标签的id值必须唯一,不能重复  
        2.一个标签只能调用一个id样式*/  
            /*div{  
                color:red;  
            }*/  
            /*类选择器*/  
            /*.one{  
                color: red;  
            }*/  

            #color{  
                color:red;  
            }  
            #size{  
                font-size: 50px;  
            }  
        </style>  
    </head>  
    <body>  
        <p id="color size">Berts</p>  

        <!-- <div class="one" id="color">Abby</div>  

        <div class="two" id="color">Bert</div> -->  
    </body>  
    </html>  

通配符选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 语法:  
        * {属性: 值; ...}  
        特点:该选择器会将页面中所有的标签都选中 -->  
        <style type="text/css">  
            /* 样式初始化的时候用 */  
            * {  
                color: red;  
                font-size: 16px;  
                font-family: 宋体;  
            }  

        </style>  
    </head>  
    <body>  
        <div class="one">123</div>  
        <p class="one">456</p>  
        <span>789</span>  
        <h6>标题</h6>  
    </body>  
    </html>  

复合选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
        /*复合选择器*/  
        /*标签指定式选择器  
            语法:  
                标签名.类名 {属性: 值; }  
                或者  
                标签名#id名 {属性: 值;  }*/  
        /*关系:  
            既...又...*/  
            .one{  
                color: red;  
            }  
            div.one{  
                color: green;  
            }  
            div#two{  
                color: yellow;  
            }  
        </style>  
    </head>  
    <body>  
        <div class="one">div中的文字1</div>  
        <!-- <div class="two one">div中的文字2</div> -->  
        <div id="two">div中的文字2</div>  

        <p class="one">p中的文字</p>  
    </body>  
    </html>  

后代选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 注意:    
            1.后代选择器标签之间必须是嵌套关系。  
            2.选择器与选择器之间必须使用空格隔开  
            3.后代选择器只能选中后代元素  

        语法:  
            选择器  选择器 {属性: 值;} -->  
            <style type="text/css">  
                div p{  
                    color: blue;  
                }  
            </style>  
    </head>  
    <body>  
        <div class="one">  
            <span>文字1</span>  

            <p>  
                <span>文字2</span>  
            </p>  
        </div>  

        <p class="two">  
            没有父元素的p  
        </p>  
    </body>  
    </html>  

并集选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 语法:  
            选择器,选择器 {属性: 值;}  
        注意:  
            1. 选择器与选择器之间必须使用逗号隔开  
            2. 选择器标签之间的结构可以是任意一种关系 -->  
        <style type="text/css">  
            div,p,span{  
                font-size: 50px;  
                color: red;  
            }  
        </style>  
    </head>  
    <body>  
        <div class="one">123</div>  
        <p class="one">456</p>  
        <span>789</span>  

        <h2>Coco</h2>  
    </body>  
    </html>  

子代选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            /*子代选择器   
                语法:选择器>选择器 {属性: 值;}  
            注意:  
                1. 子代选择器之间必须是嵌套结构  
                2. 子代选择器只能选中直接后代元素  
                3. 后代选择器可以选中所有的后代元素*/  
            /*后代选择器*/  
            /*div span{  
                color: red;  
            }*/  
            div>span{  
                color: red;  
            }  
        </style>  
    </head>  
    <body>  
        <div class="one">  
            <span>直接后代或者子代</span>  

            <p>  
                <span>后代元素</span>  
            </p>  
        </div>  
    </body>  
    </html>  

属性选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 属性选择器 -->  
        <!-- 语法:[属性名] {属性: 值;}  
        属性选择器其它选择方式:  
            [属性=值] {}     
            [属性^=字母] { } 选中以字母开始的标签  
            [属性$=字母] { } 选中以字母介绍的标签  
            [属性*=字母] {}  选中包含字母的标签 -->  
        <style type="text/css">  
            .one{  
                color: red;  
            }  
            [class][id]{  
                color: green;  
            }  
            [name=user]{  
                font-size: 50px;  
            }  
        </style>  
    </head>  
    <body>  
        <div class="one">123</div>  
        <div class="one" id="two">456</div>  
        <div class="one" name="user">789</div>  
    </body>  
    </html>  

伪类选择器:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <!-- 伪类选择器  
        结构伪类  
            语法:  
            选择器:first-child {属性: 值;}  
            选择器:last-child {属性: 值;}  
            选择器: nth-child(n) {属性: 值;}  
            选择器:nth-last-child(n) {属性: 值;}  
            选择器:nth-child(odd) {属性: 值;} 奇数  
            选择器:nth-child(even) {属性: 值;} 偶数 -->  
        <style type="text/css">  
            li:first-child{  
                color: red;  
            }  

            li:last-child{  
                color: red;  
            }  
             /* //选中第二个元素 : n可以取任何值*/  
                /*  li:nth-child(1){  
                     color: blue;  
                 } */  


                 /* li:nth-last-child(2) {  
                      color: pink;  
                 } */  

                 /* 选择中奇数 odd*/  
                 /* li:nth-child(odd) {  
                      color: yellow;  
                 } */  
        </style>  
    </head>  
    <body>  
        <ul>  
            <li>li1</li>  
            <li>li2</li>  
            <li>li3</li>  
            <li>li4</li>  
            <li>li5</li>  
            <li>li6</li>  
            <li>li7</li>  
            <li>li8</li>  
            <li>li9</li>  
            <li>li10</li>  
        </ul>  
    </body>  
    </html>  

font属性介绍:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            p{  
                /*font-size: ;  文字大小*/  
                /*文字加粗*/  
                /*font-weight: 700px;*/  

                /*加粗*/  
                /*font-weight: bold;*/  
                /*正常*/  
                /*font-weight: 400;*/  

                /*文字斜体显示*/  
                /*font-style: normal;*/  

                /*设置文字字体*/  
                /*font-family: 微软雅黑;*/  

                /*文字字体表示方式:  
                    直接设置字体对应的名称 (宋体  黑体)  
                    设置字体对应的英文方式*/  
                /*font-family: "microsoft yahei"*/  

                /*设置字体对应的unicode编码*/  
                font-family: "\5FAE\8F6F\96C5\9ED1";  
                /*line-height:    设置文字行高*/  
            }  
        </style>  
    </head>  
    <body>  
        <p>文字1</p>  
        <!-- 注意:  
        1. font-family 一次可以设置多个字体,字体与字体中间用逗号隔开。  
        2. 设置字体要设置常用的字体 -->  

        <!-- 浏览器控制台:  
        escape(宋体)显示Unicode编码 -->  
    </body>  
    </html>  

font属性联写:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Document</title>  
        <style type="text/css">  
            /*p{  
                font-size: 30px;  
                font-weight: 700;  
                font-style: italic;  
                font-family: 微软雅黑;  
                /*行高*/  
                /*line-height: 100px;*/  
            /*font: font-weight  font-style  font-size/line-height   font-family*/  
            p{  
                /*font:700 italic 30px/100px 微软雅黑;*/  
                font:30px 宋体;  
            }  
            /*注意:  
                1. 属性联写中必须设置font-size 和font-family  
                2. 在属性联写中font-size 必须放到font-family前面设置  
                3. 如果font属性联写中的属性都要设置,那么按照图片中的属性去设置。*/  
        </style>  
    </head>  
    <body>  
        <p>文字</p>  

        <p>文字</p>  
    </body>  
    </html>  

元素显示方式

块级元素

代表:
div, p,ul,ol,dl,li,dd,dt,h1...h6....
特点:
☞ 块级元素独占一行显示
☞ 块级元素的默认宽度与其父元素的宽度一致
☞ 块级元素可以设置宽度和高度

行內元素

代表:
span, a , font, strong, i,s....
特点:
☞ 行内元素在一行上显示
☞ 行内元素不能设置宽度和高度

行内块元素

代表:
img, input....
特点:
☞ 元素可以在一行上显示
☞ 元素可以设置宽度和高度

元素模式转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        a{
            width: 300px;
            height: 300px;
            background-color: red;

            /*转化为块级元素(以块级元素的方式去显示)*/
            /*display: block;*/
            /*转化为行内块元素*/
            /*display: inline-block;*/
        }
        div{
            background-color: red;
            /*转化为行内元素*/
            display: inline;
        }
    </style>
</head>
<body>
    <!-- 注意:
    1. 可以把行内元素,块级元素,转化为任何一种元素
    2. 行内块元素转化行内元素没有效果
    3. 一般情况下会将行内元素进行转化 -->
    <div>块级元素</div>

    <a href="#">行內元素</a>

    <a href="#">行内元素</a>
</body>
</html>

注意:
1. 可以把行内元素,块级元素,转化为任何一种元素
2. 行内块元素转化行内元素没有效果
3. 一般情况下会将行内元素进行转化

CSS特性

层叠性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 层叠性:在权重相同的情况下,在同一个标签中样式发生冲突,后面定义样式会将前面定义的样式给覆盖掉。
    注意:
        样式与定义的顺序有关,与调用的顺序无关 -->
    <style type="text/css">
        .one{
            color: red;
        }
        .two{
            color: pink;
        }
    </style>
</head>
<body>
    <div class="one two">文字</div>
</body>
</html>

重叠性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
     /*继承性: 在默认情况下,如果子元素没有设置样式,那么该子元素会受父元素的样式影响。*/
     /*注意:
        1. CSS继承性只能发生在标签嵌套结构中
        2. 宽度和高度不能被继承
    可继承的属性:
        1.  color 可以被继承
        2.  font-size 可以被继承
        3.  与font属性相关的属性都可以被继承
        4.  行高(line-height)可以被继承
        5.  text-align 可以被继承*/
        /*继承性中特殊标签:
            1: a标签不能直接受父元素中的文字颜色影响
            2: 标题标签不能直接受父元素中的文字大小影响*/
        div{
            color: red;
            font-size: 40px;
            font-family: "微软雅黑";
            font-weight: 700;
            background-color: pink;
            text-align: center;
            width: 300px;
        }
    </style>
</head>
<body>
    <div>
        div文字
        <p>
            段落文字
        </p>
    </div>
</body>
</html>

优先级

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*优先级(权重)
    标签选择器< 类选择器< ID选择器 <行内样式 < !Important
        10      100     1000      10000     10000+
        1.继承的权重为0*/ 
        /*p{
            color: green;
        }
        .one{
            color: red;
        }*/
        /*权重可以叠加*/
        div p{
            color: green;
        }
        div.one p{
            color: pink;
        }
        p{
            color: red
        }
        /*总结:
        1. 如果通过选择器指向的是同一个标签,如果权重不一样,那么只要考虑优先级。
        2. 如果指向是同一标签并且权重一样,直接考虑层叠性。*/
    </style>
</head>
<body>
    <!-- <div class="one">
        <p>文字</p>
    </div> -->
    <div class="one" id="two">
        <p class="two">文字</p>
    </div>
</body>
</html>

伪类:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        /*.one{
            color: red;
        }
        .one{
            color: black;
        }*/
        a{
            color: red;
        }
    /*a:link {属性: 值; }   设置a标签默认的样式
        如果给a标签设置样式,推荐使用标签选择器或者其他选择器,不推荐使用a:link {} 方式*/
        a:link{
            color: red;
            text-decoration: none;
        }
    /*a:visited {属性: 值;}  设置a标签访问过后的样式
    注意:
        1. :visited {} 该伪类中只能设置与颜色相关的属性。
        2.该伪类具有缓存特性*/
        a:visited{
            color: pink;
        }
        /*a:hover {属性: 值;}  设置鼠标悬停到a标签上的样式*/
        a:hover{
            font-size: 50px;
            color:blue;
            /*显示下划线*/
            text-decoration: underline;
        }
        /*a:active {属性: 值;}  设置a标签激活状态下的样式*/
        a:active{
            color: pink;
        }
        /*总结:
            1. :hover{} 该伪类可以单独使用
            2. 如果以上伪类都要设置需要按照顺序设置
            L V H A*/
    </style>
</head>
<body>
    <a href="#">文字</a>

    <!-- <div class="one">文字</div> -->
</body>
</html>

目标伪类:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        /*目标伪类
            :target {属性: 值;}
        注意:
            该伪类要配合锚链接使用*/
        .left{
            width: 300px;
            height: 1400px;
            background-color: #E7E7E7;
            float: left;
        }
        .right{
            width:800px;
            background-color: pink;
            float: left;
        }
        #h6:target{
            color:red; 
        }
        #h10:target{
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="left">
        <ul>
            <li><a href="#h2">标题2</a></li>
            <li><a href="#h6">标题6</a></li>
            <li><a href="#h10">标题10</a></li>
        </ul>
    </div>
    <div class="right">
        <h2 id="h2">标题1</h2>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <h2>标题2</h2>
        <h2>标题3</h2>
        <h2>标题4</h2>
        <h2>标题5</h2>
        <h2 id="h6">标题6</h2>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <h2>标题7</h2>
        <h2>标题8</h2>
        <h2>标题9</h2>
        <h2 id="h10">标题10</h2>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
        <p>baebratyss</p>
    </div>
</body>
</html>

其他伪类:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*空伪类
        :empty {属性: 值;}*/
        /*div:empty{
            width: 100px;
            height: 100px;
            background-color: red;
        }*/
    /*排除伪类
        :not(选择器) {属性: 值;}*/
        /*div:not(.two){
            width: 200px;
            height: 200px;
            background-color: blue;
        }*/
    /*焦点伪类
        input:focus {属性: 值;}*/
    input{
        background-color: red;
    }
    input:focus{
        background-color: pink;
    }
    </style>
</head>
<body>
    <input type="text">

    <!-- <div class="one two">123123</div>
    <div class="one">123</div> -->

    <!-- <div class="box">123</div>
    <div></div> -->
</body>
</html>

背景:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            /*background-color     设置背景颜色
            默认值: transparent  透明色*/
            /*background-color: red;*/
            /*background-image    设置背景图片*/
            /*background-image: url("img/2.png");*/
            /*background-repeat    背景平铺方式
                repeat 默认值
                no-repeat  不平铺
                repeat-x   横向平铺
                repeat-y   纵向平铺*/
            /*background-repeat: no-repeat;*/
            /*background-position  设置背景图片位置*/
            /*background-position: center bottom;*/
            /*注意:
                1.当背景图片位置设置一个值的时候,第二个默认值是center.
                2.当设置背景图片位置出现具体数字,第一个值代表水平方向,第二个字代表垂直方向。*/

            /*Background属性联写*/
            background: red url(img/2.png) no-repeat right top;
            /*注意:
                1: 该属性联写中没有个数的限制
                2: 该属性中没有顺序的限制*/
        }
    </style>
</head>
<body>
    <div class="box">123</div>
    <!-- <div class="box">123</div> -->
</body>
</html>

行高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*1.行高属于文字的属性
    2.行高=文字大小+上间距+下间距  (默认行高18px)
    3.行高作用:
        1.设置文字垂直方向中有距离。
        2.文字垂直居中  (行高=容器的高度)
    4.影响行高因素:
        1.文字大小可以改变行高
        2.文字字体也可以改变行高*/
        .box{
            background-color: red;
            font-family: 微软雅黑;
        }
    </style>
</head>
<body>
    <div class="box">文字</div>
</body>
</html>

行高单位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*px, em,百分比, 不带单位
    如果给单独一个标签设置行高
    px: 行高值就是设置的行高,与文字大小无关
    em:行高值=设置的行高*文字大小
    百分比:  行高值=设置的行高*文字大小
    不带单位: 行高值=设置的行高*文字大小*/
        .box{
            background-color: red;
            font-size: 20px;

            /*line-height: 18px;*/

            /*line-height: 2em;*/

            /*line-height: 200%;*/

            line-height: 2;
        }
    </style>
</head>
<body>
    <div class="box">文字</div>
</body>
</html>

行高父容器特点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*如果给父元素设置行高,子元素行高特点
    父px:    子元素的行高=父元素的行高值。
    父em:  子元素行高=父元素行高值*父元素文字大小(先计算后继承)
    父百分比: 子元素行高=父元素行高值*父元素文字大小(先计算后继承)
    父不带单位: 子元素的行高=父元素的行高*子元素的文字大小(先继承后计算)*/
        .box{
            background-color: red;
            font-size: 30px;

            /*line-height: 18px;*/

            /*line-height: 2em;*/

            /*line-height: 200%;*/

            line-height: 2;
        }
        .one{
            font-size: 20px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="one">
            文字
        </div>
    </div>
</body>
</html>

盒子模型

☞ 作用:
    实现网页布局(在网页画盒子)
 ☞ 组成:
    ◇ 边框    border
    ◇ 内边距  padding
        盒子中的内容与盒子边框的距离
    ◇ 外边距  margin
        盒子与盒子之间的距离

边框(border)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            /*设置边框颜色*/
            /*border-color: red;*/

            /*设置边框宽度*/
            /*border-width: 2px;*/

            /*设置边框样式*/
            /*border-style:  none  ;  默认没有边框
                        solid       实线
                        dotted      点线
                        dashed      虚线*/
            /*border-style: dashed;*/

            /*border属性联写*/
            /*1.必须设置border-style
            2.没有顺序的限制*/
            border: 1px solid red;

            border-left: 2px dotted green;

            border-left-color: pink;
            border-left-style: dotted;
            border-left-width: 5px;
        }
        input{
            /* 去掉边框 */
            border:0 none; 
            /* 去掉轮廓线 */
            outline-style: none;
            line-height: 20px; 
            border: 1px solid red; 
        }
    </style>
</head>
<body>
    <div class="box"></div>
    <br />
    <input type="text" value="123">
</body>
</html>

边框合并

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        table{
            width: 300px;
            height: 300px;
        }
        table,tr,td{
            border: 1px solid red;
            /* 边框合并 */
            /* 注意该属性只适用于表格。 */
            border-collapse: collapse;
        }
    </style>
</head>
<body>
    <table>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</body>
</html>

内边距(padding)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*内边距: 内容与边框之间的距离
      注意:
        padding值只能移动盒子中的内容,不能移动盒子。

    属性联写:
        padding: 10px;    上,右,下,左四个方向10px
        padding: 10px  20px;   上下10px  左右20px
        padding:10px 20px 30px;  上10px  左右20px  下30px
        padding:10px 20px 30px 40px;  上10  右 20  下 30 左 40*/
        .box{
            width: 300px;
            height: 300px;
            border: 1px solid red;

            /*padding-left: 20px;
            padding-bottom: 50px;*/

            padding: 10px 20px 30px 40px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="img/2.png">
    </div>
</body>
</html>

盒子大小计算

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*盒子大小问题:
        边框和内边距可以改变盒子大小。
        盒子大小(宽度)=内容的宽度+左右内边距+左右边框*/
        .box{
            width: 200px;
            height: 188px;
            background-color: red;
            border: 1px solid green;
            padding: 5px;


        }
        /*版心:有固定宽度,并且居中显示的盒子*/
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

嵌套盒子大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*嵌套盒子padding值对盒子大小的影响
        “继承”的盒子,默认不设置宽度的情况下,给子盒子设置padding值在父盒子宽度范围内,不会影响子盒子大小。*/
        .box{
            width: 400px;
            height: 200px;
            background-color: green;
        }
        .one{
            height: 100px;
            background-color: red;
            /*padding-left: 50px;*/

            padding-left: 390px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="one">one中的文字</div>
    </div>
</body>
</html>

外边距(margin)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*外边距:
        盒子与盒子之间的距离。移动盒子。
    属性联写:
        与内边距一样。
    注意:
        外边距不会改变盒子大小。*/
        div{
            display: inline-block;
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .one{
            background-image: pink;

            margin: 50px 50px 50px 50px;
        }
    </style>
</head>
<body>
    <div class="one">div</div>
</body>
</html>

外边距特点

由于overflow:hideen 触发了元素的bfc(格式化上下文)
http://www.zhangxinxu.com/wordpress/2015/02/css-deep-understand-flow-bfc-column-two-auto-layout/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*特点:
    垂直外边距合并 (以最大外边距的值为准)
    垂直外边距塌陷
        给父元素设置边框
        给父元素设overflow:hidden;
    由于overflow:hideen 触发了元素的                bfc(格式化上下文)
    http://www.zhangxinxu.com/wordpress/2015/02/css-deep-understand-flow-bfc-column-two-auto-layout/
    */
        .box{
            width: 200px;
            /*width: 150px;*/
            height: 200px;
            background-color: red;
            /*padding-left: 50px;*/

            overflow: hidden;
        }
        .one{
            width: 50px;
            height: 50px;
            background-color: pink;

            /*margin-left: 50px;*/
            margin-top: 100px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="one"></div>
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/Berts/article/details/80017438