CSS知识点大全

什么是CSS

CSS(Cascading Style Sheets) 层叠样式表 是用于修饰文档的(可以是标记语言HTML ,也可以是XML或者svn)的语言,可以将文档以优雅的新方式呈现给用户。

CSS声明(CSS declarations)
    key = value 键值对的形式
    backgronud-color: red;

选择器

1.标签选择器 
    div {
        声明块
    }
2.类选择器
    <div class="one">...</div>
    .one {
        ...
    }
3.id选择器
    <div id="one">..</div>
    #one {
        ...
    }
4.普遍选择器
    * {
        ...
    }

5.层次选择器
    后代选择器
    子代选择器
    相邻同胞选择器
    一般同胞选择器
6.多选择器
    多个选择器并列使用  使用,(逗号)分割
7.组合选择器
    多个选择器组合使用。  div.one 表示class为one的div元素。
8.属性选择器
    [atter] 选择具有atter属性的元素,无论该属性的值是什么
    [atter=val]  选择具有atter属性,并且atter的值为val的元素
    [atter~=val] 选择具有atter属性,并且atter的值之一为val的元素
    [atter^=val] 选择具有atter属性,并且atter值的开头为val的元素
    [atter$=val] 选择具有atter属性,并且atter值的结尾为val的元素
    [atter*=val] 选择具有atter属性,并且atter值包含val的元素。
9.伪类选择器
    表示子元素的
        :only-child
        :first-child
        :last-child
        :nth-child(n)
        :first-of-type
    元素状态有关的
        :link   未被访问的状态
        :visition   被访问过的状态
        :hover  鼠标悬停状态
        :active 鼠标按下未弹起状态
10.伪元素选择器
    ::before    在元素内容之前插入块元素
    ::after     在元素内容之后插入块元素
    ::first-letter 
    ::first-line

CSS 注释

/**/  注释不能嵌套

CSS如何作用到HTML

1.内部样式表
    <div style="color:red ...">
2.内联样式表
    <style>
        选择器 {
            ...
        }
    </style>
3.外部样式表
    link标签引入
        <link rel="stylesheet" href="style.css">

    @import url();方式引入

    link标签引入css和@import方式引入的区别:
        1.所属范围不同
            link标签属于html 除了可以引入CSS文件 还可以定义Rss等其他事务,@import属于Css范畴,只能导入css文件
        2.加载顺序不同
            link标签在加载HTML之前会先加载CSS文件 因此显示出的页面就是带有样式的效果
            @import在加载完HTML之后再装载css文件 因此如果网页大的时候会先显示无样式的页面 ,然后再出现网页的样式。
        3.兼容问题
            link是XHTML标签,无兼容问题,而@import是再css2.1版本提出的,低版本的浏览器不支持

级联

级联表明CSS规则的顺序问题 在所有选择器中某个选择器定义是否能够胜出(优先级)取决于三个元素:
    importance (重要性)  Specificity(特性值) Source order(源码顺序)
    importance(重要性)
        !import声明: 优先级最高,不计入特性值,因为它会改变级联的工作方式,所以一般不建议使用(会使调试变得困难)
    Specificity (特性值)
        声明在style属性中   1000     <div style="...."></div>
        id选择器            100
        类选择器、属性选择器、伪类选择器  10
        元素选择器、伪元素选择器          1
    Source order(源码顺序)
        如果特性值相同的情况下 ,按照就近原则 ,哪个靠下就选择哪个样式。

关于继承

css中有些规则将会默认被子元素继承,有些则不会。
    可被继承的属性:
        font:组合字体
        font-family:字体系列
        font-weight:字体粗细
        font-size:字体大小
        font-style:字体风格
        text-index:文本缩进
        text-align:文本水平对齐
        line-height:行高
        color:文本颜色
        visibility:元素可见性  (所有元素可以继承)
        cursor:光标属性  (所有元素可以继承)
    内联元素可以继承的属性
        字体系列属性
        除了text-index text-align之外的文本系列属性
    块级元素可以继承的属性
        text-index text-align

    不能继承的属性
        display: 规定元素生成的盒子的类型
        text-decoration:规定添加到文本的装饰
        text-shadow:文本阴影效果
        white-space:空白符的处理
        盒子模型的属性:width height margin padding border
        背景属性:background
        定位属性:float clear position top right bottom left min-width min-height max-width max-height overflow clip z-index

