# css世界
css的世界诞生就是为图文信息展示服务的
# 块级元素
block
实际由外在的“块级盒子”和内在的“块级容器盒子”组成,
inline-block
外在的“内联盒子”和内在的“块级容器盒子”组成,值为 inline 的元素则内外均是“内联盒子”
width-height作用在容器盒子
在页面丢一个div进去他就会像水一样铺满容器
页面元素主要为
# 常用a t规则及使用示例
# @charset
用于提示css文件使用的字符串编码方式,它如果被使用,必须出现在最前面。这个规则只是在给出语法解析阶段前使用,并不影响页面上展示效果。
@charset "utf-8"
# @import
用于引入一个css文件,除@charset规则不会被引入外,可以引入一个文件的全部内容。
@import "mystyle.css";
@import url("mystyle.css");
@media
media query 使用规则,它能够对设备的类型进行一些判断,在media的区块中,是普通规则列表。
@media print {
body {
font-size: 10pt;
}
}
# @page
page用于分页媒体访问网页时的表现设置,页面是一种特殊的盒模型结构,除了页面本身,还可以设置它周围的盒。
@page {
size: 8.5in 11in;
margin: 10%;
@top-left {
content: "Hamlet";
}
@top-right {
content: "Page " counter(page);
}
}
# @counter-style
counter-style产生一种数据,用于定义列表项的表现。
@counter-style triangle {
system: cyclic;
suffix: "";
}
# @key-frames
key-frames产生一种数据,用于定义动画关键帧。
@keyframes diagonal-side {
from {
left: 0;
top: 0;
}
to {
left: 100px;
top: 100px;
}
}
# @fontface
fontface用于定义一种字体,iconfont技术就是利用这个特性来实现。
@font-face {
font-family: Gentium;
src: url(http://xxxx);
}
p {
font-family: Gentium, serif;
}
# @support
support检查环境的特性,它与media比较类似。
# @namespace
用于跟xml命名空间配合的一个规则,表示内部的css选择器全都带上特定命名空间。
# @viewport
用于设置视口的一些特性,不过兼容性目前不是很好,多数时候被html的meta代替。
# 盒模型
ie盒模型或怪异盒模型(box-sizing:border-box)——content的内容包括padding和border和content
w3c盒模型(box-sizing:content-box)——width宽度只包含元素的content宽度,总宽度 = width + padding(左右) + border(左右)
# BFC(块级格式上下文)
是一个独立的渲染区域,BFC内部元素与外部元素互相隔离
触发条件
- 根元素
- position:fixed/absolute(脱离文档流)
- float(脱离文档流)
- ovevflow不为visible
- ie浏览器通过zoom:1
通常用来
- 清除浮动
- 自适应两栏布局(左边浮动,右边设置overflow为hidden触发BFC)
- 阻止
margin
重叠
# 居中布局
水平居中
- 行内元素:text-align:center
- 块级元素:margin:0 auto
- flex:justify-content:center
- absolute-transform
垂直居中
- lineheight:height
- absolute-transform
- flex:align-content:center
- table
垂直水平居中
- absolute-transform
- flex + justify-content + align-items
4.选择器优先级
!important>行内样式(style)>id#>class.>*>全局样式>继承
# 去除浮动
- 使用BFC
- 增加伪元素(:after:clear:both)
- 父级元素设置行高
# css3新属性
边框
border-radius:圆角边框,border-radius:25px
box-shadow:边框阴影,box-shadow: 10px 10px 5px#888888
border-image:边框图片,border-image:url(border.png) 30 30 round;
文本效果
text-shadow:向文本应用阴影,可以规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色
word-wrap:允许文本进行换行。word-wrap:break-word
转换(transform)
translate():元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数。 transform: translate(50px,100px);
rotate():元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。transform: rotate(30deg);
scale():元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数。transform: scale(2,4);
skew():元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数。transform: skew(30deg,20deg);
matrix(): 把所有 2D 转换方法组合在一起,需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。transform:matrix(0.866,0.5,-0.5,0.866,0,0);
过度(transition)
transition-property :执行动画对应的属性,例如 color,background 等,可以使用 all 来指定所有的属性。
transition-duration:过渡动画的一个持续时间。
transition-timing-function:在延续时间段,动画变化的速率,常见的有:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier 。
transition-delay:延迟多久后开始动画。
简写为:transition: [
|| || || ]; 动画(animation)
# 伪类选择器
- +:获取当前元素的相邻的满足条件的元素
- ~:获取当前元素满足条件的兄弟元素
- :first-child :选取属于其父元素的首个子元素的指定选择器
- :last-child :选取属于其父元素的最后一个子元素的指定选择器
- :nth-child(n) : 匹配属于其父元素的第 N 个子元素,不论元素的类型
- :nth-last-child(n) :选择器匹配属于其元素的第 N 个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数。 n 可以是数字、关键词或公式,even偶数,odd奇数
- :first-of-type :选择属于其父元素的首个元素的每个元素
- :last-of-type :选择属于其父元素的最后元素的每个元素
- :nth-of-type :选择属于其父元素第n个元素的每个元素
# 伪元素
- ::before
- ::after
- ::first-letter——选中块级元素第一行的第一个字母,最前面为图片或内联的表格时会干扰选择
- ::first-line——选中块级元素中第一行。
- ::selection——选中被用户高亮选择的部分;可以不配合其他元素使用,只有一小部分的 CSS 属性可用于此选择器