zoukankan      html  css  js  c++  java
  • CSS入门

    CSS介绍
    CSS:层叠样式表:Cascading Style Sheets:修改HTML样式
    CSS引用
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>引用CSS</title>
        <!-- 第一种:外部样式 -->
        <link rel="stylesheet" href="style.style">
        <!-- 第二种:内部样式 -->
        <style>
            p {
                color: red;
            }
        </style>
    </head>
    <body>
        <!-- 第三种:行内样式 -->
        <p style="color: red">引用样式</p>
    </body>
    </html>

    CSS选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>选择器</title>
        <style>
            /*标签选择器
            选择所有p标签*/
            p {}
            /*id选择器
            选择id为xiu的标签*/
            #xiu {}
            /*类选择器
            选择所有class为kang的标签*/
            .kang {}
            /*后代选择器
            选择div里面所有class为kang的标签*/
            div .kang {}
            /*子代选择器
            选择div里面子类的所有p标签*/
            div > p {}
            /*交集选择器
            选择p标签且id为kang的标签*/
            p#kang {}
            /*并集选择器
            选择id为id的标签和class为kang的两个标签*/
            #id,.kang {}
            /*伪类选择器 :link未访问的链接 :visited已访问的链接 :hover鼠标移上去的链接 :active选中的链接*/
            p:hover {}
            /*结构伪类选择器
            选择第一个p标签*/
            p:first-child {}
            /*结构伪类选择器
            选择最后一个p标签*/
            p:last-child {}
            /*结构伪类选择器
            选择第2个p标签 n表示所有 2n表示偶数 2n+1表示奇数*/
            p:nth-child(2) {}
            /*结构伪类选择器
            选择所有偶数的p标签 even偶数 odd奇数*/
            p:nth-child(even) {}
            /*属性选择器
            选择属性为href的a标签*/
            a[href] {}
            /*属性选择器
            选择属性href和属性title的a标签*/
            a[href][title] {}
            /*属性选择器
            选择属性和值为href="url"的a标签*/
            a[href="url"] {}
            /*属性选择器
            选择属性和值为href="url"且title="提示"的a标签*/
            a[href="url"][title="提示"] {}
            /*属性选择器
            选择属性的值以url开头的a标签,该值必须是整个单词*/
            a[href|="url"] {}
            /*属性选择器
            选择属性的值以url开头的a标签*/
            a[href^="url"] {}
            /*属性选择器
            选择属性的值以url结尾的a标签*/
            a[href$="url"] {}
            /*属性选择器
            选择属性的值包含url的a标签,该值必须是整个单词*/
            a[href~="url"] {}
            /*属性选择器
            选择属性的值包含url的a标签*/
            a[href*="url"] {}
        </style>
    </head>
    <body>
        <p>段落</p>
        <a href="url" title="提示">百度</a>
    </body>
    </html>

    CSS字体

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>字体</title>
        <style>
            p {
                /*设置字体大小*/
                font-size: 20px;
                /*设置字体*/
                font-family: "宋体","微软雅黑";
                /*字体加粗*/
                font-weight: 700;
                /*字体倾斜*/
                font-style: italic;/*normal 取消样式*/
                /*字体颜色 预定义颜色:red;十六进制颜色:#FF0000;RGB颜色:rgb(255,255,255) */
                color: #aa00cc;/* #aa00cc可以简写为#a0c 两两相同才可以*/
                /*设置行高*/
                line-height: 20px;
                /*设置文字对齐方式*/
                text-align: center;
                /*段落首行缩进*/
                text-indent: 2em;
                /*设置字体装饰 underline下划线 overline上划线 line-through删除线 none无装饰 */
                text-decoration: underline;
            }
            h1 {
                /*字体连写,顺序不能交换,size/family不能省略*/
                /*font: font-style font-weight font-size font-family;*/
                font: 25px "宋体";
            }
        </style>
    </head>
    <body>
    
        <p>字体</p>
        <h1>标题</h1>
    </body>
    </html>

    元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"><title>块级元素</title>
        <style>
            /* 块级元素 block-level
            总是从新行开始
            高度,行高,外边距都可以控制
            宽度默认是容器的100%
            可以容纳内联元素和其他元素
            常见的块元素:<h> <p> <div> <ul> <ol>等等*/
    
            /* 行类元素 inline-level
            和相邻的行内元素在一行上
            高宽无效,但水平方向的padding和margin可以设置,垂直方向无效
            默认宽度为他本身内容的宽度
            常见的行内样式有:<a> <strong> <em> <s>等等 */
    
            /*行内块元素 inline-block
            和相邻行内元素在一行上,但之间有空白缝隙
            默认宽度为他本身内容的宽度
            宽度,高度,外边距都可以控制
            常见的行内块元素有:<img> <input> <td> */
    
            /*可以将行内元素和行内块元素看作文字对待*/
            div {
                /*将块元素转换为行内元素*/
                display: inline;
            }
            span {
                /*将行内元素转换为块元素*/
                display: block;
            }
            a {
                /*将行内元素转换为行内块元素*/
                display: inline-block;
            }
        </style>
    </head>
    <body>
        <div></div>
        <span></span>
        <a href="#"></a>
    </body>
    </html>

    CSS的特性

    • 层叠性
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"><title>继承性</title>
        <style>
            /*一般情况下,如果出现样式冲突,会按照CSS的书写顺序,已最后的样式为准
            样式冲突,遵循的原则为就近原则,那个样式离结构进,就执行那个样式,就近原则
            样式不会冲突,不会层叠
            color样式冲突了,就执行最近的一个color,font-size没有冲突,正常执行 */
            p {
                color: red;
                font-size: 20px;
            }
            p {
                color: blue;
            }
        </style>
    </head>
    <body>
        <p>段落</p>
    </body>
    </html>
    •  继承性
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"><title>继承性</title>
        <style>
            /*子标签会继承父标签的某些属性,比如:字体颜色和字号*/
            .xiu {
                color: red;
            }
        </style>
    </head>
    <body>
        <div class="xiu">
            <p>段落</p>
        </div>
    </body>
    </html>
    • 优先性
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"><title>优先级</title>
        <style>
            /*
            继承或者*的贡献值 0000
            每个元素的贡献值 0001
            每个类,伪类的贡献值 0010
            每个ID的贡献值 0100
            行内样式的贡献值 1000
            每个!important的贡献值 无穷大
            贡献值越大,越先执行
            贡献值可以叠加,比如:
            div ul li {} -- 0003
            .xiu ul li {} -- 0012
            #xiu ul li {} -- 0102
            */
            .xiu {
                color: red!important;/*最先执行*/
            }
            .xiu {
                color: blue;
            }
        </style>
    </head>
    <body>
        <div class="xiu">
            <p>段落</p>
        </div>
    </body>
    </html>

     背景图片

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"><title>背景图片</title>
        <style>
            body {
                /*添加背景颜色*/
                background-color: red;
                /*添加背景图片*/
                background-image: url(1.png);
                /*no-repeat图片不平铺 repeat-x水平平铺 repeat-y垂直平铺*/
                background-repeat: no-repeat;
                /*设置图片位置 top上 bottom下 left左 right右 也可以写数值x,y值 */
                background-position: right bottom;/*如果只写一个,剩下一个为居中center*/
                /*设置图片滚动 fixed固定 scroll默认滚动而滚动*/
                background-attachment: fixed;
                /*设置图片透明度*/
                background: rgba(0,0,0,0.5);
                /*设置背景图片的大小
                cover 等比例铺满整个盒子,超出范围将隐藏
                contain 等比例铺满整个盒子,保证图片始终显示在盒子内 */
                background-size: 300px 300px;/*一般设置一个值,另外一个值默认auto 等比例缩放*/
                /*background连写方式*/
                /*background: 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置*/
            }
        </style>
    </head>
    <body>
      
    </body>
    </html>

    边框

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>边框</title>
        <style>
            table {
                width: 100px;
                height: 100px;
                /*设置边框宽度*/
                /*border- 1px;*/
                /*设置边框样式 none无边框 solid实线边框 dashed虚线 */
                /*border-style: dashed;*/
                /*设置边框颜色*/
                /*border-color: red;*/
                /*设置上边框*/
                /*border-top: 1px solid red;*/
                /*border连写*/
                border: 1px solid red;
            }
            td {
                border: 1px solid blue;
            }
            table,td {
                /*合并单元格相邻边框*/
                border-collapse: collapse;
            }
        </style>
    </head>
    <body>
        <table cellpadding="0" cellspacing="0">
            <tr>
                <td>修抗</td>
                <td>修抗</td>
            </tr>
            <tr>
                <td>牛皮</td>
                <td>牛皮</td>
            </tr>
        </table>
    </body>
    </html>

     边距

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>内边距与外边距</title>
        <style>
            /* padding 用于设置内边距:自身的边框与自身内部内容的距离
            margin 用于设置外边距:自身边框与相邻边框的距离
    
            margin与padding的语法一样:
            padding-top 上内边距
            padding-right 右内边距
            padding-bottom 下内边距
            padding-left 左内边距
            padding: 3px; 上下左右都是3px
            padding: 3px 4px; 上下为3px,左右为4px
            padding: 2px 3px 4px;上2px,左右为3px,下为4px
            padding: 1px 2px 3px 4px; 上1px,左2px,下3px,右4px
            
            padding不能为负数值
            padding在块级元素下,上下左右可以随意设置,会撑开盒子,一般要减去padding设置的高度宽度
            padding在行内元素只有左右边距有效果,上下不识别
    
            margin: 0 auto;设置水平居中,auto自动 只对块元素起作用
            margin在块级元素下,上下左右可以随意设置
            margin在行内元素只有左右边距有效果,上下不识别 */
    
            
        </style>
    </head>
    <body>
        
    </body>
    </html>
    • 边距问题:1
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            /*外边距合并*/
            .xiu {
                width: 100px;
                height: 100px;
                background-color: red;
                margin-bottom: 150px;
            }
            .kang {
                width: 100px;
                height: 100px;
                background-color: blue;
                margin-top: 100px;/*最终两个盒子的距离已最大的那个为准*/
            }
        </style>
    </head>
    <body>
        <div class="xiu"></div>
        <div class="kang"></div>
    </body>
    </html>
    •  边距问题2
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>嵌套块元素垂直外边距合并</title>
        <style>
            .xiu {
                width: 400px;
                height: 400px;
                background-color: red;
                border:1px solid red;
            }
            .kang {
                width: 100px;
                height: 100px;
                background-color: blue;
                /*嵌套块元素垂直外边距合并
                如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并
                大概意思就是:
                父元素有个margin-top,子元素有一个margin-top 会合并为最大的margin-top 
                即使父元素的上外边距为0
                解决方法有两种:
                1.为父元素定义一个1px的外边框或上内边框  border:1px solid red;/padding-top: 1px;
                2.为父元素添加overflow:hidden;
                */
                margin-top: 100px;
            }
        </style>
    </head>
    <body>
        <div class="xiu">
            <div class="kang"></div>
        </div>
    </body>
    </html>
    • 边距问题3
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>边距问题3</title>
            <style>
                .xiu {
                    /*宽度width/高度height仅适用于块级元素,对行内元素无效(img/input除外)*/
                    width: 300px;
                    height: 300px;
                    background-color: red;
                }
                .kang {
                    height: 100px;
                    background-color: blue;
                    /*如果子元素没有设置宽度,会继承父元素的宽度,而padding-left则不会撑开盒子*/
                    padding-left: 20px;
                }
            </style>
    </head>
    <body>
        <div class="xiu">
            <div class="kang">修抗</div>
        </div>
    </body>
    </html>

    圆角边框

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>圆角边框</title>
        <style>
            .xiu {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*设置边框圆角,可以设置百分比*/
                border-radius: 50px;
                /*border-radius: 50px 50px 50px 50px;*/
            }
        </style>
    </head>
    <body>
        <div class="xiu"></div>
    </body>
    </html>

    盒子阴影

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子阴影</title>
        <style>
            div {
                width: 100px;
                height: 100px;
                /*设置盒子阴影
                box-shadow:水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色 内部阴影inset; */
                box-shadow: 2px 2px 2px 2px red;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    浮动

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>浮动</title>
        <style>
            /*浮动会脱离标准流,不占位置 一般会给浮动添加一个父元素设置高度来占位置
            浮动只会影响后面的标准流,不会影响前面的标准流
            浮动不会超过内边距,不会超出父边框
            浮动只有左右浮动 left左 right右 none默认
            如果一个父盒子中一个子盒子浮动了,则其他子盒子都应该浮动,这样才能一行显示
            浮动可以让元素变成行内块元素
            如果已经给行内元素添加了浮动,此时不需要转换这个元素也可以有宽高了
            浮动的作用: 让多个块元素在一行显示 
            清除浮动:
            子盒子是标准流会撑开父盒子的高度(没有设置盒子高度)
            子盒子浮动就不会撑开父盒子的高度(没有设置盒子高度)
            清除动主要为了解决父元素因为子元素浮动引起内部高度为0的问题
            不是所有情况都需要清除浮动,在影响布局的情况下才清除浮动
            清除浮动的方法:
            1.额外标签法: 在浮动最后添加一个空标签
            <div style="clear:both"></div>
            2.父级添加overflow属性方法
            overflow: hidden;
            3.使用after伪元素清除浮动,额外标签法的升级版
            .clearfix:after {
                content:"";
                display: bloak;
                height: 0;
                clear: both;
                visibility: hidden;
            }
            .clearfix {
                *zoom: 1; 清除ie7以下的浏览器
            }
            */
            .xiu {
                width: 100px;
                height: 100px;
                background-color: red;
                /*左浮动*/
                float: left;
            }
        </style>
    </head>
    <body>
        <div class="xiu clearfix"></div>
    </body>
    </html>

     定位

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位</title>
        <style>
            /*position
            定位属性:
            static:静态定位:所有元素的默认定位方式:作用清除定位
            relative:相对定位:已自己左上角的位置移动
            absolute:绝对定位:根据当前最近父元素设置的定位而定位,不占位置跟浮动一样
            fixed:固定定位:随浏览器滚动而滚动 */
    
            /*z-index: 1;
            设置层叠等级属性
            默认属性值为0,取值越大,定位元素在层叠元素中越居上
            如果取值相同,则后来居上,没有单位
            只有定位的盒子才有该属性 */
            
            /*设置绝对定位居中的盒子*/
            .xiu {
                width: 200px;
                height: 200px;
                border: 1px solid blue;
                /*设置相对定位*/
                position: absolute;
                /*将盒子向右移动50%*/
                left: 50%;
                /*在将盒子向左移动一半的距离*/
                margin-left: -100px;
                /*默认值*/
                z-index: 0;
            }
    
            
        </style>
    </head>
    <body>
        <div class="xiu"></div>
    </body>
    </html>

    显示或隐藏隐藏元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>显示或隐藏元素</title>
        <style>
            .xiu {
                width: 100px;
                height: 100px;
                border: 1px solid red;
    
                /*hidden隐藏元素,保留位置 visible显示元素*/
                /*visibility: hidden;*/
    
                /*none隐藏元素,不保留位置 block显示元素*/
                display: block;/*除了转换为块元素,还有可以显示元素*/
    
                /*visible默认不剪切内容也不添加滚动条 auto超出部分显示滚动条 hidden隐藏超出内容 scroll总是显示滚动条*/
                overflow: hidden;
    
               /*设置文本换行 nowrap禁止文本换行 normal默认可以换行*/
                white-space: nowrap;
    
                /*将超出部分用省略号代替 要和overflow/white-space一同使用 */
                text-overflow: ellipsis;
            }
        </style>
     </head>
    <body>
        <div class="xiu"></div>
    </body>
    </html>

    用户样式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用户样式</title>
        <style>
            div {
                /*pointer小手样式 text选择样式 move十字架样式 default默认鼠标样式*/
                cursor: pointer;
            }
            input {
                /*取消边框轮廓线的做法 轮廓线就是点击输入框默认显示的蓝色边框*/
                outline: none;
                /*在输入框添加图片*/
                background-image: url(1.png);
                /*设置输入框边框*/
                border: 1px solid red;
            }
            textarea {
                /*禁止拖动文本框*/
                resize: none;
            }
            img{
                /*设置垂直对齐 baseline默认基线对齐 middle垂直居中 top顶部对齐
                因为图片是默认以基线对齐,所以图片底部有一点缝隙,取消基线对齐或改成块元素可以解决该问题*/
                vertical-align: baseline;/*行内块元素才有效果*/
            }
        </style>
    </head>
    <body>
        <div>修抗</div>
        <input type="text"/>
        <textarea name="" id="" cols="30" rows="10"></textarea>
        <img src="1.png" alt="">
    </body>
    </html>

     精灵图

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>精灵图</title>
        <style>
            /*精灵图的作用
            处理一些零碎的背景图像集中在一张大图上,然后将大图应用到网页上
            为了有效减少服务器接收和发送请求的次数,提高页面的加载速度
            */
            div {
                width: 100px;
                height: 100px;
                background: url(1.png) no-repeat -2px -4px;
            }
            /*滑动门*/
            a {
                height: 30px;
                display: inline-block;
                background: url(1.png) no-repeat;
                padding-left: 15px;
            }
            span {
                display: inline-block;
                background: url(1.png) no-repeat right;
                padding-right: 15px;
            }
        </style>
    </head>
    <body>
        <div></div>
        <a href="#">
            <span>商业</span>
        </a>
    </body>
    </html>

    字体图标

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>字体图标</title>
        <style>
            /*字体图标的好处:
            可以做出图片一样的事情,改变透明度,旋转度...
            但其本质是文字,可以任意改变颜色,产生阴影...
            本身体积更小,但携带的信息并没有消减
            没有兼容问题
            字体图标下载地址:
            国内阿里巴巴图标: http://www.iconfont.cn
            国外的字体图标网站: https://icomoon.io/app  
            将图片转换为字体图标:
            图片后缀名为svg,在https://icomoon.io/app 网页中点击 import Icons 上传然后在选中下载就行了
            追加字体图片:
            以前有字体图标,然后需要在加一个图标在https://icomoon.io/app 网页中点击 import Icons 上传 selection.json文件上传然后在选中下载就行了
            */
           
           /*引用字体图标到网页中*/
           /*第一步,引用字体文件夹fonts*/
            @font-face {/*声明字体,引用字体*/
                font-family: 'icomoon'; /*自己取的名字*/
                src:  url('fonts/icomoon.eot?cj3rhu');/*引用fonts文件夹*/
                src:  url('fonts/icomoon.eot?cj3rhu#iefix') format('embedded-opentype'),
                    url('fonts/icomoon.ttf?cj3rhu') format('truetype'),
                    url('fonts/icomoon.woff?cj3rhu') format('woff'),
                    url('fonts/icomoon.svg?cj3rhu#icomoon') format('svg');
                font-weight: normal;
                font-style: normal;
            }
            span {
                /*第三步:声明字体*/
                font-family: "icomoon";
            }
        </style>
    </head>
    <body>
        <!-- 第二步:在demo.html中选择想要的图标,复制粘贴 -->
        <span></span>
    </body>
    </html>

     伪元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>伪元素</title>
        <style>
            /*选择第一个字*/
            /*p::first-letter {
                font-size: 30px;
            }*/
            /*选择第一行字*/
            /*p::first-line {
                font-size: 30px;
            }*/
            /*选择鼠标选中的文字*/
            /*p::selection {
                color: red;
            }*/
            /*在盒子内容前面添加一个伪元素*/
            div:before {
                /*必须带一个属性content 伪元素 before就是一个行内盒子*/
                content: "";
            }
            /*在盒子内容后面添加一个伪元素*/
            div::after {
                /*必须带一个属性content 伪元素 before就是一个行内盒子*/
                content: "";
            }
        </style>
    </head>
    <body>
        <p>段落</p>
        <div></div>
    </body>
    </html>

    CSS3盒子模型

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS3内减边框</title>
        <style>
           /*CSS2的模型的盒子大小为width+padding+border
           可以通过CSS3的box-sizing:border-box来设置盒子,盒子的大小就是width,也就是说border与padding在width里面*/
            .xiu {
                width: 300px;
                height: 300px;
                border: 10px solid red;
                padding: 20px;
                box-sizing: border-box;
            }
        </style>
    </head>
    <body>
        <div class="xiu">修抗</div>
    </body>
    </html>

    过度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>过度</title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*transition: 要过度的属性 过度时间 运动曲线(默认ease) 何时开始(默认0s);
                如果有多个属性用逗号隔开*/
                transition: width 2s ease 0s,height 2s ease 0s;
                /*简写为 all所有过度属性
                transition: all 2s*/
            }
            div:hover {
                width: 200px;
                height: 200px;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    2D效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>2D效果</title>
        <style>
            /* 2D效果 */
            .xiu{
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*移动盒子 translate(x,y)
                水平移动盒子 translateX(x)
                垂直移动盒子 translateY(y)*/
                transform: translate(100px,100px);/*位移*/
            }
            .kang{
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*放大缩小 scale(x,y)
                水平放大缩小 scaleX(x)
                垂直放大缩小 scaleY(y)*/
                transform: scale(1,2);/*缩放*/
            }
            .sear{
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*旋转度数 rotate(deg)*/
                transform: rotate(10deg);/*旋转*/
                /*设置旋转的原点 左下角*/
                transform-origin: right bottom;
            }
            .niu{
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*倾斜度数 skew(deg)*/
                transform: skew(10deg);
            }
            
            .niu1{
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*也可以设置多个效果用空格隔开*/
                transform: skew(10deg) rotate(10deg);/*倾斜+旋转*/
            }
            /*scale(缩放) translate(位移) rotate(旋转) skew(倾斜)
            上面几种动画都是由 matrix 矩阵完成的*/
        </style>
    </head>
    <body>
        <div class="xiu"></div>
        <div class="kang"></div>
        <div class="sear"></div>
        <div class="niu"></div>
        <div class="niu1"></div>
    </body>
    </html>

    CSS动画

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS动画</title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                /*animation:动画名称 花费时间 运动曲线(默认ease) 何时开始(默认0) 无限播放(infinite) 逆向播放(alternate) 保持动画最后的位置(forward);*/
                animation: xiu 3s;
                /*
                ease 先快后慢,最后非常慢
                linear 匀速
                ease-in 越来越快
                ease-out 越来越慢
                ease-in-out 先快后慢
                上面几种动画速度都是 贝塞尔曲线 完成的
                */
            }
            /*声明动画*/
            @keyframes xiu {
                0% {/*开始*/
                    width: 100px;
                }
                50% {
                    width: 150px;
                }
                100% {/*结束*/
                    width: 200px;
                }
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    flex布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>flex布局(伸缩布局)</title>
        <style>
        .xiu {
            width: 80%;
            height: 200px;
            /*给父元素添加伸缩布局*/
            display: flex;
            /*设置水平/垂直分配 默认row水平分配 column垂直分配*/
            flex-direction: column;
        }
        .xiu div:nth-child(1){
            background: red;
            /*设置分配的份数*/
            flex: 1;
        }
        .xiu div:nth-child(2){
            background: blue;
            flex: 2;
        }
        .xiu div:nth-child(3){
            background: yellow;
            flex: 3;
            /*max- 150px;*/ /*设置最大宽度*/
            min-width: 150px;/*设置最小宽度*/
        }
        </style>
    </head>
    <body>
        <div class="xiu">
            <div></div>
            <div></div>
            <div></div>
        </div>
    </body>
    </html>

    文字阴影

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文字阴影</title>
        <style>
        p{
            /*text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色*/
            text-shadow: 1px 1px 0px rgba(0,0,0,0.1);
        }
        </style>
    </head>
    <body>
        <p>文字阴影</p>
    </body>
    </html>

     背景渐变/浏览器前缀

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>浏览器前缀与背景渐变</title>
        <style>
            /*浏览器前缀常用于解决H5与C3的兼容解决文件
            浏览器前缀   浏览器
            -webkit-    Google Chrome,Safari,Android Browser
            -moz-       Firefox
            -ms-        Interent Explorer,Edge
            -o-         Opera
            -khtml-     Konqueror*/
    
            /*颜色渐变*/
            div {
                width: 300px;
                height: 100px;
                /*background: linear-gradient(渐变的起始位置,起始颜色 位置(默认平均分配),结束颜色 位置(默认平均分配));*/
                background: linear-gradient(top,red 30%,green 70%);
                /*因为Google不支持该属性,所以需要添加浏览器前缀*/
                background: -webkit-linear-gradient(top,red,green);
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    多背景

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>多背景</title>
        <style>
            div {
                width: 500px;
                height: 500px;
                /*添加多背景就用多个url(),用逗号隔开*/
                background: url(1.png) no-repeat bottom right,url(1.png) no-repeat top left;
                background-color: red;/*多背景的背景颜色需要写到多背景后面*/
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

    盒子背景透明

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子半透明</title>
        <style>
            div {
                width: 500px;
                height: 500px;
                /*盒子半透明*/
                /*opacity: .5;*/
                /*盒子的背景颜色半透明*/
                background: rgba(0,0,0,.5);
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    </html>

     3D效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>3D效果</title>
        <style>
            /*3D效果
            transform*/
            .xiu {
                /*rotateX(deg) X轴立体旋转
                rotateY(deg) Y轴立体旋转
                rotateZ(deg) Z轴立体旋转*/
                transform: rotateZ(10deg);
            }
        </style>
    </head>
    <body>
        <div class="xiu"><img src="images/1.jpg" alt=""></div>
        <!-- 3D转换与2D转换的区别 -->
        <!-- 在移动端使用3D转换可以优化性能(如果设备有3D加速引擎GPU就可以加速性能 而2D转换不能使用GPU) -->
    </body>
    </html>

      透视效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>透视效果</title>
        <style>
            /*透视原理:近大远小
            浏览器透视:把近大远小的所有图像,透视在屏幕上
            perspective:视透,表示视点距离屏幕的长短
            视点:用于模拟透视效果时人眼的位置
            perspective:定义3D元素距视图的距离
            定义perspective属性时,其子元素会获得透视效果,而不是元素本身 */
            .xiu{
                height: 150px;
                width: 150px;
                margin: 50px;
                padding:10px;
                border: 1px solid black;
                perspective:150;
                /*因为谷歌浏览器不支持,所以加上浏览器前缀*/
                -webkit-perspective:150;
            }
            .kang{
                padding: 50px;
                border: 1px solid black;
                background-color: yellow;
                transform: rotateX(45deg);
            }
        </style>
    </head>
    <body>
        <div class="xiu">
            <div class="kang"></div>
        </div>
    </body>
    </html>
     
    ss文本
    • 首行缩进
    p {
        text-indent: 10em;
    }
    • 水平对齐
    p {
        text-align: left;/*(右对齐)*/
        text-align: right;/*(左对齐)*/
        text-align: center;/*(居中)*/
    }
    • 单词间隔
    p {
        word-spacing: 10em;
    }
    • 字间隔
    p {
        letter-spcaing: 10em;
    }
    • 行间隔
    p {
        line-height: 10px;
    }
    • 字符转换
    p {
        text-transform: uppercase;/*(全大写)*/
        text-transform: owercase;/*(全小写)*/
        text-transform: capitalize;/*(首字母大写)*/
    }
    • 文本装饰
    p {
        text-decoration: underline;/*(添加下划线)*/
        text-decoration: overline;/*(添加上划线)*/
        text-decoration: line-through;/*(添加删除线)*/
        text-decoration: none;/*取消文本装饰*/
    }
    • 处理空白符
    p {
        white-space: normal;/*(合并空格)*/
        white-space: nowrap;/*(禁止换行)*/
        white-space: pre;/*(不忽略空格和换行)*/
        white-space: pre-wrap;/*(不忽略空格和换行)*/
        white-space: pre-line;/*(合并空格,可以换行)*/
    }
    • 文本方向
    p {
        direction: rtl;/*设置文本方向从右向左*/
        direction: ltr;/*(默认)*/
    }
    • 文本阴影
      p {
          text-shadow: 5px 5px 5px red;
      } 
    css字体
    • css字体
    Serif字体、Sans-serif字体、Monospace字体、Cursive字体、Fantasy字体
    • 指定字体
    p {
        font-family: Georgia,serif;/*如果没有Georgia字体就设置serif字体,以此类推*/
    }
    • 字体风格
    p {
        font-style: normal;/*文本正常宣示*/
        font-style: italic;/*文本斜体宣示*/
        font-style: oblique;/*文本倾斜宣示*/
        font-style: normal;/*取消字体风格*/
    }
    • 字体变形
    p {
        font-variant: snall-caps;/*小型大写字母*/
    }
    • 字体加粗
    p {
        font-weight: 100-900;/*(400==normal 700==bold)*/
    }
    • 字体大小
    p {
        font-size: 16px;/*(16px==1em)*/
    }
    css溢出
    p {
        overflow: hidden;/*溢出内容修剪*/
        overflow:scroll;/*始终显示滚动条*/
        overflow: auto;/*溢出内容时显示滚动条*/
        text-overflow: ellipsis;/*溢出内容使用省略号代替*/
    }
    css链接
    • 设置链接的样式
    设置样式必须按照下面顺序
    a : link{}/*(未被访问的链接)*/
    a : visited{}/*(已访问的链接)*/
    a : hover{}/*(指针位于链接上方)*/
    a : active{}/*(链接被点击的时刻)*/
    • 常见的链接样式
    a {
        text-decoration: none;/*(取消下划线)*/
    }
    css列表
    ul {
        list-style-type: square;
        list-style-image: url(xx.png);
    }
    css表格
    • 表格边框
    table,th,td {
        border: 1px solid red;
    }
    • 折叠边框
    table {
        border-collapse: collapse;
    }
    • 表格宽度和高度
    table {
        width: 100%
        height: 50px
    }
    • 表格文本对齐
    td {
        text-align: right;
        text-align: left;
        text-align: center;
    }
    • 表格内边距
    td {
        padding: 10px;
    }
    • 表格颜色
    th {
        color: red;
    }
    css轮廓
    p {
        outline: red solid red;
    }
    css框模型
    body {
        width : 70px;
        margin: 10px;
        padding: 5px;
    }
     
    css内边距
    h1 {
        padding: 10px 0.1em 2ex 10%;/*(上右下左)*/
        padding: 10px 10px;/*(上下,左右)*/
        padding-top:10px;/*(上)*/
        padding-right: 0.1em; /*(右)*/
        padding-bottom: 2ex;/*(下)*/
        padding-left: 10%;/*(左)*/
    }
    css边框
    • 边框样式
    div {
        border: 1px solid red;/*(宽度 样式 颜色)*/
        border-top-style: solid;/*(设置上边框样式)*/
        border-right-width: 1px;/*(设置右边框宽度)*/
        border-bottom-color: red;/*(设置下边框颜色)*/
        border-color: transparent;/*(透明边框)*/
    }
    • border-radius(圆角)
    div {
        border-radius: 25px;
    }
    • box-shadow(阴影)
    div {
        box-shadow: 10px 10px 5px red;
    }
     css外边距
    div {
        margin: 10px 0.1em 2ex 10%;/*(上右下左)*/
        margin: 10px 10px;/*(上下,左右)*/
        margin-top:10px;/*(上)*/
        margin-right: 0.1em; /*(右)*/
        margin-bottom: 2ex;/*(下)*/
        margin-left: 10%;/*(左)*/
    }
    css定位
    .div {
        position: static;/*(默认)*/
        position: relative;/*(相对定位)*/
        position: absolute;/*(绝对定位)*/
        position: fixed;/*(固定定位)*/
    }
    css浮动
    img {
        float: right;/*(右浮动)*/
        float: left;/*(左浮动)*/
        float: inherit;/*(继承父类浮动)*/
    }
    通配符选择器
    * {
        color: red
    }
    元素选择器
    <h1>标题</h1>
    h1 {
        color: red
    }
    选择器分组
    <h1>标题1</h1>
    <h2>标题2</h2>
    h1, h2 {
        font-size: 10px;
    }
    css类选择器
    <h1 class="xiu">标题</h1>
    .xiu {
        color: red;
    }
    结合元素选择器
    <h1 class="xiu">标题</h1>
    h1.xiu {
        color: red;
    }
    css多类选择器
    <h1 class="xiu kang">标题</h1>
    .xiu {
        color: red;
    }
    .kang {
        font-size: 1px;
    }
    id选择器
    <h1 id="xiu">标题</h1>
    #xiu {
        width: 1px
    }
    属性选择器
    <a href="url" title="提示">链接</a>
    /*第1种方法*/
    a[href] {
        text-decoration: none;
    }
    /*第2种方法*/
    a[href][title] {
        text-decoration: none;
    }
    /*第3种方法*/
    a[href="url"] {
        text-decoration: none;
    }
    /*第4种方法*/
    a[href="url"][title="提示"] {
        text-decoration: none;
    }
    部分属性值选择
    <h1 class="xiu kang">标题</h1>
    h1[class~=xiu] {
        color: red;
    }
    子串匹配属性选择器
    后代选择器
    <h1><s>内容<s></h1>
     h1 s {
         color: red;
     }
    选择子元素
    <h1><s>内容</s></h1>
    <h1><p><s>内容</s></p></h1>(不受影响)
    h1>s {
        color: red;
    }
    相邻选择器
    /*选择h1后面紧挨后面的h2元素*/
    h1 + h2{
        color: red;
    }
    伪类
    <a href="#"></a>
    a : link {}/*未被访问的链接*/
    a : visited {}/*已访问的链接*/
    a : hover {}/*指针位于链接上方*/
    a : active {}/*链接被点击的时刻*/
    <input type="text" value="红色"/>
    /*input获取焦点的时候*/
    input : focus {
        color : red;
    }
    <ul>
      <li>1<li>
      <li>2<li>
    </ul>
    /*获取第一个元素*/
    li:first-child{
        color: red;
    }
    css伪元素
    • :first-letter
    /*向文本的第一个字符添加样式*/
    p:first-letter {
        color: red;
    }
    • :first-line
    /*向文本的第一行字符添加样式*/
    p:first-line {
        color: red;
    }
    • :before
    /*在元素前面添加内容*/
    p:before{
        content: "0";
    }
    • :after
    /*在元素后面添加内容*/
    p:after{
        content: "0";
    }
     
    2D效果
    • 修改元素的位置

    transform: translate(x,y)

    transform: translateX(n)*5

    transform: translateY(n)*6

    img {
        transform: translate(21px,23px);
    }
    • 修改元素大小

    transform:scale(x,y)

    transform: scaleX(n)*3

    transform: scaleY(n)*2

    img {
        transform: scale(2,2);
    }
    • 倾斜元素

    transform:skew(x-angle,y-angle)

    transform: skewX(angle)*1

    transform: skewY(angle)*4

    img {
        transform: skew(10deg,10deg);
    }

    transform: matrix(1,2,3,4,5,6)

    • 旋转元素

    transform: rotete(angle)

    img {
        transform: rotate(10deg);
    }
     
    3D转换
    • 翻转元素
    transform:rotateX()
    transform:rotateY()
    transform:rotateZ()
    img{
        transform:rotateX(100deg);
    }
    •  透视效果

    perspective定义3D元素距视图的距离

    定义perspective属性时,其子元素会获得透视效果,而不是元素本身

    浏览器暂时不支持perspective属性

    Chrome 和 Safari 支持替代的 -webkit-perspective 属性。

    /*.kang是.xiu的子元素*/
    .xiu{
        height: 150px;
        width: 150px;
        margin: 50px;
        padding:10px;
        border: 1px solid black;
        -webkit-perspective:150;
    }
    .kang{
        padding: 50px;
        border: 1px solid black;
        background-color: yellow;
        transform: rotateX(45deg);
    }
    • 嵌套效果

    transform-style设置元素3D嵌套

    必须和transform属性一同使用

    /*.kang是.xiu的子元素*/
    .xiu{
        padding:100px;
        background: red;
        transform: rotateY(60deg);
        transform-style: preserve-3d;
    }
    
    .kang{
        padding:60px;
        background: yellow;
        transform: rotateY(80deg);
    }
    • 设置元素的重心

    transform-origin属性改变旋转元素的重心位置

    /*.kang是.xiu的子元素*/
    .xiu{
        height: 200px;
        width: 200px;
        margin: 100px;
        padding:10px;
        border: 1px solid black;
    }
    
    .kang{
        padding:50px;
        background-color: yellow;
        transform: rotate(45deg);
        transform-origin:20% 40%;
    }
    css过渡
    • transition: 2s

    设置过度时间为2秒

    .div {
        width: 100px;
        height: 100px;
        background: red;
        transition: 2s;
    }
    .div:hover {
        background: blue;
    }
    • transition: width 2s, height 4s

    设置宽度的过度时间为2秒,高度的过度时间为4s

    .div {
        width: 100px;
        height: 100px;
        background: red;
        transition: width 2s,height 4s;
    }
    .div:hover {
        width: 300px;
        height: 300px;
    }
    • transition-delay: 2s

    等待2秒执行hover

    .div {
        width: 100px;
        height: 100px;
        background: red;
        transition-delay: 2s;
    }
    .div:hover {
        width: 300px;
        height: 300px;
    }
    css动画
    div {
        animation-name: xiu(定义动画的名称)
        animation-duration: 5s(定义动画的时间,默认为0)
        animation-timing-function: linear(定义动画速度曲线)
        animation-delay: 2s(定义动画开始的时间,默认为0)
        animation-iteration-count: infinite(定义动画播放次数,默认为1)
        animation-direction: normal/alternate(定义动画一周后师傅逆向播放)
        animation-plat-state: paused/running(暂停播放动画)
    }
    .div {
        animation: xiu 5s linera 2s infinite alternate;
    }
    div{
        background:red;
        animation:xiu 5s;
    }
    @keyframes xiu{
        0% {
            width:100px;
            height:100px;
        }
        100% {
            width:300px;
            height:300px;
        }
    }
    css多列
    p {
       column-count: 2;/*定义文本多少列*/
       column-gap: 2px;/*定义列之间的距离*/
       column-rule: 1px solid red;/*定义列之间的样式*/
       column-width: 1px;/*定义列的宽度*/
    }
    css用户界面
    • 允许用户修改div的大小

    resize:both

    div {
        border: 1px solid red;
        resize: both;
        overflow: auto;
    }
    •  在边框外面在加一个边框

    outline添加外边框

    outline-offset外边框与内边框的间距

    div {
        border: 8px solid black;
        outline: 6px solid red;
        outline-offset: 4px;
    }
  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/xiukang/p/8719405.html
Copyright © 2011-2022 走看看