css提供了三个特殊值来处理继承问题
    1.inherit 继承父元素的样式
    2.initial 不继承,浏览器的默认样式
    3.unset 不设定 ,表现该规则本来的特性,如果该规则具有继承属性则继承,否则不继承。

文本样式

color :指定字体颜色
font-family:指定文字字体 
font-style:取值 normal(默认值)按照正常字体显示
                italic 斜体字体样式
                oblique 倾斜字体样式(模拟倾斜)
font-weight:设置字体粗细 normal 正常  bold 加粗  100-900数值表示  400正常  700加粗
text-transform: 设置或取消字体改变
            取值 none  防止任何改变
                 uppercase  将文本转换为大写
                 lowercase  将文本转换为小写
                 capitalize 将所有单词第一个字母转换为大写
                 full-width:转换为类似于一个等宽字体
text-decoration:设置或取消文本修饰
            取值 none   取消所有文本修饰
                 underline 为文本添加下划线
                 overline  为文本添加上划线
                 line-through 为文本添加删除线
text-shadows:设置或取消文本阴影
            语法:text-shadow:h-shadow v-shadow blur color;
            取值:none 取消所有阴影
                  h-shadow 必需 水平阴影位置  允许负值
                  v-shadow 必需 垂直阴影位置  允许负值
                  blur     可选 模糊的距离
                  color    可选 阴影的颜色
font-size:指定文字大小

列表样式

list-style-type:设置列表项标志类型
            取值:none 无标志
                  disc 
                  circle
                  square
                  decimal
                  lower-roman
                  upper-roman
                  decimal-leading-zero
list-style-position:设置列表标志出现的位置
            取值:  outside  列表项标志出现在主块框的外部
                    inside  列表项出现在主块框的内部
list-style-image:设置自定义列表项标志
            取值:  url()  指定图标位置
list-sttyle:列表样式速记写法
            取值: type image position
line-height:设置列表行高
            取值:绝对单位  相对单位

超链接的默认样式
    cursor:调整光标悬浮到链接上的时候光标的形状
    outline:调整环绕链接的框
    text-decoration:自定义设置列表项标志
    text-align:文本对齐方式

盒子

盒子的属性:
    width height  设置盒子的宽高  默认为盒子内容的高度
    padding 内边距
    border 盒子的边框 默认为0
    margin 盒子的外边距  ----> 相邻元素的边框会合并

## 默认盒子模型
    使用 box-sizing属性可以改变盒子的模型
        取值:  content-box 为默认盒子模型
                border-box 边框盒子模型

