CSS看着一篇就够了(二)

简介: CSS看着一篇就够了

通配符选择器


//格式:
*{
//属性:值;
}
//选择全部标签,用*号表示;
//示例:
* { 
font-size:20px;
}
//元素
<div id='boot'>
兄弟抱一下
</div>
<h1>风吹雨打</h1>
<p通用选择器</p>

伪类选择器


:active a:active  选择活动链接。
::after p::after  在每个 <p> 的内容之后插入内容。
::before  p::before 在每个 <p> 的内容之前插入内容。
:checked  input:checked 选择每个被选中的 <input> 元素。
:default  input:default 选择默认的 <input> 元素。
:disabled input:disabled  选择每个被禁用的 <input> 元素。
:empty  p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。
:enabled  input:enabled 选择每个启用的 <input> 元素。
::first-letter  p::first-letter 选择每个 <p> 元素的首字母。
::first-line  p::first-line 选择每个 <p> 元素的首行。
:focus  input:focus 选择获得焦点的 input 元素。
:fullscreen :fullscreen 选择处于全屏模式的元素。
:hover  a:hover 选择鼠标指针位于其上的链接。
:in-range input:in-range  选择其值在指定范围内的 input 元素。
:indeterminate  input:indeterminate 选择处于不确定状态的 input 元素。
:invalid  input:invalid 选择具有无效值的所有 input 元素。
:lang(language) p:lang(it)  选择 lang 属性等于 "it"(意大利)的每个 
<p> 元素。
:link a:link  选择所有未访问过的链接。
:not(selector)  :not(p) 选择非 <p> 元素的每个元素。
:optional input:optional  选择不带 "required" 属性的 input 元素。
:out-of-range input:out-of-range  选择值超出指定范围的 input 元素。
::placeholder input::placeholder  选择已规定 "placeholder" 属性的 
input 元素。
:read-only  input:read-only 选择已规定 "readonly" 属性的 input 
元素。
:read-write input:read-write  选择未规定 "readonly" 属性的 
input 元素。
:required input:required  选择已规定 "required" 属性的 input 元素。
:root :root 选择文档的根元素。
::selection ::selection 选择用户已选取的元素部分。
:target #news:target  选择当前活动的 #news 元素。
:valid  input:valid 选择带有有效值的所有 input 元素。
:visited  a:visited 选择所有已访问的链接。

CSS三大特性


层叠性


给父元素设置属性,所有后代元素也可以使用,这就叫做继承性。

//并不是所有的属性都可以继承,只有以
1.color开头
2.line开头
3.font-开头
4.text-开头
才会进行继承
继承的属性会在开发者工具上显示,选中当前元素,上面有 linhetied form div 就是说当前属性继承来自于div
高亮的就是继承的,灰色的或者被划掉的就是未被继承的属性
//特殊元素
a标签的字体颜色和下划线不会被继承属性所影响
h标签的字体大小不会被继承属性所影响

继承性


多个选择器给元素设置相同的属性,如果选择器权重相同则后面的属性会把前面的属性覆盖掉,默认选择优先级高选择器的样式;

p{
color:red;
}
#pp{
color:blue;
//这个生效因为他的层级高
}
<p id='pp'>继承性</p>

优先级


当多个选择器选中一个元素并给其赋值上相同的属性,如何层叠就由优先级确定;

优先级排序从大到小:id选择器>类选择器>元素选择器>通配符选择器>继承属性>浏览器默认属性(最小的)

1.继承的话是谁离当前选中的标签近谁的优先级就高;
例子:
li{
color:blue;
//当前的li离p比较近,所以就优先继承li的,所以li的权重就高
}
ul{
color:red;
}
<ul>
<li>
<p> 优先级</p>
</li>
</ul>
2. 优先级的选择器赋值相同的属性,只会选择最后的属性;

优先级最高: !important


用于提升选择器中的某个属性,将指定属性的优先级提至最高,请注意:important只能直接选中,不能间接选中(指的是继承)

通配符选择器也是可以直接选中的

p{
color:red !important;
}
<p>优先级最高</p>

权重计算(请忘掉权重,记住优先级)


因为20个元素选择器都顶不过1个类选择器,原因是因为20个元素选择器的权重是0,0,0,20,但是类选择器的权重是0,0,1,0)

只有选择器是直接选中元素的才需要进行计算权重,当权重都是一样时,会选择最后书写的选择器;

选择器 权重
继承以及浏览器默认 0,0,0,0
通配符选择器和子选择器以及兄弟选择器等 0,0,0,0
元素选择器和伪元素选择器 0,0,0,1
类选择器和伪类选择器以及属性选择器 0,0,1,0
id选择器 0,1,0,0
内联样式 1,0,0,0
!important 最高

权重计算公式:

权重 = 选择器 * 个数;权重可以累加,但是权重不作为最后样式生效的最后依据

权重计算只算权重不为0的选择器,例如id选择器,类选择器,元素选择器20个元素选择器,都超不过一个类选择器

CSS盒子模型


