• css干货部分


    1.css的引入方式(三种):
            a.行内样式<div> <p style="color: green">我是一个段落</p>  </div>
            b.内接样式
                <style type="text/css">
                    /*写我们的css代码*/
                    span{ color: yellow; }
                </style>
            c.外接样式
                c.1 链接式 <link rel="stylesheet" href="./index.css">
                c.2 导入式
                    <style type="text/css">
                        @import url('./index.css');
                    </style> 
        2.css的选择器
            a.基础选择器
                a.1 标签选择器
                    可以选择所有的标签,比如div,ul,li,p等等,不管标签藏得多深,都可以找到
                        /*标签选择器p*/
                        p{
                            color: red;
                        font-size: 20px;
                        }
                        
                a.2 id选择器(方式:#id)
                     同一个页面中id不能重复,任何的标签都可以设置id(id命名规范同函数名)
                a.3 类选择器
                    a.3.1 所谓类,就是class 与id用法非常类似,任何标签都可以加类,                类还可以重复,属于归类的概念.
                    a.3.2 同一个标签中可以携带多个类,用空格隔开
            b.高级选择器
                b.1 后代选择器 :使用空格表示后代选择器.顾名思义,父元素的后代(儿孙满堂)
                b.2 子代选择器 :使用>表示子代选择器.比如div>p,仅仅表示当前div元素选中的子代
                b.3 并集选择器 :多个选择器用逗号隔开.表示选中的多个标签所选中的所有元素
                b.4 交集选择器 :第一个标签必须是标签选择器,第二个必须是类选择器
                    语法:div.active{}
                b.5 属性选择器 :根据标签的属性选择,选中当前的标签
                    以for属性为例:
                         1 /*根据属性查找*/
                         2             [for]{
                         3                 color: red;
                         4             }       
                         6  /*找到for属性的等于username的元素 字体颜色设为红色*/
                         7             [for='username']{
                         8                 color: yellow;
                         9             } 
                         10  /*以....开头  ^*/ 
                         12             [for^='user']{
                         13                 color: #008000;
                         14             }
                         15             
                         16 /*以....结尾   $*/
                         17             [for$='vvip']{
                         18                 color: red;
                         19             }
                         20             
                         21 /*包含某元素的标签*/
                         22             [for*="vip"]{
                         23                 color: #00BFFF;
                         24             }
                         28 /*指定单词的属性*/
                         29             label[for~='user1']{
                         30                 color: red;
                         31             }
                         32             
                         33             input[type='text']{
                         34                 background: red;
                         35             }
                b.6 伪类选择器 :伪类选择器一般用在超链接a标签中,
                            使用a标签的伪类选择器,要遵循"爱恨准则"  LoVe HAte
                        示例:
                            1               /*没有被访问的a标签的样式*/
                            2         .box ul li.item1 a:link{
                            3             
                            4             color: #666;
                            5         }
                            6         /*访问过后的a标签的样式*/
                            7         .box ul li.item2 a:visited{
                            8             
                            9             color: yellow;
                            10         }
                            11         /*鼠标悬停时a标签的样式*/
                            12         .box ul li.item3 a:hover{
                            13             
                            14             color: green;
                            15         }
                            16         /*鼠标摁住的时候a标签的样式*/
                            17         .box ul li.item4 a:active{
                            18             
                            19             color: yellowgreen;
                            20         }
                b.7 伪元素选择器 
                        示例:
                            /*设置第一个首字母的样式*/
                                    p:first-letter{
                                        color: red;
                                        font-size: 30px;
    
                                    }
                                    
                            /* 在....之前 添加内容   这个属性使用不是很频繁 了解  使用此伪元素选择器一定要结合content属性*/
                                    p:before{
                                        content:'alex';
                                    }
                                    
                                    
                            /*在....之后 添加内容,使用非常频繁 通常与咱们后面要讲到布局 有很大的关联(清除浮动)*/
                                    p:after{
                                        content:'&';
                                        color: red;
                                        font-size: 40px;
                                    }
        3.css的继承性和层叠性
            a.继承性 继承特点:继承了父类的属性和方法
                继承父类的属性
                    a.1 有些属性可以继承:color,font-*,text-*,line-*.主要是文本级的标签元素
                    a.2 一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承
            b.层叠性 权重的标签覆盖了权重小的标签(谁的权大听谁的)
                b.1 数: id的数量 class的数量 标签的数量     (顺序不能乱)
                        权重100    权重10    权重1
    
                b.2 继承来的属性,谁描述的近(距离)
                b.3 权重相同时,以后来设置的属性为准
                b.4 第一个选择器没有选中内层标签,那么它是通过继承来设置的属性,那么它的权重为0。第二个选择器选中了内层标签,有权重。
    
                    第一种现象:当权重相同时,以后来设置的属性为准,前提一定要权重相同
                    #box2 .wrap3 p{
                        color: yellow;
                    }    
                    #box1 .wrap2 p{
                        color: red;
                    }
                    我们会发现此时显示的是红色的。
    
    
                    第二种现象: 前选择器没选中内层标签,它是通过继承来设置的属性,那么它的权重为0。    后选择器选中内层标签,有权重。
                    #box1 #box2 .wrap3{
                        color: red;
                    }
                    #box2 .wrap3 p{
                        color: green;
                    }
                    我们会发现此时显示的是绿色的。
    
                     
                    第三种现象:如果都是继承来的属性,谁描述的近,显示谁的属性。'就近原则'
    
                    #box1 #box2 .wrap3{
                        color: red;
                    }
                     .wrap1 #box2{
                        color: green;
                    }
                    我们会发现此时显示的是绿色的。
                b.5 !important :权限无限大(不能随便使用)
        4.盒模型 内层到外层content padding border margin
            a.盒模型的属性:
                a.1 内容的宽度
                a.2 height:内容的高度
                a.3 padding:内边距,边框到内容的距离
                    1.padding区域有背景色,且背景颜色和内容颜色一样。也就是说background-color这个属性将    填充所有的border以内的区域
                    2.padding有四个方向,分别描述4个方向的padding
                        描述的方法有两种:
                            1、写小属性,分别设置不同方向的padding
                            padding-top: 30px;
                            padding-right: 30px;
                            padding-bottom: 30px;
                            padding-left: 30px;
                             
    
                            2、写综合属性,用空格隔开
    
                            /*上 右 下 左*/
                            padding: 20px 30px 40px 50px ;
                            /*上 左右  下*/
                            padding: 20px 30px 40px;
                            /* 上下 左右*/
                            padding: 20px 30px;       
                            /*上下左右*/
                            padding: 20px;
                    3.一些标签默认有padding:
                        比如ul标签,有默认的padding-left值。
                        那么我们一般在做站的时候,是要清除页面标签中默认的padding和margin。以便于我们更好的去调整元素的位置。
    
                        我们现在初学可以使用通配符选择器
                        *{
                          padding:0;
                          margin:0;    
                        }
                        But,这种方法效率不高。
    
                        所以我们要使用并集选择器来选中页面中应有的标签(不同背,因为有人已经给咱们写好了这些清除默认的样式表,reset.css)
                a.4 border:边框,就是指盒子的宽度
                    边框三要素:粗细 线性样条 颜色
                        border- 3px;
                        border-style: solid;
                        border-color: red;
                        还可以单独对某一个方向进行设置(left,right,top,bottom)
                a.5 margin:外边框,盒子边框到附近最近盒子的距离
                    margin: 20px;    /*表示四个方向的外边距离为20px*/
                    margin-top: 30px;    /*表示盒子向下移动了30px*/
                    margin-left: 50px;    /*表示盒子向右移动了50px*/
                a.6 计算宽高
                    盒子的真实宽度=width+2*padding+2*border
    
            b.margin塌陷问题
                1.设置浮动后,不会出现margin塌陷问题
                2.设置浮动后,margin:0 auto;失效
                    两个标准流下兄弟盒子 设置垂直方向上的margin时,以较大的为准,这种现象叫塌陷.
                    没法解决,我们称为这种技巧叫“奇淫技巧”。
                
                margin:0 auto;表示上下外边距离为0,左右为auto的距离
                    使用margin:0 auto;注意点:
                    1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;
                    2.只有标准流下的盒子 才能使用margin:0 auto; 
                    当一个盒子浮动了,固定定位,绝对定位(后面会讲),margin:0 auto; 不能用了
                    3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center;
     
        5.标准文档流
            web网页制作,就是从上往下的排版,这个排版就是流(类似织毛衣)
            a.空白折叠现象    :多个空格在一起只会显示一个
            b.高矮不齐,底边对齐                                                                        :文字,图片大小不一,会让页面的元素出现高矮不齐的现象,但是浏览器中会发现底边对齐.
            c.自动换行,一行写不满,换行写
    
        6.行内元素和块级元素
            a.行内元素,块级元素特点
                a.1行内元素
                    1 与其他行内元素并排
                    2 不能设置宽高,默认宽度就是文字的宽度.
                a.2块级元素
                    1 霸占一行,不能与其他任何元素并列
                    2 并接受宽高的设定,默认宽度父亲的100%
            b.行内元素,块级元素区分
                标签区分
                    1.文本级标签:p,span,a,b,i,u,em.
                    2.容器级标签:div,h系列,li,dt,dd.
                b.1 行内元素:除了p之外,所有文本级标签,都是行内元素.p是文本标签,却是个块级元素.
                b.2 块级元素:所有容器级标签都是块级元素,外加p这个块级元素.
            c.块级元素和行内元素的相互转换(display)
                c.1 块级元素转化成行内元素,例如div 对于div设置 display:inline 即可
                c.2 行内元素转化成块级元素,例如span 对于span设置 display;block 即可
    
        7.脱离标准流
            a.float:浮动    (none,left,right)
                a.1 浮动元素特点:
                    1.浮动的元素脱标(脱离了标准流)
                    2 浮动的元素互相贴靠
                    3 浮动的元素有"子围"效果
                    4 浮动的元素收缩的效果(浮动元素紧凑效果)
                a.2 清除浮动:
                    1.清除浮动原因:影响页面布局,使页面排版错乱
                    2.清除浮动的方法: 
                        .1.给父盒子设置高度    一般会常用页面中固定高度,且子元素并排.如导航栏
                        .2.clear:both     clear三值:left right both(当前元素左右两边都不允许有浮动)
                        .3.伪元素清除法     给浮动元素父盒子,也就是不浮动元素,添加clearfix的类,然后设置
                                        .clearfix:after{
                                            /*必须要写这三句话*/
                                            content: '.';
                                            clear: both;
                                            display: block;
                                        }
    
                                        例:/*新浪首页清除浮动伪元素方法*/
                                                      content: ".";
                                                        display: block;
                                                        height: 0;
                                                        clear: both;
                                                        visibility: hidden
                        .4.overflow:hidden
                                    值                描述
                                visible    默认值。内容不会被修剪,会呈现在元素框之外。
                                hidden    内容会被修剪,并且其余内容是不可见的。
                                scroll    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
                                auto    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
                                inherit    规定应该从父元素继承 overflow 属性的值。
    
            b.绝对定位
            c.固定定位
        8.文本属性和字体属性
            a.文本属性:
                a.1 文本对齐:text-align属性规定元素中的文本的水平对齐方式.
                                属性值:none center left right justify
                a.2 文本颜色:    color属性
                a.3 文本首行缩进: text-indent属性规定元素首行所进度的距离,单位建议使用em
                a.4 text-decoration属性规定文本修饰的样式
                    属性值:none(空 默认) underline(下划线) overline(定义文本上的一条线) line-through(定义穿过文本下的一条线)
                    inherit(继承父元素的text-decoration属性的值)
                a.5 line-height 设定行高
            b.字体属性:
                b.1 字体大小: font-size表示设定字体大小,如果设定成inherit表示继承父元素的字体大小值.
                b.2 字体粗细: font-weight表示设置字体的粗细    属性值:none(默认值,标准粗细) bold(粗体) broder(更粗)
                       lighter(更细) 100~900(设置具体粗细,400等同于normal,而700等同于bold) inherit(继承父元素字体的粗细值)
                b.3 字体系列 font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
                            出现浏览器不支持的字体,会尝试执行下一个
                b.4 line-height行高 
                    针对单行文本垂直居中 
                        公式:行高的高度等于盒子的高度,可以是当行文本垂直居中,注意值适用于单行文本.
                    针对多行文本垂直居中
                        行高的高度不能小于字体的大小,不然上下字之间会紧挨在一起.
                        padding-top:(盒子高度-行高*行数)/2px    (同时需要将盒子的高度降低前面的值)
        9.超链接导航栏案例 
                html结构
                    <div class="nav">
                            <ul>
                                <li>
                                    <a href="">路飞学城</a>
                                </li>
                                <li>
                                    <a href="">老男孩</a>
                                </li>
                                <li>
                                    <a href="">网站导航</a>
                                </li>
                                <li>
                                    <a href="">网站导航</a>
                                </li>
                                <li>
                                    <a href="">网站导航</a>
                                </li>
                                <li>
                                    <a href="">网站导航</a>
                                </li>
                            </ul>
                        </div>
    
                css代码如下:
                    *{
                    padding: 0;
                    margin: 0;
                    }
                    ul{
                    list-style: none;
                    }
                    .nav{
                     960px;
                    /*height: 40px;*/
                    overflow: hidden;
                    margin: 100px auto ;
                    background-color: purple;
                    /*设置圆角*/
                    border-radius: 5px;
                    }
                    .nav ul li{
                    float: left;
                     160px;
                    height: 40px;
                    line-height: 40px;
                    text-align: center;
                    }
                    .nav ul li a{
                    display: block;
                     160px;
                    height: 40px;
                    color: white;
                    font-size: 20px;
                    text-decoration: none;
                    font-family: 'Hanzipen SC';
                    }
                    /*a标签除外,不继承父元素的color*/
    
    
                    .nav ul li a:hover{
                    background-color: red;
                    font-size: 22px;
                    }
    
        10.background
            a. background-color属性表示背景颜色
            b. background-img:表示设置次元素的背景图片
            c. background-repeat:表示设置钙元素平铺的方式
                        值            描述
                    repeat        默认。背景图像将在垂直方向和水平方向重复。
                    repeat-x    背景图像将在水平方向重复。
                    repeat-y    背景图像将在垂直方向重复。
                    no-repeat    背景图像将仅显示一次。
                    inherit        规定应该从父元素继承 background-repeat 属性的设置。        
            d. background-position: 属性设置背景图像的起始位置。
                        这个属性设置背景原图像(由 background-image 定义)的位置
                    
                    属性值:
                        
                        值    
                            top left
                            top center
                            top right
                            center left
                            center center
                            center right
                            bottom left
                            bottom center
                            bottom right
                        描述
                            如果您仅规定了一个关键词,那么第二个值将是"center"。
                            默认值:0 0;    这两个值必须挨在一起。
            e.精灵图技术
                css精灵图(雪碧图)原理:
                    只有一张大的合并图,需要显示小图标时,就需要截取大图的一小部分显示.
                css精灵图的好处:
                    1.利用css sprites能减少网页的http请求,从而大大提高页面的属性
                    2.css sprites能减少图片的字节
                    3.解决了网页设计师在图片命名上的困扰,提高网页的制作效率.
                    4.更换风光方便,只需改变一张,维护方便.
                css精灵图不足:
                    1.css精灵图最大问题是内存使用
                    2.拼图维护比较麻烦
                    3.使css的编写变得困难
                    4.css精灵图调用的图片不能被打印
    
    
                可以使用background综合属性制作通天banner,什么是通天banner呢,就是一般我们电脑的屏幕都是1439.但是设计师给我们的banner图都会比这个大,那么我们可以此属性来制作通天banner。
    
                background:  red  url('./images/banner.jpg')  no-repeat   center top;
                background-attach
                设置fixed之后,该属性固定背景图片不随浏览器的滚动而滚动
    
        10.定位:1.相对定位 2.绝对定位 3.固定定位
            1.相对定位:相当于自己原来的位置定位(参考点是原来的位置)
                现象和使用:
                    1.如果当前元素仅仅设置了相对定位,那么与标准流的盒子没什么区别
                    2.设置相对定位之后,才可以使用四个方向的属性:top,bottom,left,right
                特性: 1.不脱靶 2.形影分离 3.老家占坑(移动的过程也被占用)
                用途: 1.微调元素位置 2.做绝对定位的参考(父相子绝)
                    
                position:relative(相对定位)
                    a.三大特性:1.不脱靶 2.形影不离 3.老家流坑
                    b.用途: 1.微调元素 2.做绝对定位的参考 3.作为"父相子绝"的参考
                    c.参考点:以自己原本的本身位置做可参考点
            2.绝对定位:
    
                position:absolute(绝对定位)
                    a.特性: 1.脱标 2.做遮盖效果,提成了层级
                    b.用途: 1.父相子绝,用途很多(绝对重点)
                    c.参考点:单个绝对定位,top属性描述,是以页面左上角定位
                            如果是父相子绝的,那么是以父辈元素左上角基准点
    
            3.position:static(固定定位)
            
                c.参考点:https://www.cnblogs.com/majj/p/9040408.html
            4.position:fixed
    
            
            注:
                父相子绝:父辈元素设置相对定位,子元素设置绝对定位
    
            5.定位优先级
                z-index压盖现象的四条规则: (四大特性,记住就能找到盒子了)
                1.z-index值表示谁压着谁,数值大的压着数值小的
                2.只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使        用z-index,而浮动元素不能使用z-index.
                3.z-index值没有单位,就是一个正整数,默认的z-index值为0,如果大家没有z-index值,谁在    上面压着别人,定位了元素,永远压住没有定位的元素.
                4.从父现象:父亲怂了,儿子再牛逼也没用
  • 相关阅读:
    【emWin】例程二十:窗口对象——Dropdown
    【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-11层驱动之FSMC
    【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-10底层驱动之I2C
    【emWin】例程十九:窗口对象——Checkbox
    【iCore3应用】基于iCore3双核心板的编码器应用实例
    【emWin】例程十八:jpeg图片显示
    【GMT43液晶显示模块】发布原理图、出厂代码
    【iCore3应用开发平台】发布 iCore3 应用开发平台出厂代码rev0.0.6
    【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-9底层驱动之USART
    【6集iCore3_ADP触摸屏驱动讲解视频】6-6 底层驱动之触摸操作
  • 原文地址:https://www.cnblogs.com/pupilheart/p/9250354.html
Copyright © 2020-2023  润新知