css小结

作者: 熊少年 | 来源:发表于2018-08-05 16:10 被阅读39次

CSS选择器和写法

1 常用选择器--为元素绘画效果
ID:选择器,class选择器,标签选择器

ID写法  #test {
width: 100px;
height: 100px;
background-color: lightgreen;
}

class写法  .test {
width: 100px;
height: 100px;
background-color: lightgreen;
}

标签写法  div {
width: 100px;
height: 100px;
background-color: lightgreen;
}

2 伪类选择器--CSS伪类是用来添加一些选择器的特殊效果。

a:link {color:#FF0000;} /* 未访问的链接 /
a:visited {color:#00FF00;} /
已访问的链接 /
a:hover {color:#FF00FF;} /
鼠标划过链接 /
a:active {color:#0000FF;} /
已选中的链接 */
:lang 伪类使你有能力为不同的语言定义特殊的规则

注意: 在CSS定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。伪类的名称不区分大小写。

3 子类选择器

p::nth-child(an+b)

1 li:nth-child(3){background:blue;}
2 li:nth-child(3n){background:blue;}
3 li:nth-child(an+b) 与 :nth-child(an-b)
4 :nth-child(odd) 与 :nth-child(even) 奇数(odd)与(2n+1)结果一样;偶数(even)与(2n+0)及(2n)结果一样。

4 伪元素

p:before;p:after

5 选择器优先级
(1) 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
(2) 作为style属性写在元素内的样式
(3) id选择器
(4) 类选择器
(5) 标签选择器
(6) 通配符选择器
(7) 浏览器自定义或继承
总结排序:!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性
同一级别中后写的会覆盖先写的样式
权值
内联样式表的权值为 1000
ID 选择器的权值为 100
Class 类选择器的权值为 10
HTML 标签选择器的权值为 1

CSS盒模型

box-sizing: content-box;
指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度。元素的填充和边框布局和绘制指定宽度和高度除外
1 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
2总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

box-sizing: border-box;
指定宽度和高度(最小/最大属性)确定元素边框box。也就是说,对元素指定宽度和高度包括padding和border的指定。内容的宽度和高度减去各自双方该边框和填充的宽度从指定的"宽度"和"高度"属性计算

CSS常用的布局

1 块级元素:div p form ul ol li 等(块级元素独自占一行且宽度会占满父元素宽度);
A 居中对起
a知道宽度和高度

.box {
        height: 500px;
        width: 500px;
        border: 1px saddlebrown solid;
    }

    .test {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
        margin-top: 200px;
        margin-left: 200px;
    }

b不知道宽度和高度
flex居中

  .box {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 50%;
        height: 50%;
        border: 1px saddlebrown solid;
    }

    .test {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

transform居中

.box {
        width: 500px;
        height: 500px;
        border: 1px saddlebrown solid;
        position: relative;
    }

    .test {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

margin居中

   .box {
        width: 500px;
        height: 500px;
        border: 1px saddlebrown solid;
        position: relative;
    }

    .test {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        top: 0;
        margin: auto;
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

c table居中

    .box {
        width: 500px;
        height: 500px;
        display: table-cell;
        border: 1px saddlebrown solid;
        vertical-align: middle;
    }

    .test {
        margin: auto;
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

2 行内元素:span strong em等(行内元素不会独占一行,没有宽度和高度);
水平居中:text-align:center
ul水平居中:加
display:table;
margin:0 auto;
此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
垂直居中:line-height:父元素的height

CSS float闭合

.box {
border: 1px saddlebrown solid;
}

    .test1 {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
        float: left;
    }

    .clearfix:after {
        content: '.';
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }
    .clearfix:after {
        content:”.”;
        display:block;
        height:0;
        clear:both;
        visibility:hidden;
    }

给需要闭合的div加上 class=”clearfix” 即可

<div class="box clearfix">
<div class="test1 "></div>
</div>

CSS 动画

一在CSS 3引入Transition(过渡)这个概念之前,CSS是没有时间轴的。也就是说,所有的状态变化,都是即时完成。
1Transition 加上时间

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        background-color: black;
        width: 200px;
        height: 300px;
    }

    .box {
        transition: 2s;
    }

2 Transition 确认范围

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        background-color: black;
        width: 200px;
        height: 300px;
    }

    .box {
        transition: 2s height;
    }

3 Transition,可以分别指定多个属性。

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        background-color: black;
        width: 200px;
        height: 300px;
    }

    .box {
        transition: 2s height, 5s width, 3s background-color;
    }

4 Transition,添加延迟参数。

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        background-color: black;
        width: 200px;
        height: 300px;
    }

    .box {
        transition: 2s height, 5s width,5s 3s background-color;
    }

5 Transition,添加动画函数。
(1)linear:匀速

(2)ease-in:加速

(3)ease-out:减速

(4)cubic-bezier函数:自定义速度模式

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        background-color: black;
        width: 200px;
        height: 300px;
    }

    .box {
        transition: 2s height, 5s width,5s 3s background-color ease;
    }

6 Transition 完整写法

    .box {
        transition-property: height;
        transition-duration: 1s;
        transition-delay: 1s;
        transition-timing-function: ease;
        /*transition: 2s height cubic-bezier(.83,.97,.05,1.44), 5s width,5s 3s background-color ease;*/
    }

7 Transition使用注意
(1)目前,各大浏览器(包括IE 10)都已经支持无前缀的transition,所以transition已经可以很安全地不加浏览器前缀。
(2)不是所有的CSS属性都支持transition,完整的列表查看这里,以及具体的效果
(3)transition需要明确知道,开始状态和结束状态的具体数值,才能计算出中间状态。比如,height从0px变化到100px,transition可以算出中间状态。但是,transition没法算出0px到auto的中间状态,也就是说,如果开始或结束的设置是height: auto,那么就不会产生动画效果。类似的情况还有,display: none到block,background: url(foo.jpg)到url(bar.jpg)等等。
8 Transition使用局限
(1)transition需要事件触发,所以没法在网页加载时自动发生。
(2)transition是一次性的,不能重复发生,除非一再触发。
(3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
(4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。
二CSS Animation
1 CSS Animation需要指定动画一个周期持续的时间,以及动画效果的名称。

    @keyframes changeBG {
        0% {
            background: #c00;
        }
        50% {
            background: orange;
        }
        100% {
            background: yellowgreen;
        }
    }

    .box {
        width: 100px;
        height: 100px;
        background-color: lightgreen;
    }

    .box:hover {
        animation: 1s changeBG;
    }

2 指定动画播放次数(加入infinite关键字,可以让动画无限次播放)

    .box:hover {
        animation: 1s changeBG 3;
    }

3animation-fill-mode还可以使用下列值。确定动画结束时的状态
(1)none:默认值,回到动画没开始时的状态。
(2)backwards:让动画回到第一帧的状态。
(3)forwards表示让动画停留在结束状态
(4)both: 根据animation-direction(见后)轮流应用forwards和backwards规则。

    .box:hover {
        animation: 1s changeBG 3 forwards;
    }

4animation-direction指定了动画播放的方向(最常用的值是normal和reverse)

    .box:hover {
        animation: 1s changeBG 3 forwards reverse;
    }

5完整写法

    .box:hover {
        animation-name: rainbow;
        animation-duration: 1s;
        animation-timing-function: linear;
        animation-delay: 1s;
        animation-fill-mode:forwards;
        animation-direction: normal;
        animation-iteration-count: 3;
    }

CSS兼容性

主流浏览器css兼容问题的总结

-webkit- ,针对safari,chrome浏览器的内核CSS写法
-moz-,针对firefox浏览器的内核CSS写法
-ms-,针对ie内核的CSS写法
-o-,针对Opera内核的CSS写法

相关文章

  • 05 常见bug处理 (必会知识点)

    html:全栈记03【html小结】 - 简书 css:全栈记04【css小结】 - 简书 常见bug处理: 小知...

  • css小结

    CSS选择器和写法 1 常用选择器--为元素绘画效果ID:选择器,class选择器,标签选择器 ID写法 #tes...

  • CSS小结

    CSS和CSS3看了一遍差不多了,查漏补缺,小结一下一些抠抠索索的细节。 每天更新一点。 ------------...

  • CSS小结

    1.注意事项 1)多个单词加引号2).+类名,不能数字开头3)#+id名4)内联元素要使用块元素的属性,设置dis...

  • css小结

    css选择样式 css基本语法 行内样式:开始标签内添加style标签,如: 内容 选择器{属性:值;属性:值} ...

  • CSS小结

    1 概述 CSS(Cascading Style Sheets)层叠样式表 用于定义如何显示HTML元素 1.1产...

  • CSS小结

    1.伪元素有哪些: first-letterfirst-linebeforeafter应用:给元素添加边框动画,清...

  • css知识小结

    前言:divcss两个html标签 1 div:块标签 标签内部的内容会换行 默认自己独占 2 span:行...

  • 04 css小结

    【前言】 css:层叠样式表(Cascading Style Sheets),发展历程不过多阐述,此小结还是基于c...

  • CSS学习小结

    CSS是什么? 如果说HTML是骨架,那CSS就是衣服。穿上了衣服的CSS,一下子变得美丽动人了起来。无论是淡妆的...

网友评论

      本文标题:css小结

      本文链接:https://www.haomeiwen.com/subject/tbrbvftx.html