## 盒子背景样式-background
    background-color    设置背景颜色
            取值:  关键字
                    #十六进制数
                    rgb
                    rgba
                    hsl
                    hsla
    background-image    设置背景图片
            取值:  none 无背景图
                    url() 背景图片位置路径
    background-clip     设置背景的覆盖范围
            取值:  border-box 背景位于边框以内
                    padding-box 背景位于内边距以内
                    content-box 背景位于内容区
    background-origin   设定背景的起始位置
            取值;   border-box 背景图片从边框的外边缘开始绘制
                    padding-box 背景图片从内边距的外边缘开始绘制
                    content-box 背景图片绘制在内容区
    background-position 设置背景图片的初始位置
            取值:  关键字   坐标
    background-repeat   设置背景图片的重复方式
            取值:  repeat  重复 切割背景图片
                    space   空白分割背景图片 不切割
                    round   将背景图片压缩/拉伸 适应整个背景范围 不切割
                    no-repeat 不重复
    background-attachment   设置背景图片的固定点
            取值:  fixed   背景固定在视口上
                    scroll  背景固定在自身元素上
                    local   背景固定在自身元素的内容上
    background-size     设置背景的大小
            取值:  cover   背景铺满整个屏幕 (尽量不使用大图覆盖小范围)
    background          背景设置的速记写法
            取值: attachment clip color image position repeat

    ## 边框盒子样式
        border-width    为元素指定边框的宽度
            取值:  关键字 thin medium thick
                    单位 px em
        border-style    为元素指定边框的样式
            取值:   none   不设置
                    hidden  隐藏
                    dotted  显示一系列的点
                    dashed  显示一系列的小线段
                    solid   显示一条单一的实心直线
                    double  显示两条实心直线
                    groove  边框雕刻效果(与ridge相反)
                    ridge   与groove相反
                    inset   嵌入式边界框(与outset相反)
                    outset  突出的边界框
        border-color    为元素指定边框颜色
            取值:  关键字
                    十六进制
                    rgb 
                    rgba
                    hsl
                    hsla
        border-radius   为元素指定圆角边框的半径
            取值:  绝对值 px mm cm
                    相对值 em rem
        border-image    为元素设置边框背景
            border-image-source     用于加载作为边框的图片
            border-image-slice      用于切割边框图片
            border-image-repeat     用于设置边框图片重复方式
        border          边框相关属性的速记写法

## 表格样式 table
    table-layout    指定显示表格的盒子 行 列的算法
            取值:  auto 默认值  table 和 cell的宽度取决于包含在其中的内容
                    fixed   table 的宽度以及列的宽度取决于表格的第一行各列设置的宽度
    border-collapse 指定表格的边框是合并还是分开
            取值:  separate    (默认值) 分开模式 表示相邻的两个格子都有独立边框
                    collapse     合并模式,表示相邻的两个格子共享边框
    caption-side    指定caption坐落在表格的那个位置上
            取值:  top     标题位于表格的上方
                    bottom  标题位于表格的下方

布局

1.默认文档流(Nomal layout flow)
    默认文档流就是对页面布局不加任何的修饰 元素自动的布局方式
    特点:
        元素在页面中的显示顺序与元素在代码中出现的顺序一致
        块级元素独占一行空间 宽度默认父级盒子的100% 高度由其内容决定
        行内元素与其他元素共享一行空间,宽高由其内容决定。

2.浮动布局(float)
    浮动布局的主要用法是让块级元素在一行显示(列级布局),或者让文字在图片周围显示
    float取值:
        left    让左浮动元素
        right   向右浮动元素
        none    默认值 不浮动
        inherit 浮动方式继承父元素
    
    清除浮动(clear)
        1.伪元素清除浮动
        .clearfix:after {
            content:"";
            display:block;
            clear;both;
            overflow:hidden;
        }
        2.给浮动元素和非浮动元素之间添加块级元素。
        3.父元素添加overflow:hidden; (不推荐)

3.定位布局(position)
    取值:
        static  静态定位 :是所有元素的默认定位方式,就是将元素定位在默认文档流中。
        relative 相对定位  对于相对属性 它不会脱离默认文档流 会保留原有的位置,可以通过top bottom left right 属性来确定元素的最终位置,相对于元素本来的位置进行移动。
        absolute 绝对定位  绝对定位的元素会脱离默认文档流,漂浮在原有位置的上方, 不保留原有的位置  默认情况下的包含块是html,如果父元素中有定位元素,那么包含块就是拥有定位的元素。  两个有绝对定位的元素叠加在一起的时候,可以使用z-index属性来改变他们出现的顺序(z-index的取值为number,值越大越靠上)
        fixed 固定定位  固定定位和绝对定位相似 但是他们的包含块不同 固定定位的元素是相对于浏览器的视口,同样可以使用top bottom left right属性来进行最终位置的调整 并且不会随着滚动条的滚动而滚动

        sticky 粘性定位 ,相当于relative和fixed的结合 ,可以通过top right bottom left属性来进行设置距离   

