02-CSS进阶提高

一、CSS使用技巧

1.1、精灵图使用

(1)、原理

(2)、示例

.box1 {
	width: 60px;
	height: 60px;   
	margin: 100px auto;
	background: url(images/sprites.png) no-repeat   -182px 0;
}

1.2、字体图标使用

(1)、原理

(2)、示例

/* 字体声明 */
@font-face {
	font-family: ‘icomoon‘;
	src:  url(‘fonts/icomoon.eot?p4ssmb‘);
	src:  url(‘fonts/icomoon.eot?p4ssmb#iefix‘) format(‘embedded-opentype‘),url(‘fonts/icomoon.ttf?p4ssmb‘) format(‘truetype‘),url(‘fonts/icomoon.woff?p4ssmb‘) format(‘woff‘),url(‘fonts/icomoon.svg?p4ssmb#icomoon‘) format(‘svg‘);
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
span {
	font-family: ‘icomoon‘;
	font-size: 100px;
	color:pink;
}

1.3、CSS三角制作

(1)、原理

(2)、示例

.box2 {
	width: 0;
	height: 0;
	border: 50px solid transparent;
	border-left-color: pink;
}

1.4、表单轮廓和防止拖拽

(1)、示例

input, textarea {
	/* 取消表单轮廓 */
	outline: none;
}
textarea {
	/* 防止拖拽文本域 */
	resize: none;
}

1.5、鼠标样式

(1)、示例

<ul>
	<li style="cursor: default;">我是默认的小白鼠标样式</li>
	<li style="cursor: pointer;">我是鼠标小手样式</li>
	<li style="cursor: move;">我是鼠标移动样式</li>
	<li style="cursor: text;">我是鼠标文本样式</li>
	<li style="cursor: not-allowed;">我是鼠标禁止样式</li>
</ul>

1.6、图片和文字对齐方式

(1)、示例

img {
	vertical-align: middle;
}
baseline 默认。元素放置在父元素的基线上。
sub 垂直对齐文本的下标。
super 垂直对齐文本的上标
top 把元素的顶端与行中最高元素的顶端对齐
text-top 把元素的顶端与父元素字体的顶端对齐
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。
text-bottom 把元素的底端与父元素字体的底端对齐。
length
% 使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit 规定应该从父元素继承 vertical-align 属性的值。

1.7、溢出文字隐藏

(1)、单行

div {
	width: 150px;
	height: 80px;
	background-color: pink;
	margin: 100px auto;
	white-space: nowrap;/* normal:换行显示。nowrap:单行显示 */
	overflow: hidden;
	text-overflow: ellipsis;/* 3. 文字溢出的时候用省略号来显示 */
}

(2)、多行

div {
	width: 150px;
	height: 65px;
	background-color: pink;
	margin: 100px auto;
	overflow: hidden;
	text-overflow: ellipsis;        
	display: -webkit-box;/* 弹性伸缩盒子模型显示 */          
	-webkit-line-clamp: 3;/* 限制在一个块元素显示的文本的行数 */          
	-webkit-box-orient: vertical;/* 设置或检索伸缩盒对象的子元素的排列方式 */
}

1.8、CSS初始化

/* 把我们所有标签的内外边距清零 */
* {
    margin: 0;
    padding: 0
}
/* em 和 i 斜体的文字不倾斜 */
em,
i {
    font-style: normal
}
/* 去掉li 的小圆点 */
li {
    list-style: none
}

img {
    /* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
    border: 0;
    /* 取消图片底侧有空白缝隙的问题 */
    vertical-align: middle
}

button {
    /* 当我们鼠标经过button 按钮的时候,鼠标变成小手 */
    cursor: pointer
}

a {
    color: #666;
    text-decoration: none
}

a:hover {
    color: #c81623
}

button,
input {
    /* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */
    font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
}

body {
    /* CSS3 抗锯齿形 让文字显示的更加清晰 */
    -webkit-font-smoothing: antialiased;
    background-color: #fff;
    font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
    color: #666
}

.hide,
.none {
    display: none
}
/* 清除浮动 */
.clearfix:after {
    visibility: hidden;
    clear: both;
    display: block;
    content: ".";
    height: 0
}

.clearfix {
    *zoom: 1
}

二、CSS 3

2.1、过渡

(1)、概念

(2)、属性

属性 描述
transition 简写属性,用于在一个属性中设置四个过渡属性。
transition-property 规定应用过渡的 CSS 属性的名称。 none、all、property(属性列表)
transition-duration 定义过渡效果花费的时间。默认是 0。
transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。
transition-delay 规定过渡效果何时开始。默认是 0。

(3)、示例

div {
    width: 100px;
    height:100px;
    transition:all 1s linear;
}
div:hover {
    width: 200px;
    height:200px;
}

2.2、动画

(1)、概念

(2)、属性

属性 描述
@keyframes 规定动画。
animation 所有动画属性的简写属性,除了 animation-play-state 属性。
animation-name 规定 @keyframes 动画的名称。
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。
animation-timing-function 规定动画的速度曲线。默认是 "ease"。
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
animation-delay 规定动画何时开始。默认是 0。
animation-iteration-count 规定动画被播放的次数。默认是 1。
animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。

(3)、示例

{
	width:100px;
	height:100px;
	background:red;
	position:relative;
	animation:myfirst 5s linear 2s infinite alternate;
}
@keyframes myfirst
{
	0%   {background:red; left:0px; top:0px;}
	25%  {background:yellow; left:200px; top:0px;}
	50%  {background:blue; left:200px; top:200px;}
	75%  {background:green; left:0px; top:200px;}
	100% {background:red; left:0px; top:0px;}
}

2.3、2D 转换

(1)、概念

(2)、属性

Property 描述
transform 适用于2D或3D转换的元素
transform-origin 允许您更改转化元素位置

(3)、转换方法

  • translate()
  • rotate()
  • scale()
  • skew()
  • matrix()
函数 描述
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n) 定义 2D 转换,沿着 X 轴移动元素。
translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n) 定义 2D 缩放转换,改变元素的宽度。
scaleY(n) 定义 2D 缩放转换,改变元素的高度。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。
skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

