引入CSS有三种方法
内联>内部>外部。其中,>表示优先级大于。
内联指写在HTML标签里,内部指写在style标签里,外部指引入单独的CSS文件。
选择器
牛客的markdown真的不好用...
元素选择器 h1{} h2{} 无法评价...写玩具时用可以 类选择器 .class1 {} 这种方法最好,最常用。 id选择器 #id1{} 这种方法最扯,你无法保证id是唯一的,因为你要和别人协作。 选择器组 .class1, #id1 {} 这样可以减少冗余。 派生选择器 .class1>.class2{} 这指的是给class1的儿子class2加样式 .class1 .class2{} 这指的是给class1的后代加样式。不知道是儿子孙子还是什么。 伪类选择器 用个例子吧 a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #00FF00} /* 已访问的链接 */ a:hover {color: #FF00FF} /* 鼠标移动到链接上 */ a:active {color: #0000FF} /* 选定的链接 */
盒模型
永远使用border-box!
定位
默认定位
块级元素: div p 等等,自上而下排列,可以改变宽高。在一行中,一个块后面不许用别的块。
行内元素:span a 等,从左向右水平排列,无法改变宽高。
行内块(中庸boy): 从左向右水平排列,能改变宽高。
这几种元素可以互相转换。用display: 来改变即可。
浮动定位
可以让元素向左右浮动。同时可以消除块级元素的特性(独自占一行)。
相对定位
和自己原来的位置作比较。
假设原来是这样的
只需要
.b { background: ...; position: relative; top: 30px; left: 50px; }
就可以变成这样:
绝对定位
当前元素与已定位的祖先元素的距离。
先找爸爸,然后找爷爷,最终能找到body。
再给一个自己的父亲没定位的例子
固定定位
将元素的内容固定在页面的某个位置,无论用户怎么滚动页面,元素都不会“动”。
有点像小网站的弹出窗口。
只需要一句
position: fixed;
z-index
元素之间有重叠,用z-index决定谁在上,谁在下。
CSS-3
圆角
border-radius:左上 右上 右下 左下;
阴影
box-shadow:1 2 3 4 5;
1:水平偏移
2:垂直偏移
3:模糊半径
4:扩张半径
5:颜色
线性渐变
background:linear-gradient([方向/角度],颜色列表);
径向渐变
background: radial-gradient(颜色列表);
背景位置
background-origin:指定了背景图像的位置区域
border-box : 背景贴边框的边
padding-box : 背景贴内边框的边
content-box : 背景贴内容的边
背景裁切
background-clip:
border-box 边框开切
padding-box 内边距开切
content-box 内容开切
背景大小
background-size:
cover 缩放成完全覆盖背景区域最小大小
contain 缩放成完全适应背景区域最大大小
(cover会拉伸,contain是等比例缩放)
过渡
从一个状态到另一个状态,中间的“缓慢”过程;
缺点是,控制不了中间某个时间点。
transition: 属性(width) 持续时间(2s) 过渡函数(ease) 延后时间(1s)
动画
可以控制过程。
需要关键帧和animation配合使用。
看个例子:
/*一个元素从左到右移动,三秒内移动两次*/ <style> div{ width: 700px; border: 1px solid red; } @keyframes x{ from{ margin-left: 0px;} to{ margin-left: 550px;} } img{ animation: x 3s linear 2; /*如果想要无限重复呢?*/ animation: x 3s linear infinite alternate; } </style> <body> <div> <img src="img/cat.gif"> </div> </body>