4.伸缩盒布局(flexbox)
    display:flex;
        当前元素就会变成伸缩盒并且所有子元素自动成为父元素的一个成员项(item) 
        子元素会有浮动的效果
    给父元素设置:
        flex-direction:row(列布局) / column(行布局)
        flex-wrap:wrap; 自动换行
    ---->简写
        flex-flow:row wrap;
        align-items(在y轴上的位置)   
                取值:stretch (默认值)将盒子在y轴上进行拉伸,直至适应整个伸缩盒子容器
                    center   盒子在y轴中心显示
                    flex-start  在伸缩盒子开始位置显示   盒子顶部
                    flex-end      在伸缩盒子结束位置显示  盒子底部
        justify-content (在x轴上的位置)
                取值:flex-start(默认值)在主轴的开始显示
                      flex-end   在主轴的结束位置显示
                      center     在主轴的中心显示
                      space-around  填充空白自适应在主轴中心显示
                      space-between 填充空白自适应在主轴中心显示,但是首尾两个元素距离容器没有空白。
    给子元素设置:
        flex:number; 
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
        <!-- 1.将父盒子div设置为伸缩盒 -->
        div {
            display:flex;
        }
        <!-- 3个子元素p各占一份--> 将父盒子平分给3个子元素p -->
        p {
            flex:1;
        }
        <!-- 第二个子元素p占两份--->相当于将父盒子div平分为四分第一、第三个子元素p各占一份 第二个子元素p占两份。 -->
        p:nth-child(2) {
            flxe:2;
        }


如何让子元素在父元素中水平垂直居中
    1.子元素为行内元素
        text-align:center;
        line-height:height;
    2.子元素为块级元素
        给父元素设置:
            display:flex; <!--设置伸缩盒-->
            justify-content:center; <!--水平居中-->
            align-items:center;        <!--垂直居中-->
        给父元素设置 display:flex;
                给子元素直接设置:margin:auto;
        给父级元素设置定位属性,子元素设置绝对定位
                将子元素的top:50%; left:50%;
                再配合使用margin-top:-height/2; margin-left:-width/2;

动画 (animations)

animations是css3中的一个模块 ,使用 @keyframes 定义如何随着时间的移动改变css的属性值,可以通过指定持续时间 ,重复次数,如何重复来控制关键帧的行为。
1.设置动画轨迹
    @keyframes move {
        from{
            //设定元素的开始样式
        }
        to{
            //设定元素的结束样式
        }
    }

    @keyframes move {
        0%{
            //设定开始样式
        }
        50%{}
        60%{}
        100%{
            //设定结束样式
        }
    }
2.应用动画
    div {
        animation-name:move;  绑定@keyframes中定义的名字
    }
    animation-duration:;  设置动画完成一次循环所需的时间 默认值为0s。
    animation-iteration-count    设置动画重复的次数 默认值为1,不能为负数    infinite表示无限循环
    animation-delay         设置动画延迟时间 默认值为0s
    animation-direction     设置动画方向
        取值:normal    默认值 正常播放
              reverse   播放帧的顺序反转,播放的起点为帧的结束
              alternate 交替反转播放
              alternate-reverse     交替反转播放 第一次播放时需要反转播放帧。
    animation-fill-mode     设置填充模式
        取值:  none    默认值
                forwards    保留执行期间遇到的最后一个关键帧所设置的计算值
                backwards   保留执行期间所遇到的第一个关键帧所设置的计算值
    animation-timing-function   设置动画的速度曲线
        取值:   ease    默认值
                ease-in 先慢后快
                ease-out    先快后慢
                ease-in-out 先慢后快再慢
                linear  线性增长(匀速)
                steps(num) 设置多少步完成一次循环

## Transitions
    css transitions提供了更改css属性时控制动画速度的方法。
    取值 : delay   设置何时开始
            duration    设置持续时间
            timing-funtion  设置动画速度
    语法:
        div {
            transitions:<property> <duration> <timing-function> <delay>;
        }
        property:指定过度属性  (transitions-property)  取值all可以设置选择所有属性
        duration:指定过度时长 (transitions-duration)
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新猿忆码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值