2.4、3D 转换

(1)、概念

(2)、属性

属性 描述
transform 向元素应用 2D 或 3D 转换。
transform-origin 允许你改变被转换元素的位置。
transform-style 规定被嵌套元素如何在 3D 空间中显示。 flat、preserve-3d
perspective 规定 3D 元素的透视效果。 number(像素)、none
perspective-origin 规定 3D 元素的底部位置。
backface-visibility 定义元素在不面对屏幕时是否可见。

(3)、3D 转换方法

函数 描述
matrix3d(n,n,n,n,n,n, n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。

(4)、示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			body {
				perspective: 1000px;
			}
			section {
				position: relative;
				width: 300px;
				height: 200px;
				margin:300px auto;
				transform-style: preserve-3d;
				animation: muma 10s linear infinite;
			}
			@keyframes muma{
				from{transform: rotateY(0deg);}
				to{transform: rotateY(360deg);}
			}
			section:hover {
				animation-play-state: paused;
			}
			section div {
				position: absolute;
				top: 0px;
				left: 0px;
				width: 100%;
				height: 100%;
				background: url(images/pink.jpg) no-repeat;
			}
			section div:nth-child(1){
				transform: translateZ(300px);
			}
			section div:nth-child(2){
				transform: rotateY(60deg) translateZ(300px);
			}
			section div:nth-child(3){
				transform: rotateY(120deg) translateZ(300px);			
			}
			section div:nth-child(4){
				transform: rotateY(180deg) translateZ(300px);			
			}
			section div:nth-child(5){
				transform: rotateY(240deg) translateZ(300px);				
			}
			section div:nth-child(6){
				transform: rotateY(300deg) translateZ(300px);
			}
		</style>
	</head>
	<body>
		<section>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
		</section>
	</body>
</html>

02-CSS进阶提高

上一篇:CSS布局之定位布局


下一篇:常见的HTTP状态码