css学习笔记

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>行内样式</title>
    </head>
    <body>
        <h1 style="color: red">hello world</h1>
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>内部样式</title>
        <style>
            h1{
                color: red;
            }
        </style>
    </head>
    <body>
        <h1>hello world</h1>
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>外部样式</title>
        <link rel="stylesheet" href="css/style.css">
    </head>
    <body>
        <h1>hello world</h1>
        总结:样式就这三种,本笔记样例都是内部样式,实际开发用外部样式
    </body>
</html>


style.css

h1{
    color: red;
}
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>选择器</title>
        <style>
            p{
                color: #a13d30;
                background: #3cbda6;
                border-radius: 24px;
                font-size: 80px;
            }
            .c1{
                color: red;
                background: blue;
                border-radius: 1px;
                font-size: 40px;
            }
            #cj01{
                color: yellow;
                background: green;
                border-radius: 20px;
                font-size: 20px;
            }
        </style>
    </head>
    <body>
        <p>标签选择器</p>
        <p class="c1">类选择器</p>
        <p class="c1" id="cj01">id选择器</p>
        后代选择器
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>层次选择器</title>
        <style>
            body p{/*body的子孙中p标签的属性*/
                background: red;
            }
            body>p{/*body的亲儿中p标签的属性*/
                background: yellow;
            }
            p+h1{/*紧跟p标签后的同级h1标签的属性*/
                background: green;
                margin-top:100px;
            }
            h1~p{/*h1标签后的所有同级p标签的属性*/
                background: blue;
            }
            /*如果是p,h1则并列关系,表示两个元素一起设置属性*/
        </style>
    </head>
    <body>
        <p>后代选择器-红,子选择器-黄(就近原则)</p>
        <h1>相邻弟弟选择器-绿</h1>
        <ul>
            <li>
                <p>后代选择器-红</p>
            </li>
        </ul>
        <p>通用弟弟选择器-蓝,后代选择器-红,子选择器-黄(就近原则)</p>
        <hr/>
        上面的四个组合选择器不一定用标签组合,也可以用.class与#id
        <hr/>
        就近原则:哪个style定义离标签近就用哪个
        (前面的内部样式与外部样式也是就近原则,但行内标签绝对是最高优先级)
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>结构伪类选择器</title>
        <style>
            ul li:first-child{/*ul的第一个子元素*/
                background: blue;
            }
            ul li:last-child{/*Ul的最后一个子元素*/
                background: red;
            }
            p:nth-child(2){/*p元素的父元素的第2个儿子是p元素本身时生效*/
                 background: yellow;
             }
            p:nth-of-type(2){/*p元素的父元素的第2个p元素*/
                background: green;
            }
            a:hover{/*鼠标移动到上面时*/
                background: #3cbda6;
            }
        </style>
    </head>
    <body>
        <h1>h1</h1>
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
        <ul>
            <li>li1</li>
            <li>li2</li>
            <li>li3</li>
        </ul>
        <a href="#">a</a>
        <hr/>
        注释中用元素而不用标签是因为元素可以是.class或#id
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>属性选择器</title>
        <style>
            .demo a{
                float:left;
                display: block;
                height: 50px;
                width: 50px;
                border-radius: 10px;
                background: blue;
                text-align: center;
                color: gainsboro;
                text-decoration: none;/*无下划线*/
                margin-right: 5px;/*距离右边元素5像素距离*/
                font: bold 20px/50px Arial;/*粗体 字体大小20px 行高50px Arial字体*/
                /*为什么在竖直方向上有居中的效果呢?*/
                /*因为block的height设了50px,而font的行高也是50px!(你试试height改100px就明了)*/

                /*下面是延伸*/
                /*margin-right: 5px;*/
                /*margin-left: 5px;*/
                /*margin-top: 5px;*/
                /*margin-bottom: 5px;*/
                /*margin可以统一上面四行*/
                /*border-right: 5px;*/
                /*border-left: 5px;*/
                /*border-top: 5px;*/
                /*border-bottom: 5px;*/
                /*border可以统一上面四行*/
                /*padding-right: 5px;*/
                /*padding-left: 5px;*/
                /*padding-top: 5px;*/
                /*padding-bottom: 5px;*/
                /*padding可以统一上面四行*/
            }
            a[id]{/*对有id属性的a标签进行样式设置*/
                background: yellow;
            }
            a[id=second]{/*对有id属性且id属性值是second的a标签进行样式设置*/
                background: pink;
            }
            a[class*=links]{/*正则表达式,class属性值有links的a标签*/
                background: darkmagenta;
            }
            a[class="links 1"]{/*对有class属性且值是links 1的a标签进行样式设置*/
                background: red;
            }
            a[href^=cj]{/*正则表达式,class属性值以links开头的a标签*/
                background: darkblue;
            }
            a[href$=htm]{
                background: darkred;
            }
        </style>
    </head>
    <body>
    <p class="demo">
        <a href="test01.html" id="first">1</a>
        <a href="test02.html" id="second">2</a>
        <a href="test03.html" class="links 1">3</a>
        <a href="test04.html" class="links 2">4</a>
        <a href="cjtest05.html">5</a>
        <a href="cjtest06.html">6</a>
        <a href="test07.htm">7</a>
        <a href="test08.htm">8</a>
        <a href="test09.html">9</a>
        <a href="test10.html">10</a>
    </p>
    <hr/><hr/><hr/><hr/><hr/><hr/><hr/>
    总结:选择器到此结束,其实没什么难的,就过两眼留个印象,顺带一提,事件证明,命名时css允许用空格
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文本字体样式</title>
        <style>
            body{
                font-family: "Arial Black", 宋体;
            }
            h1{
                text-align: center;/*center居中,left左对齐,right右对齐*/
                font-size: 50px;
            }
            #id1{
                font-weight:551;/*经测试551以上是粗,550以下是细*/
                /*默认就是lighter不加粗*/
            }
            .cls1{
                font: oblique bolder 16px "隶书";/*斜粗16px字体*/
            }
            span{
                color: red;
            }
            #id2{
                color: #00FF00;
            }
            #id3{
                color: rgb(0,255,255);
            }
            #id4{
                color: rgba(0,0,255,0.5);
            }
            #id5{
               text-indent: 2em;
            }
            #id6{
                background: yellow;
                height: 300px;/*这是块的高*/
                line-height: 300px;/*这是字行高,与块高一样所以会在块的高度一半处显示*/
            }
            #id7{
                text-decoration: underline;
            }
            #id8{
                text-decoration: line-through;
            }
            #id9{
                 text-decoration: overline;
             }

            #id10 {
                font-size: xx-large;
                text-shadow: 10px 20px 5px #FF0000;
            }
            #id11 {
                font-size: 20px;
                background: darkblue;
            }
            #id12 {
                font-size: 30px;
                background: green;
            }
            #id11,#id12{

                vertical-align: middle;/*高居中对齐*/
            }
            a{
                text-decoration: none;
            }
        </style>
    </head>
    <body>
        <h1>玻璃之情</h1>
        <p id="id1">从前我会使你快乐</p>
        <span class="cls1">现在却最多叫你寂寞</span>
        <div> 再吻下去像皱纸轻薄</div>
        <div id="id2">撕开了都不觉</div>
        <div id="id3">我这苦心已有预备</div>
        <div id="id4">随时有块玻璃破碎堕地</div>
        <div id="id5">勉强下去我会憎你</div>
        <div id="id6">只差那一口气</div>
        <div id="id7">不信眼泪能令失落的你爱下去</div>
        <div id="id8">难收的覆水将感情漫漫荡开去</div>
        <div id="id9">如果你太累及时地道别没有罪</div>
        <div id="id10">牵手来空手去就去</div>
        <span id="id11">span没有width</span>
        <span id="id12">span没有height</span>
        <a href="#">超链接去下划线</a>
        <hr/>
        I love you forever.<br/>
        这句英语加粗是因为font-family中给英文赋字体时有black黑体
        <hr/>
        em相对于父元素,rem相对于根元素
        <hr/>
        <br/>总结文字属性:
        <br/>颜色就三个:color,background,border-color
        <br/>首行缩进是text-indent:2em
        <br/>下划线是text-decoration:none/underline/overline/line-through
        <br/>文本对齐是text-align:left/center/right,是指文字在方框内部靠左还是靠右
        <br/>文本竖直方向对齐用行高line-height使与块高height相等即可
        <br/>多块之间对齐则使用共同属性vertical-align:middle
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>超链接伪类</title>
        <style>
            h1{
                text-shadow: 10px 20px 5px #FF0000;
            }
            a:link{color: #FF0000}/*未经过*/
            a:hover{color: #0000FF}/*经过未按下*/
            a:active{color: #00FF00}/*按下未释入*/
            a:visited{color: #000000}/*已释放*/
        </style>
    </head>
    <body>
        <h1><a href="#">总结:超链接就记住四个伪类:水平距离,垂直距离,模糊半径,颜色</a></h1>
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>列表</title>
        <style>
            #id1{
                padding-left: 100px;
                width: 600px;
                background: red ;
            }
            ul{
                background: yellow url("img/photo.jpg") 550px 10px no-repeat;
                /*颜色,图像,坐标,是否重复*/
                /*相当于background*/
                /*相当于background-image*/
                /*相当于background-position*/
                /*相当于background-repeat*/
            }
            ul li{
                height: 30px;
                text-indent: 1em;
                list-style: decimal;
                /*circle空心,默认实心,square方,none无*/
            }
        </style>
    </head>
    <body>
        <div id="id1">
            <ul>
                <li>aaa</li>
                <li>bbb</li>
                <li>ccc</li>
                <li>ddd</li>
                <li>eee</li>
            </ul>
        </div>
        <br/>
        总结:列表样式就记住实心空心方形就完了
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>背景</title>
        <style>
            body{
                background: linear-gradient(90deg,red 0%,yellow 50%,blue 100%);
            }
            div{
                width: 800px;
                height: 500px;
                border: 1px solid red;
                background-image: url("img/photo.jpg");
                /*我这里是找了一张48x48像素的图*/
            }
            .c1{
                background-repeat: repeat-x;
            }
            .c2{
                background-repeat: repeat-y;
            }
            .c3{
                background-repeat: no-repeat;
            }
        </style>
    </head>
    <body>
    <div ></div>
    <div class="c1"></div>
    <div class="c2"></div>
    <div class="c3"></div>
    <br/>
    总结:背景插图与渐变
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子</title>
        <style>
            body,h1,h2,h3,h4,h5,h6,ul,li,div,p,span,a,img,input{
                margin: 0 auto 0 auto;
                border: 0;
                padding: 0 0 0 0 ;
                text-decoration: none;
                display: block;
                background: white;
                position: relative;
            }
            #box{
                width: 300px;
                border: 10px solid grey;
            }
            #id1{
                font-size: 20px;/*此时F12查得高为26px*/
                height: 30px;/*定个大过26px为了好控制*/
                width:200px;/*不设置的话就是300px顶满*/
                line-height: 30px;/*为了让文字Y轴居中*/
                text-align: center;/*为了让文字X轴居中*/
                background: orange;
            }
            form{
                background: yellow;
            }
            .cls1{
                font-size: 16px;/*此时F12查得高为21px*/
                height: 24px;/*定个大过21px为了好控制*/
                width: 400px;/*事实证明超出父对象不显示*/
                line-height: 24px;/*为了让文字Y轴居中*/
                text-align: left;/*为了让文字X轴居左*/
                background: yellow;
            }
            .cls2{
                font-size: 16px;/*此时F12查得高为21px*/
                height: 24px;/*定个大过21px为了好控制*/
                width: 400px;/*事实证明超出父对象也显示*/
                line-height: 24px;/*为了让文字Y轴居中*/
                text-align: left;/*为了让文字X轴居左*/
                border: 2px dashed red;/*input有边框要重设*/
                padding: 0;/*input有内边距要重设*/
                background: orange;
            }
        </style>
    </head>
    <body>
        <div id="box">
            <div id="id1">login</div>
            <form action="#">
                <div class="cls1">username</div>
                <input class="cls2" type="text">
                <div class="cls1">password</div>
                <input class="cls2" type="text">
                <div class="cls1">email</div>
                <input class="cls2" type="text">
            </form>
        </div>
        <br/>总结:盒子模型懂得设->外/边/内/宽/高五项即可
        <br/>其中,外/边/内在初始化时全为0,需要改再自设,但宽高必须自设
        <br/>注意:全标签初始化margin/border/padding/text-decoration
        <br/>display: block;
        <br/>margin: 0 0 0 0;
        <br/>border: 1px solid/dashed red;或直接一个0
        <br/>padding: 0 0 0 0;
        <br/>height: xpx;
        <br/>width: ypx;
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>圆角阴影</title>
        <style>
            body,h1,h2,h3,h4,h5,h6,ul,li,div,p,span,a,img,input{
                margin: 0 auto 0 auto;/*这个使标签本身在父类盒子内居中*/
                border: 0;
                padding: 0 0 0 0 ;
                text-decoration: none;
                display: block;
                background: white;
                position: relative;
            }
            body{
                text-align: center;/*这个可以使内部无标签的文字居中*/
            }
            #box1{
                width: 100px;
                height: 100px;
                border: 0;
                margin: 0 auto 0 auto;
                padding: 0 0 0 0;
                background: red;
                border-radius: 50px 50px 10px 0px;
                box-shadow: 10px 10px 10px yellow;
            }
            #box2{
                width: 100px;
                height: 100px;
                border: 0;
                margin: 0 0 0 0;
                padding: 0 0 0 0;
                background: red;
                border-radius: 100px 0px 50px 0px;
                box-shadow: 10px 10px 10px yellow;
            }
            img{
                margin:0 auto 0 auto;
                width: 48px;
                height: 48px;
                border-radius: 24px;/*因为图是48*48*/
            }
        </style>
    </head>
    <body>
        <div id="box1"></div>
        <div id="box2"></div>
        <img src="img/photo.jpg">
        <br/>总结:
        <br/>border-radius四个值:左上,右上,右下,左下
        <br/>box-shadow四个值:X偏,Y偏,模糊,颜色
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>浮动</title>
        <style>/*记住h/p/div三个块级元素,其他行内*/
            body,h1,h2,h3,h4,h5,h6,ul,li,div,p,span,a,img,input{
                margin: 0 auto 0 auto;/*这个使标签本身在父类盒子内居中*/
                border: 0;
                padding: 0 0 0 0 ;
                text-decoration: none;
                display: block;
                background: white;
                position: relative;
            }
            .c1{
                margin: 0;
                width: 100px;
                height: 200px;
                background: yellow;
                display: inline-block;
                font-size: 20px;
                text-align: center;
                line-height: 100px;
            }
            .c2{
                margin: 0;
                width: 100px;
                height: 100px;
                background: orange;
                display: inline-block;
                font-size: 20px;
                text-align: center;
                line-height: 100px;
            }
            .c1,.c2{
                vertical-align: central;
                /*top是全部height上边缘对齐*/
                /*middle是全部height中线对齐*/
                /*bottom是全部height下边缘对齐*/
                /*central是全部文字中线对齐*/
            }
            .c3{
                height: 50px;
                background: black;
            }
            .c4{
                border: 50px #FF0000 solid;
            }
            .c4::after{/*伪类防止父元素塌陷,:after亦可*/
                content: "";/*伪元素必写,否则不生效,可以设置为空*/
                clear: both;/*只会对块元素生效,所以下一行要设成块*/
                display: block;
            }
            .c5{
                height: 200px;
                width: 50px;
                background: blue;
                display: block;/*经测试没什么变化*/
                float: left;/*浮动后不再是标准文档流*/
            }
            .c6{
                height: 75px;
                width: 150px;
                background: green;
                display: inline-block;/*经测试没什么变化*/
                float: right;/*不同方向的浮动互不干涉*/
            }
            .c7{
                height: 50px;
                width: 100px;
                background: grey;
                display: inline;/*经测试没什么变化*/
                float: left;/*浮动后没有块元素效果*/
                clear: both;/*清除本行浮动效果,即有块元素换行效果*/
                /*简来来说就是说当前块要换行,但是下一行仍是浮动*/
            }
            .c8{
                height: 100px;
                width: 50px;
                background: pink;
                display: inline-block;
                float: left;/*接上一个浮动块*/
            }
            .c9{
                height: 50px;
                width: 100px;
                background: darkblue;
                float: top;/*没有清除浮动的话与左浮的互不干涉*/
            }
            .c10{
                height: 50px;
                width: 100px;
                background: darkred;
                float: top;
                clear: right;/*清除往右浮动的块*/
                /*找到右浮动的块的最下面的那块再换行*/
            }
            .c11{
                height: 50px;
                width: 100px;
                background: darkgoldenrod;
                float: top;
                clear: top;/*清除往上浮动的块*/
                /*找到上浮动的块的最下面的那块再换行*/
            }
            .c12{
                height: 50px;
                width: 100px;
                background: darkgreen;
                float: top;
                clear: both;/*清除所有方向的块*/
                /*找到所有浮动的块的最下面的那块再换行*/
            }
            .c14{
                height: 100px;
                width: 300px;
                overflow: hidden;/*隐藏的元素是不占标准模板流位置的*/
            }
            .c13{
                height: 100px;
                width: 300px;
                overflow: scroll;
            }
        </style>
    </head>
    <body>
        <div>
            <div class="c1">div</div><span class="c2">span</span>
            注意上面两个元素分行写会有间隔!
        </div>
        <div class="c3"></div>
        <div class="c4">
            插入第一行!
            插入第二行!
            插入第三行!
            插入第四行!
            <div class="c5">5</div>
            插入第五行!
            <div class="c6">6</div>
            插入第六行!
            <div class="c7">7</div>
            插入第七行!
            <div class="c8">8</div>
            插入第八行!
            <div class="c9">9</div>
            插入第九行!
            <div class="c10">10</div>
            插入第十行!
            <div class="c11">11</div>
            插入第十一行!
            <div class="c12">12</div>
            插入第十二行!
            可以看到top浮的块与文字纯粹是看谁先谁后
            然后左浮和右浮的块看不出与文字的关系
            如果要文字环绕块的效果,建议只浮一个块
        </div>
        <div class="c3"></div>
        <div class="c4">
            <h1>下面测试文字环绕效果!</h1>
            提到文章,很多人都会想到他与马伊琍的婚姻,马伊琍在经营婚姻方面确实很好,她在婚后愿意在家相夫教子,这确实是非常难得的。而文章与姚笛的事情却让两人的幸福生活陷入了万丈深渊,马伊琍最终也选择与文章离婚。
            <div class="c7">7</div>
            姚笛如今过得相当低调。之前姚笛的前景还是很好的,不过她与文章的事情曝光后,两人的人设都彻底崩塌了,很多网友都唾骂他们。
            前两年姚笛在36岁生日时晒出了钻戒,并表示自己被求婚成功,后来她的求婚戒指也变成了结婚戒指。马伊琍与文章离婚之后,她就被网友们推上了热搜,即使她当时已经有了新恋情,不过网友们还是不买账,而且还疯狂炮轰她,大家都觉得有很大的责任出自她的身上。
            <div class="c7">7</div>
            之后姚笛就出来表示文章和马伊琍当时的关系原本就不好,而且他们也准备离婚了。姚笛还透露起初是文章主动找自己的,而且文章还向姚笛哭诉自己在婚姻方面过得不开心,当时文章还追求她,她拒绝了很多次文章还是没有放弃,然后才感动了她。
            <div class="c7">7</div>
            要是真的是这样的话,当时姚笛也是受害者,她的意思就是文章之前欺骗了她,她并没有破坏别人的感情,姚笛只是追求自己喜欢的人而已。最终婚姻的失败并不全是姚笛的问题,一个丈夫在自己的妻子怀二胎时出轨,男方为什么会做出这样的行为才是最应该关注的!对此,你有什么看法呢?欢迎在评论区留言!
            <h1>经测试,浮动块会与他之后的文字同一行!</h1>
            <h1>而在浮动块上面的文字一定会在块的上面!</h1>
        </div>
        <div class="c14">
            <img src="img/photo.jpg">
            <h1>121212121212121221</h1>
            <img src="img/photo.jpg">
            <h1>121212121212121221</h1>
        </div>
        <div class="c13">
            <img src="img/photo.jpg">
            <h1>121212121212121221</h1>
            <img src="img/photo.jpg">
            <h1>121212121212121221</h1>
        </div>

        <br/>总结display
        <br/>inline是行内元素,没有width与weight,不要使用!
        <br/>block是块元素,有width与weight,但是独占一行!
        <br/>inline-block是行内块元素,有width与weight且不独占一行!
        <br/>注意div默认是block,span默认是inline,这是两者唯一区别!
        <br/>总结float
        <br/>left就是靠左浮,right就是靠右浮,top就是靠上浮(c9居中是因为div设了margin:0 auto)
        <br/>注意一:不同浮动方向互不干涉
        <br/>注意二:会跳出标准模块流(所以父类元素才会塌陷)
        <br/>注意三:浮动后就不管你是block还是inline的了(非标准模板流)
        <br/>总结clear
        <br/>left就是左边没浮动块,right就是右边无浮动块,both就是左右无浮动块
        <br/>总之就是清除本块浮动效果,即换行,但是下一行仍有浮动
        <br/>总结::after或:after
        <br/>照抄即可,防止伪类防止父元素塌陷
        <br/>总结:overflow
        <br/>要么隐藏,要么滚动条
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位</title>
        <style>/*记住h/p/div三个块级元素,其他行内*/
            body,h1,h2,h3,h4,h5,h6,ul,li,div,p,span,a,img,input{
                margin: 0 auto 0 auto;/*这个使标签本身在父类盒子内居中*/
                border: 0;
                padding: 0 0 0 0 ;
                text-decoration: none;
                display: block;
                background: white;
                position: relative;
            }
            div{
                margin: 5px;
                padding: 5px;
                font-size: 10px;
                line-height: 20px;
            }
            #father{
                border: 5px solid #666;
            }
            #first{
                border: 5px solid #666;
                height: 20px;
                position: relative;
                top: -10px;
            }
            #second{
                border: 5px solid #666;
                height: 20px;
                margin: 0px 0px 0px 0px;/*因为我上面设了div都是5*/
                position: absolute;
                top: 100px;
                right: 100px;
            }
            #third{
                border: 5px solid #666;
                height: 20px;
                position: fixed;
                right: 10px;
                bottom: 10px;
            }
            #four{
                height: 100px;
                width: 100px;
                position: absolute;
                padding: 0;
                margin: 0px 0px 0px 0px;/*因为我上面设了div都是5*/
                top: 0px;
                right: 0px;
                background: #FF0000;
            }
            #five{
                width:10px;
                height: 1000px;
                border: 5px solid #666;
            }
            #six{
                margin: 0;
                border: 0;
                padding: 0;
                background: #3cbda6;
                width: 500px;
                height: 500px;
                position: relative;
            }
            #seven{
                height: 100px;
                margin: 0;
                border: 0;
                padding: 0;
                background: red;
                width: 100px;
                height: 100px;
                position: absolute;
                right: -50px;
                top: 100px;
            }
        </style>
    </head>
    <body>
        <div id="father">
            <div id="first">相对定位上移10像素</div>
            <div id="second">绝对定位距整个页面右边及上边100像素</div>
            <div id="third">固定定位</div>
            <div id="four">这里补一个矩形来看second是不是真的100px</div>
            <div id="five">这个是撑起页面高度让滚动条出现</div>
        </div>

        <div id="six">
            <div id="seven">
                这个绝对定位是相对于父元素的,因为父元素有定位relative
            </div>
        </div>
        <br/>总结:
        <br/>一、F12看每个块的尺寸时,外边距是不算的!
        <br/>二、父亲的内边距与儿子的外边距不共享,但兄弟间的外边距共享!
        <br/>三、相对定位仍属于标准模板流,因为父元素没有塌陷,或者说相对定位的元素的原位置被保留了
        <br/>四、绝对定位不属于标准模板流
        <br/>…………如果父对象有设置元素定位relative,由相对于父对象的上下左右距离而定(子绝父相)
        <br/>…………但如果父对象没有设置定位,则相对于整个页面来定,此时建议在BODY中单独放以免逻辑混乱
        <br/>五、固定定位不属于标准模板流,由相对于当前窗口上下左右距离而定
        <br/>六、z-index就是图层显示优先级
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>z-index</title>
        <style>
            body,h1,h2,h3,h4,h5,h6,ul,li,div,p,span,a,img,input{
                margin: 0 auto 0 auto;/*这个使标签本身在父类盒子内居中*/
                border: 0;
                padding: 0 0 0 0 ;
                text-decoration: none;
                display: block;
                background: white;
                position: relative;
            }
            .c0{
                height: 100px;
                width: 100px;
                position: relative;
            }
            .c1{
                position: absolute;
                height: 100px;
                width: 100px;
                background: #00FF00;
                z-index: 10;/*这里设成60的话就盖过文字*/
                opacity: 0.9;/*这里可以设置透明度*/
            }
            .c2{
                position: absolute;
                bottom: 30px;
                left: 0px;
                background: none;/*改成none就是透明了*/
                z-index: 30;/*这里设成10的话就下面.c3就是盖过文字*/
            }
            .c3{
                height: 20px;
                width: 20px;
                position: absolute;
                bottom: 30px;
                left: 0px;
                background: blue;
                z-index: 20;
            }
            .c4{
                position: absolute;
                bottom: 60px;
                left: 0px;
                background: none;
                z-index: 30;
            }

        </style>
    </head>
    <body>
        <div class="c0">
            <div class="c1"><img src="img/photo.jpg"></div>
            <div class="c2">这是文字</div>
            <div class="c3"></div>
            <div class="c4">跟c1图片比</div>
        </div>
        <br/>总结:就是不同元素重叠时谁显示在前谁显示在后就有z-index
        <br/>注意:一定要设置了position之后才可以使用z-index(所以我决定在初始化处加入z-index)
        <br/>总结:透明度属性opacity,范围0到1
    </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>em</title>
    <style>
        div {
            font-size: 40px;
            width: 10em; /* 400px */
            height: 10em;
            border: solid 1px black;
        }
        p {
            font-size: 0.5em; /* 20px */
            width: 10em; /* 200px */
            height: 10em;
            border: solid 1px red;
        }
        span {
            font-size: 0.5em; /* 10px */
            width: 10em; /* 100px */
            height: 10em;
            border: solid 1px blue;
            display: block;
        }
    </style>
</head>
<body>
<div>
    我是父元素div
    <p>
        我是子元素p
        <span>我是孙元素span</span>
    </p>

</div>
<hr/>
如果显示的方块由边框宽1px所以全部块宽高会加2
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>rem</title>
    <style>
        html {
            font-size: 10px;
        }
        div {
            font-size: 4rem; /* 40px */
            width: 30rem;  /* 300px */
            height: 30rem;
            border: solid 1px black;
        }
        p {
            font-size: 2rem; /* 20px */
            width: 15rem; /* 150px */
            height: 15rem;
            border: solid 1px red;
        }
        span {
            font-size: 1.5rem; /* 15px */
            width: 10rem; /* 100px */
            height: 10rem;
            border: solid 1px blue;
            display: block;
        }
    </style>
</head>
<body>
<div>
    我是父元素div
    <p>
        我是子元素p
        <span>我是孙元素span</span>
    </p>
</div>
<hr/>
如果显示的方块由边框宽1px所以全部块宽高会加2
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值