CSS ------ 层叠样式表

 

A. css代码风格

    a.  建议使用展开格式,更直观
        选择器 {
                属性: 值 ; 
        }
        
    b.  属性名,属性值全部使用小写字母
     
    c.  属性值前,冒号后面,保留一个空格

B. 选择器

1. 基础选择器

    标签选择器: 标签名
    
    类选择器: .类名
    
    id选择器: #id名
    
    通配符选择器: *              //会选中文档中所有的标签(作特殊使用)
  1. 复合选择器

    后代选择器: 父辈 后代;        //选中父元素中所有的后代
    
    子元素选择器: 父亲>儿子;      //仅仅选中儿子
    
    交集选择器: 选择器1选择器2
    
    并集选择器: 选择器1,选择器2;   
    
    伪元素: 
            E:before/after {
                content: "";            //必写属性
                
            }
            
            ::placeholder   //更改input设置该元素的字体颜色
    
    伪类选择器:  
        a.  链接伪类
            a:visited;      //链接被访问后的状态
            a:hover;        //鼠标悬停的状态
            a:active;       //点击但未放手的状态
            
        b.  
            :focus          //针对input获取光标焦点
            
            
        c.  结构伪类
            E:nth-child(n)  //n为公式或者数字 even偶数或2n  odd基数或2n+1  -n+5前五个  n+5从第五个开始到最后 
            (还有E:last-child()   以及  E:first-child()  )
            
            
            E:nth-of-type(n)        //对指定的E进行排序,再看寻找第几个
    
    
    

C. Css三大特性

1. 层叠性

    浏览器自上而下解析,后一个覆盖前一个(样式冲突,遵循就近原则   不冲突则不会层叠)
    
    
    连写时,若不写则会有默认值

2. 继承性

    恰当的使用继承性可以简化代码,降低样式复杂性
    
    子父样式冲突,执行自身(若元素没有被选中,无论父亲多强,儿子的继承为0)
    
    子元素(text-  font- line-  color 系列 可以继承父亲)

3. 优先级

a.  当选择器相同时,比较权重
​
    (权重没有进位,在大也不会向前进)
​
b.  计算公式
    (复合选择器会出现权重叠加,若同时选中一个元素,而又要实现样式,则可添加父元素)
        继承 *        //权重0.0.0.0
        标签          //0.0.0.1
        类 .         //0.0.1.0
        id           //0.1.0.0
        行内          //1.0.0.0
        !important    //无穷大
        
    

4. 元素显示模式

a.  块元素
    (独占一行,无宽度时默认父元素宽度)
    
    div
    p  h1-h6
    ul  ol  dl  dt  dd
    
    
b.  行内元素
    (设置宽高无用,内容撑开盒子,换行有缝隙)
    
    a   strong  em  i   del     span
    
c.  行内块 
    img     input   
    
    
    
    

D. Css常用属性

1. 字体样式

    复合属性 font: font-style font-weight font-size/line-height font-family   //必写字体大小和类别
    
        font-style: italic倾斜/normal正常
        font-weight: 700 bold/400 normal
        font-size: --px             //字体大小
        font-family: 字体类别     //sans-serif无衬线字体

2. 文本样式

    color:  文本样式
    text-align:     文本水平对齐方式
    line-height:    行间距
    text-indent:    首行缩进        //text-indent: 2em;
    text-decoration: 
                        none        //去线
                        underline   //下划线
                        line-through   //删除线
                        overline        //上划线

3. 背景样式

    background: 颜色 图片地址 平铺  滚动  位置
    
        background-color: 
                            transparent     //透明(opacity:0-1;设置整体的透明度)
                            rgb
                            rgba
                            
        background-image:   url(地址);        //还可表示背景渐变色(background-image:linear-gradient())
        
        background-repeat: 
                            no-repaet;      //不平铺
                            repeat          //平铺
                            repeat-x        //x轴方向
                            repeat-y
        
        background-attachment: 
                                scroll      //背景滚动
                                fixed       //背景固定
                                
        background-position: x y;           //可用方位名词
        
        
        background-size: 
                            cover;          //铺满盒子,但图片显示不完整
                            contain;        //铺不满盒子,但图片显示完整
                            width height;       //数字控制,(一个值时代表宽,宁一个默认auto)
                            百分比;                //参考盒子的高度
                            