盒子模型是指:外边距+边框+内边距+内容高度或宽度

内容宽度和高度是指:内容高度或宽度

元素高度或高度是指:边框+内边距+内容高度或宽度

元素空间的高度或宽度是指:外边距+边框+内边距+内容高度或宽度

CSS过渡(transition)


给元素加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。

transition-property:当前需要过渡的属性(多个属性以,号隔开);
transition-duration:过渡动画需要执行的秒数(多个属性执行动画时长以,号隔开);
transition-delay:延迟几秒后开始执行动画;
transition-timing-function:控制过渡动画的速度;
div{
width:300px;
height:20px;
background:red;
transition-property:width,background;
//从300到800需要2秒完成
transition-duration:2s,2s;
//延迟俩秒后开始执行动画
transition-delay:3s;
}
div:hover{
//过渡完成的属性在hover里面写
width:800px;
background:green;
}

简写


transition:执行过渡的CSS属性  执行动画的秒数 动画运动速度(可以省略) 延迟几秒开始执行(可以省略);(多个属性书写用逗号隔开)

transition:width 2s  linear 1s,background 2s  ;
//如果过渡属性很多(过渡时间和速度以及延时时间都一样的情况下)可以采用all的
//方式,当前元素的所有过渡属性都执行过渡,且都是5秒执行时间
transition:all 5s;

过渡注意点


三要素

1.1必须要有属性发生变化

1.2 必须告诉系统哪个属性需要执行过渡效果

1.3 必须告诉系统过渡效果持续时长

过渡书写思路1.1不要管过渡先编写基本样式

1.2修改我们认为需要修改的属性

1.3在给修改的属性添加过渡即可

CSS2D转换(transform)


能够对元素进行旋转,移动,拉伸,拉长或缩放;

2d转换会修改元素的坐标系

旋转(rotate)


//代表多少度,10deg代表10度
transform:rotate(10deg);

移动(translate)


//第一个值代表x轴,第二个值代表y轴
transform:translate(100px,0);

放大或缩放(scale)


取值如果是1则不变,代表一倍,可以小于1则缩小或大于1则放大,如果俩个参数一样可以简略成一个

//第一个值代表x轴放大或缩小,第二个值代表y轴放大或缩小
transform:scale(1.5,1.5); //1.5是倍数

简写


//多个属性用空格隔开
transform:scale(1.5) translate(100px,0); 

形变中心点(transform-origin)


默认元素旋转是按照自己的中心点进行旋转的,可以通过形变中心点进行修改旋转的中心点;

取值有三种:
1. px
2.百分比
3.关键字 left  top
//第一个值是X轴的位置,第二个值是Y值的位置
transform-origin:100px 20px; 

旋转轴向


默认元素旋转轴向是Z轴,旋转轴向有三个方向X轴Y轴Z轴;

//在rotate后面加上自己想旋转的轴向就行了,默认是Z轴
//写了之后必须加上透视属性才能明显起来(透视属性只能加给旋转元素的上级,
//默认父级元素)
transform:rotateX(10deg);
transform:rotateY(10deg);

透视(perspective)


调整Z轴的视角,值越小越近(效果越明显),值越大越远(效果不明显);

perspective: 距离值;


相关文章
|
前端开发
我用 CSS 告诉你,我每天是怎么度过的~
我用 CSS 告诉你,我每天是怎么度过的~
|
前端开发
Css进阶>>Css3让你玩的开心哦。(一)
Css进阶>>Css3让你玩的开心哦。(一)
79 0
|
前端开发
Css进阶>>Css3让你玩的开心哦。(二)
Css进阶>>Css3让你玩的开心哦。(二)
86 0
|
前端开发
纯css爱心代码-最近超级火的打火机与公主裙中的爱心代码(简易版)
最近打火机与公主裙中的爱心代码超级火,看着特别心动,让俺用css来写个简易版!!!
236 1
|
前端开发 索引 容器
学习css,这一篇足矣(二)
学习css,这一篇足矣
113 0
学习css,这一篇足矣(二)
|
编解码 前端开发 JavaScript
学习css,这一篇足矣(三)
学习css,这一篇足矣
143 0
学习css,这一篇足矣(三)
|
Web App开发 前端开发 Java
学习css,这一篇足矣(一)
学习css,这一篇足矣
133 0
学习css,这一篇足矣(一)
|
Web App开发 编解码 前端开发
我明白了,玩转前端面试CSS篇
前端面试 无非就是 CSS + JS + 框架 + 工具 + 源码 + 算法 + 职业规划 + 实战,这篇文章以及接下来的文章也是围绕这些内容依次展开。 说到CSS,它现在已经非常的强大,已经支持了许多PS一般的功能了,但是我并不会去说那些部分东西,还是说说通用的或者基础的部分。 首当其冲的是 BFC、弹性布局、垂直居中、移动端/响应式、css预处理、三角和缩放、大屏自适应。
404 0
我明白了,玩转前端面试CSS篇
|
前端开发 数据可视化