zoukankan      html  css  js  c++  java
  • css 基础知识 (待完善...)

    CSS
     
    1.position 属性
        对元素进行定位.
     
        absolute
            相对于 非static类型的position 的 第一个(临近的) 父元素 进行定位.
     
        relative
            相对于 正常文档流的位置进行定位. 可以简单理解为 相对于自己本身 进行偏移量定位.
            例如,"position:relative;left:20;" 会让该元素在left位置增加20px.
            
        fixed
            也是生成绝对定位元素.与absolute不同的是,它是相对于浏览器窗口 进行定位.
            todo : 所谓浏览器窗口 到底指代的 html标签 还是 body标签 ? 或者就是字面的'浏览器窗口'?
     
        static
            默认值.表示元素会出现在正常的文档流中的位置.
            该类型定位会让元素 忽略掉 top , left , right , bottom 以及 z-index 属性.
     
        inherit
            从 直接父级 继承position属性的值.
     
        补充:
            position的默认属性是static.不可继承的.
            css2开始支持position.
            当是absolute/fixed时,无论什么元素都会变成块级的.
            IE8及以下版本 均不支持 inherit值 .(todo , IE9 及以上 支持不?)
     
        JS语法: object.style.position = '';
     
     
    2.display 属性
        规定了元素 应该生成的 框的类型.
     
        none
            此元素不会被显示.
     
        block
            元素显示为 块级元素. 元素的前后 都会带有换行符.
     
        inline
            默认值.元素显示为 内联元素. 元素前后 没有换行符.
     
        inline-block
            元素显示为 行内块元素.
     
        list-item
            元素会作为 列表 显示.
     
        run-in
            根据上下文 来决定 元素是以 块级/内联 方式显示.
     
        table
            元素显示为 块级表格(类似于<table>). 元素前后带有换行符.
     
        inline-table
            元素显示为 内联表格(类似于<table>). 元素前后 没有换行符.
     
        table-row-group
            元素显示为 一个/多个 行的分组(类似于<tbody>).
     
        table-header-group
            元素显示为 一个/多个 行的分组(类似于<thead>).
     
        table-footer-group
            元素显示为 一个/多个 行的分组(类似于<tfoot>).
     
        table-row
            元素显示为 一个 表格行(类似于<tr>).
     
        table-column-group
            元素显示为 一个/多个 列的分组(类似于<colgroup>).
     
        table-column
            元素显示为 一个 单元格列(类似于<col>).
     
        table-cell
            元素显示为 一个 表格单元格(类似于<td>或<th>).
     
        table-caption
            元素显示为 一个 表格标题(类似于<caption>).
     
        inherit
            规定从父级元素 继承 display属性.
     
     
        补充:
            IE7及以下 不支持 inline-table, inherit, run-in, 以及所有 table-* 属性.
            从css1开始支持display属性.
            display属性的默认值是inline.不可继承的.
     
        JS语法 : object.style.display = ''
     
     
     
    3.background 属性
        设置元素的 背景属性.
     
        background-color
            规定要使用的背景色.
            该颜色为纯色,会覆盖 元素的内容,内边距,边框(直到边框的边界为止,即不包括外边距,但是包括边框本身的区域).
            因此,如果边框有部分是透明的(比如虚线边框),那么透明的地方会显示背景颜色.
     
            color_name
                代指颜色名称,如 'red'
     
            hex_number
                代指 十六进制的 颜色值, 如 '#ff0000'
     
            rgn_number
                代指 rgb类型的 颜色值, 如 'rgb(0,255,255)'
     
            transparent
                默认值.表示元素的背景色为透明的.
     
            inherit
                规定从父级继承的 background-color 属性的值.
     
            JS语法 : object.style.backgroundColor = 'rgb(0,255,255)';
     
     
        background-position
            规定背景图像的位置.
     
            该值有三种设置方式:(其中方式二 和方式三 可以混合使用)
     
            方式一 (如果只指定了一个 那么第二个值默认为center)
                top  left   或 top center    或 top right
                center left 或 center center 或 center right
                bottom left 或 bottom center 或 bottom right
     
            方式二 (如果仅指定了一个值 , 那么第二个值默认为 50%)
                x% y%   如: 0% 0%
     
            方式三 (如果仅指定了一个值 , 那么第二个值默认为 50%)
                xpos ypos  如: 0 0 , 单位可以是任何css单位 px em rem等
     
            JS语法 : object.style.backgroundPosition = '0% 10%';
     
     
        background-repeat
            规定 是否/如何 重复背景图像.(其实就是 设置哪种 平铺模式).
     
            repeat
                默认值. 图像在 水平以及垂直方向上重复.
     
            repeat-x
                图像在 水平方向上重复.
     
            repeat-y
                图像在 垂直方向上重复.
     
            no-repeat
                背景图像仅显示一次.
     
            inherit
                从父级元素上继承background-repeat 属性的值.
     
            JS语法 : object.style.backgroundRepeat = 'repeat-x'
     
     
     
        background-attachment
            规定背景图像是 固定的/随着页面其余部分滚动 .
     
            scroll
                默认值. 背景图像随着页面其余部分滚动.
     
            fixed
                背景图像是固定的,不会随着页面其余部分滚动.
     
            inherit
                从父级元素上继承background-attachment属性的值
     
            JS语法 : object.style.backgroundAttachment = 'fixed'
     
     
        background-image
            规定要使用的背景图像.
     
            url('URL')
                指向背景图片的路径.
     
            none
                默认值.不显示背景图像.
     
            inherit
                从父级元素上继承background-image属性的值.
     
            JS语法 : object.style.backgroundImage = 'url("../xxx/xx.jpg")'
     
     
        inherit
            从父级元素上继承background属性的值.
     
     
        background-size
            规定背景图像的尺寸.
     
            length
                设置背景图像的宽高.如果只设置一个值,则第二个值默认为'auto'.
     
            percentage
                百分比形式设置宽高.如果只设置一个值,则第二个值默认为'auto'.
     
            cover
                把背景图片扩展至足够大,使背景图像覆盖背景区域.
                背景图像的某些部分有可能无法显示在指定的背景定位区域内(说白了,就是背景图像可能只能局部显示,多余的部分已经超出背景区域的管辖了).
     
            contain
                把图像扩展至最大尺寸,以使得宽高完全适应内容区域.(智能填充有木有!)
     
            JS语法 : object.style.backgroundSize = '10px auto'
     
     
        background-origin
            规定背景图像的定位区域(即设置以盒模型的哪个部位来定位).
     
            padding-box
                默认值.以内边距来定位背景图片
     
            border-box
                以边框来定位背景图片.
     
            content-box
                以内容框来定位背景图片.
     
            JS语法 : object.style.backgroundOrigin = 'content-box'
     
     
        background-clip
            规定背景的绘制区域.(todo 看效果,网页提供的用例 没有明显效果)
     
            padding-box
                背景被裁剪到内边距框.
     
            border-box
                默认值.背景被裁剪到边框盒.
     
            content-box
                背景被裁剪到内容框.
     
            JS语法 : object.style.backgroundClip = 'padding-box'
     
     
        JS语法 : object.style.background = 'orange url("../xxx.jpg") repeat-y'
     
        补充:
            后三个属性是css3新出的.前者是css1的.
            IE8及以下版本均不支持一个元素多个背景图片.
            IE7及以下版本不支持inherit.IE8需要声明 !DOCTYPE .
            对于background属性本身,可以不指定某个/某几个值(即只设定部分值).
            推荐使用background属性 , 而不是以值 作为属性 分别设置:
                不但可以减少文字的键入 , 还可以保证老版本的浏览器 能有更好的兼容性.
     
        
     
            
    4.@keyframes 规则 及 animation属性 (-webkit , -moz ,-o 前缀对 它们都适用)
     
        @keyframes 规定动画规则.
            语法:
                @keyframes animation_name {
                    keyframes_selector_1 {
                        css_styles ;
                    }
                    keyframes_selector_2 {
                        css_styles ;
                    }
                }
            其中,
                animation_name : 自定义的动画名称
                keyframes_selector_* : 动画时长百分比(0-100%).
                css_styles : 一个/多个 合法的css样式.
     
            样例:
                @keyframes mymove
                {
                    0%   {top:0px; left:0px; background:red;}
                    25%  {top:0px; left:100px; background:blue;}
                    50%  {top:100px; left:100px; background:yellow;}
                    75%  {top:100px; left:0px; background:green;}
                    100% {top:0px; left:0px; background:red;}
                }
     
            补充:
                和@keyframes用法一样,兼容不同浏览器的规则如下:
                    @-moz-keyframes mymove          /* Firefox */
                    @-webkit-keyframes mymove       /* Safari 和 Chrome */
                    @-o-keyframes mymove            /* Opera */
     
     
        animation
            动画属性的一个统称.它有六个更细颗粒的动画属性.
     
            animation-name
                绑定到@keyframes规则 上的动画名称.
     
                none    
                    默认值.无动画效果.
     
                keyframes_name
                    需要绑定到选择器上的keyframes名称.
     
                JS语法 : object.style.animationName = 'mymove'
            
     
            animation-duration
                动画的周期(即耗时).单位为 秒/毫秒. 只的是单次的耗时,和animation-count属性无关.
     
                time
                    动画时长.
     
                JS语法 : object.style.animationDuration = '5s'
     
     
            animation-timing-function
                规定动画的速度曲线.
     
                ease
                    默认值. 低速 -> 变快 -> 变慢
     
                linear
                    匀速.
     
                ease-in
                    低速开始.
     
                ease-out
                    低速结束.
     
                ease-in-out
                    低速开始和结束.
     
                cubic-bezier(n,n,n,n)
                    设置速率曲线. n 是0~1之间的值.
     
                JS语法 : object.style.animationTimingFunction = 'linear'
     
     
            animation-delay
                动画开始前的延迟时间.
     
                time
                    延迟时间.默认为0.
     
                JS语法 : object.style.animationDelay = '2s'
     
     
            animation-iteration-count
                动画的播放次数.
                
                n
                    播放次数.
                
                infinite
                    无限循环.
     
                JS语法 : object.style.animationIterationCount = 18 ;
     
     
            animation-direction
                是否轮流反向播放动画.
     
                normal
                    默认值. 正常顺序播放.
     
                alternate
                    反向播放动画.
     
                JS语法 : object.style.animationDirection = 'alternate'
     
     
        JS语法 : object.style.animation = 'mymove 5s infinite'
     
     
        补充:
            Internet Explorer 9 以及更早的版本不支持 animation 属性。
            Internet Explorer 10、Firefox 以及 Opera 支持 animation 属性。
            Safari 和 Chrome 支持替代的 -webkit-animation 属性。
            animation-duration属性 一定要设定,否则时长为 0,就不会播放动画了
     
     
     
    5.transition 属性
        元素过渡属性的统称.分为四个细颗粒度的过渡属性.
     
        transition-property
            过渡效果的css名称.(当指定的css属性的值改变了,过渡效果开始启动)
     
            none
                没有属性会获得过渡效果.
     
            all
                默认值.所有属性获得过渡效果.
     
            property
                定义 应用过渡效果的css属性名称列表. 列表以逗号","作为分隔符.
     
            JS语法 : object.style.transitionProperty = 'width,height';
     
     
        transition-duration
            完成过渡效果需要花费的时间.
     
            time
                默认值为0,意味着不会发生过渡效果.单位可以是秒或者毫秒.
     
            JS语法 : object.style.transitionDuration = '10s';
     
     
        transition-timing-function
            该函数定义了 过渡效果的 速度曲线.
            
            (具体值的意义 参考 animation-timing-function)
            linear , ease (默认值), ease-in , ease-out , ease-in-out , cubic-bezier(n,n,n,n)
     
            JS语法 : object.style.transitionTimingFunction = 'ease'
     
     
        transition-delay
            过渡效果 开始前的 延迟时间.单位为秒或毫秒.
     
            time
                延迟时间,默认为0s.
     
            JS语法 : object.style.transitionDelay = '3000 ms'
     
     
        补充:
            transition-duration属性 一定要设置,否则过渡时长为0,不会有过渡效果.
            过渡效果一般发生在 鼠标指针浮动到元素身上时候发生.
            Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition 属性。
            Safari 支持替代的 -webkit-transition 属性。
            Internet Explorer 9 以及更早版本的浏览器不支持 transition 属性。
        
     
    6.transform 属性
        元素 在 2d/3d层面 的转换. 其中x,y,z皆为数值.
     
        none
            默认值. 不进行转换.
     
        matrix(n,n,n,n,n,n)
            2d转换. 使用六个值的矩阵. (md..矩阵咋算 ..)
     
        matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)
            3d转换. 使用十六个值的 4*4矩阵.
     
        translate(x,y)
            2d转换.
     
        translate3d(x,y,z)
            3d转换.
     
        translateX(x)
            x轴上的转换.
     
        translateY(y)
            y轴上的转换.
     
        translateZ(z)
            3d转换.z轴上的转换
     
        scale(x,y)
            2d缩放转换.
     
        scale3d(x,y,z)
            3d缩放转换.
     
        scaleX(x)
            x轴上的缩放转换.
     
        scaleY(y)
            y轴上的缩放转换.
     
        scaleZ(z)
            z轴上的3d缩放转换.
     
        rotate(angle)
            2d旋转. angle为旋转角度.
     
        rotate3d(x,y,z,angle)
            3d旋转.
     
        rotateX(x)
            绕x轴进行3d转换.
     
        rotateY(y)
            绕y轴进行3d转换.
     
        rotateZ(z)
            绕z轴进行3d转换.
     
        skew(x_angle,y_angle)
            x轴以及y轴进行倾斜转换.
     
        skewX(x)
            x轴进行倾斜转换.
     
        skewY(y)
            y轴进行倾斜转换.
     
        perspective(n)
            为3d转换元素定义透视视图(todo 什么鬼?没试出来..)
     
        JS语法 : object.style.transform="rotate(7deg)"
     
        补充:
            Internet Explorer 10、Firefox、Opera 支持 transform 属性。
            Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。
            Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。
            Opera 只支持 2D 转换。
     
     
     
    7.伪类
        其实,它是css选择器的一部分.抽离出来记录下.
     
        :before
            在该元素前面插入内容
     
        :after  
            在该元素后面插入内容
     
        :link   
            选择所有未被访问过的链接
     
        :visited    
            选择所有已被访问过的链接
     
        :active
            选择活动链接/元素
     
        :hover
            鼠标悬停状态的元素
     
        :focus
            选择 获得了焦点的元素
     
        :first-letter
            选择该元素的首个字母.
     
        :first-line
            选择该元素的第一行
     
        :first-child
            选择 所有符合 属于父元素的第一个该类型的子元素
     
        :lang(language)
            选择 带有指定字符开头的lang属性值 的每个元素
     
        :first-of-type
            选择 所有符合 属于父元素的 第一个 该类型的子元素
     
        :last-of-type
            选择 所有符合 属于父元素的 最后一个 该类型的子元素
     
        :only-of-type
            选择 所有符合 '属于父元素的该类型 有且仅有一个该类型子元素' 的该类型元素.
     
        :only-child
            选择 所有符合 '属于父元素的  有且仅有 一个子元素' 的 该类型元素.
     
        :nth-child(n)
            选择 所有符合 属于父元素的 第n个 该类型的子元素
     
        :nth-last-child(n)
            选择 所有符合 属于父元素的 倒数第n个 该类型的子元素
     
        :nth-of-type(n)
            选择 所有符合 属于父元素的 第n个 该类型的子元素
     
        :nth-last-of-type(n)
            选择 所有符合 属于父元素的 倒数第n个 该类型的子元素
     
        :last-child
            选择 所有符合 属于父元素的 最后一个 该类型的子元素
     
        :root
            选择文档的根元素. (那么对于html来讲,应该就是html了)
     
        :empty
            选取所有 不含子元素的 元素
     
        :target
            选取当前活动的元素. 实际上 和 active 是不同的.(todo 查下不同点)
            (测试 能感受到 :
                target 针对的是 目标活动元素
                    --该目标元素处于活动的原因可能是其他元素影响的,
                    比如实现锚点定位 后 活动的不是锚点本身,而是 锚点所指向的目标元素 ,
                active针对的是 该元素本身是否活动)
     
        :enabled
            选取每个 处于启用状态的该元素
     
        :disabled
            选取所有 处于禁用状态的该元素
     
        :checked
            匹配所有 处于勾选状态的该元素
     
        :not(selector)
            匹配所有 除了指定类型元素 的元素
     
        ::selection
            选择被用户选取的元素部分
     
     
     
    8.content 属性 (todo css文档和html文档中 该属性的值不一样 mmp ...)
        配合 :before 或 :after 使用. 来插入生成内容.
     
        string
            文本内容
     
        url
            资源存储位置,文本内容就是该资源.
     
        attr(X)
            该元素 某个指定属性的值 作为伪类元素所修饰的元素的插入内容.
     
        open-quote
            双引号 中 前面(即第一个)引号
     
        close-quote
            双引号 中 后面(即第二个)引号
     
        no-open-quote (不知道是什么鬼)
        no-close-quote (不知道是什么鬼)
     
        counter(..args)
        counter-increment
        counter-reset
     
        JS语法 : object.style.content = 'url(deep.wave)'
     
     
     
    9.定位属性
     
     
     
     
     
     
     
    10.文本属性
        color
            文本颜色
     
        direction
            文本书写方向
     
        letter-spacing
     
     
        line-height
     
     
        text-align
     
     
        text-decoration
     
     
        text-indent
     
     
        text-shadow
     
     
        text-transform
     
     
        white-space
     
     
        word-spacing
     
     
        text-justify
     
     
        text-outline
     
     
        text-overflow
     
     
        text-wrap
     
     
        word-break
     
     
        word-wrap
     
     
     
        unicode-bidi
     
     
     
     
     
     
    11. 字体
     
     
     
     
    .清除浮动
     
     
     
     
     
     
    .垂直居中
     
     
     
     
     
     
     
    .css单位
        css单位有两种 : 尺寸单位 和 颜色单位.
     
        尺寸单位:
            px
                一个像素点的大小.
     
            em
                (todo .. 重点补充)
     
            %
                百分比
     
            以及 in,cm,mm,ex,pc,pt .
     
     
        颜色单位:
            rgb(x,x,x)
                rgb值.
     
            rgb(x%,x%,x%)
                rgb百分比值.
     
            #rrggbb
                十六进制 值.
     
            实际上 还有很多比如
                rgba , 相比rgb增加了一个透明度选项.rgba(r,g,b,alpha)
                hsl(色调,饱和度,亮度), hsla(色调,饱和度,亮度,透明度). 其中色调0~360,饱和度和亮度为百分比,透明度为0~1.
     
     
    .flex -- 手机
     
     
     
     
     
     
    .calc , vh
     
     
     
  • 相关阅读:
    char 转string
    博客,记忆的图谱。
    history
    openstack Icehouse发布
    数据库常用命令
    nagios
    screen
    openstack 流量控制
    sublime 3
    磁盘类型
  • 原文地址:https://www.cnblogs.com/lmxxlm-123/p/11131907.html
Copyright © 2011-2022 走看看