4. 盒子模型

    1.  外边距margin: top right bottom left;
    
        (margin: 0 auto;        //可让块元素水平居中,但必须有width)  
        
    
    2.  边框border: border-width border-style  border-color;
    
                    border-style:
                                    dotted;     //点线
                                    dashed;     //虚线
                                    soild;      //实线
                    
                    border-radius:  
                                    百分比/px;
                                    top right bottom left;
                    
                                    
    
    3.  内边距padding              //同外边距
    
        
        
    (注意:
            a.  边框和内边距会撑大盒子(有宽高情况下),
            
            b.  上下的盒子和嵌套的盒子注意上外边距塌陷问题(若有浮动,定位,固定则不会出现塌陷)
            
            c.  尽量只给盒子添加一个margin(若两个盒子同时设置边据,以较大的那个为准),行内元素尽量只给左右内外边距
            
            b.  对于table中相邻边框会撑大边框使用border-collapse: collapse;合并相邻边框(或者margin-right: -1px;
            margin-bottom: -1px;)
            
            
            d.  不让边框,内外边距撑大盒子
                * {
                        margin: 0;
                        padding: 0;
                        box-sizing: border-box;
                }
    )
    
    

5. 浮动float

    (多块垂直排列找标准流,水平排列找浮动)
    
    1. css布局机制
        标准流(最稳定):
                        块级元素自上而下  行内元素自左向右
        浮动: 
                a.  让多个块元素一行无缝显示,只有左右没有居中,且顶对齐(但添加padding会影响距离盒子边框的距离) ,
                b.  父元素中只要有一个浮动其他全要添加浮动,但不能影响上方的标准流元素
                c.  可改变元素的类型,行类元素便可设置宽高  
                d.  浮动元素一行显示,除非父盒子装不下,被挤下去
                e.  浮动元素脱标,不占据原有位置,内容撑开盒子
        
        定位: 特殊位置 压住
            
      
     2. 清除浮动(给父元素添加清除)
            a.  什么时候该清除浮动?
            
                父元素不能设置高度,子元素浮动后不能撑开父元素则清除,影响下面布局
                
        方法一:        
                在最后一个浮动元素后添加额外标签<div style="clear:both;"></div>
            
            
         方法二:   
                overflow:hidden;        //子元素超出父元素边界部分会被清除
         
         
         方法三:   (工作中常用)
                .clearfix::after{
                    content: '';                //必写属性
                    display: block;             //伪元素为行内元素
                    clear: both;
                    height: 0;
                    visibility: hidden;         //最后两行隐藏content的内容,和伪元素的高度
                }
                
         方法四:   
                .clearfix::before,
                .clearfix::after {
                    content: '';
                    display: table;
                }
                
                .clearfix::after {
                    clear: both;
                }

6. 定位

    1.  (定位 = 边偏移:             +         定位模式 :                                             )
                    top                             static     //标准流                
                    right                           relative        //相对定位
                    bottom                          absolue            //绝对定位                       
                    left                            fixed               //固定
                    
                    
            (解决特殊位置,压住的问题)
            
        a.  relative相对定位
        
            不脱标,占据原有位置,且位置偏移参考元素自身
            
        b.  absolue绝对定位
            
            脱标,父元素:
                        没有定位,位移参考浏览器
                        有定位,位移参考离他最近的有定位的元素
        
        c.  fixed
            针对浏览器可视化区域,不随滚动条滚动
            
            
            
    2.  层叠次序Z-index
    
            选择器{
                z-index: 1;             //调整元素显示层级关系,值越大层级越高
            }
                (有定位才可使用,值可正可负)

7. 定位 与 浮动脱标的异同

    相同点: 
        a.  块元素脱标后,不在继承父元素宽高,由内容撑开盒子
        
        b.  行内元素脱标可设置宽高
        
        c.  脱标后
                块元素使用margin: 0 auto;无效
                行类元素给其父亲使用text-align:center;无效
                
    不同点:
        a.  浮动脱标压不住文字,行内元素,他们会围绕着浮动的元素                          //主要用于多个块元素一行显示
        
        b.  定位脱标后可压住任意元素

8. 元素的显示与隐藏

    display:
                none;                   //隐藏,不占有原来位置
                block;                  //显示
                
    visibility:
                    hidden;             //占有原来位置 
                    visible;
                    
    overflow: 
                hidden;                 //超出盒子被隐藏
                scroll;                 //溢出显示滚动条,不溢出也显示
                auto;                   //在需要时添加滚动条
                visible;                //默认
                
                
    溢出的文字显示省略号
        单行: 
            white-space: nowrap;            //  强制文字一行显示
            overflow: hidden;               //超出的部分隐藏
            text-overflow: ellipsis;        //用省略号代替超出的部分
            
            
        多行: 
            overflow: hidden;           
            text-overflow: ellipsis;
            display: -webkit-box;           //弹性盒子模型显示
            -webkit-line-clap: 2;           //限制显示文字的行数
            -webkit-box-orient: vertical;
            

9. 用户界面样式

    1.  鼠标样式cursor:
                        pointer;            //小手
                        move;               //十字架
                        text;               //文本I
                        not-allowed;        //禁止
                        default;            //默认样式
                        
                        
    2.  清除input默认轮廓线
                outline: none;
    
    
    3.  防止textarea文本域拖拽
                resize: none;
        
    

10. vertical-align基线问题

    1.  针对行内元素,可用基线控制图片/表单与文字对齐
        
        vertical-align: 
                            top;            //顶对齐
                            middle;
                            baseline;       //基线对齐,会产生缝隙
                            bottom;
                            
                            
    2.  可用与除去图片底部空白缝隙
        
        a.  给图片img添加vertical-ailgn: middle | top | bottom;
        
        b.  给img添加display: block;                   //转为块元素

11. 精灵图

(为了有效减少服务器接收和发送请求次数,提高网页加载的速度)
​
    a.  先将整个图插入
        background: url(地址) no-repeat -__px  -__px;
    
    b.  测量所需图标的宽高,并将其设置为盒子宽高;
    
    c.  测出所需图片左上角所在坐标,并让整个图片往相反方向移动所测量的坐标位置

12. 布局技巧

    1.  商品列中无缝隙但鼠标悬停有盒子边框
    
        a.  利用li两个相邻都有相同像素的左右边框,但重叠颜色加深,使用margin-left: -__px;边框的粗细,使得左边边框向左走边框的像素刚好压住前一边框
        
        b.  若为标准流则添加相对定位,虽然浮动但保留原位置
        
        c.  若无定位则提高它的Z-index(添加到悬停时)
        
    
    2.  元素围绕元素 (新闻左图右文字案例)
    
        给父盒子宽高,左侧插图片添加浮动,右侧文字添加标准流围绕图片显示,在添加图片的外边距

13. CSS三角形

1.  等腰三角形
​
            <style>
                .box {
                    width: 0;
                    bottom: 0;
                    border: 50px solid transparent;     
                    border-left-color: pink;        //更改left改变三角形方向
                }
            </style>
            <div class="box"></div>
        
        
 2. 直角三角形
 
            <style>
                .box {
                    width: 0;
                    height: 0;
                    border-color: transparent red transparent transparent;
                    border-style: solid;
                    border-width: 100px 50px 0 0;       //
                }
            </style>
        </head>
​
        <body>
            <div class="box"></div>
        </body>

14. 阴影

 1. 盒子阴影(不占空间,不影响其他盒子)
        
        box-shadow:  
                    水平              //x轴偏移  
                    垂直              //y轴偏移
                    模糊距离            //阴影模糊范围
                    大小              //阴影大小
                    颜色 
                    内外阴影            //inset内阴影
 
 2. 文字阴影
        
        text-shadow: 水平 垂直 模糊距离 颜色;
        
 3. filter: 模糊距离;               //给图片添加模糊效果

15. 字体图标

        
        网页下载Http://www.iconfont.cn/
        
        将下载的文件放在需使用的目录下.链入iconfont.css的样式文件
                                            a.  复制粘贴图标对应的编码
                                                设置文字字体font-family: iconfont;
                                                
                                            b.  调用对应的类iconfont,在调图标对应的样式icon-

E. 过渡

transition: 
(谁过渡加给谁)
            过渡属性                //一般用all
            花费时间                //
            运动曲线
                    ease渐渐慢下来
                    linear匀速
                    ease-in加速
                    ease-out减速
                    ease-in-out先加后减
            何时开始
            
            
        案例: (双开门效果)
            利用背景图片左上角对齐,添加right使图片只要右边

F. 2D转换

(行内元素转块元素才有效果)
​
        transfrom: translate() rotate() scale();        //同时存在位移在前,顺序不同影响不同的效果
​
​
​
1.  移动
    transform: translate(x,y);
                
                a.  若只写一个值则为x轴
                b.  若写100%则按参考自身宽高
                c.  不脱标,与相对定位类似
                d.  不会影响其他元素的位置
                e.  实现绝对定位后的元素居中
                    left: 50%;
                    top: 50%;
                    transform:  translate(-50%,-50%);
​
​
2.  旋转
    transform:  rotate(45deg);          //默认旋转中心点为元素的中心点
    
    切换旋转中心点: 
                transform-origin: x y;          //默认 50%,可添加方位名词
                
    
3.  缩放
    (针对有阴影的不建议使用,而是直接改变宽高)
    
    transform: scale(x,y);
                a.  只写一个值宽高等比缩放
                b.  值大于1放大,小于1缩小
                
                
4.  渐变 
    background-image: linear-gradient(方位        , 颜色,颜色)            //颜色可多个
                                          to right top
                                          to bottom
    
    
    
​

G. 动画

(使元素从一种样式变化为另外一种样式的效果)
​
    定义动画
​
            @keyframes  ___  {
                    from{   }
                    to{ }
            }
        或   
            @keyframes  名称 {
                    0% {    }
                    50%{    }
                    100% {  }
            }
            
     调用动画
            animation: 
                        名称          zhu
                        播放时长        2s
                        播放次数        5/infinite
                        保持状态        forwards/backwards
                        是否逆向        alternate
                        延迟          2s
                        速度曲线        linear
                        运动暂停        pause
                        
                        
            animation-timing-function: steps(N);        //逐帧动画
                        
        

H. 3D转换

    
    位移
           
           translate3d (x ,y ,z);
​
            因为电脑是二维画面,需要添加perspective透视产生近大远小的效果        //给父元素添加
​
            perspective:    800-1000px;             //值越小,则距离越近则成像越大
    
    
    旋转
    
            transform: 
                        rotateX();
                        rotateY();
                        rotateZ();              //建议单写
                        
            (所谓3D必须给父元素添加transform-style:   preserve-3d;开启三维空间)
                        
     
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值