一、css几大模块:
选择器 盒模型 背景和边框 2D/3D 动画 用户界面 多列布局 文字效果
二、选择器
-
简单选择器:
id选择器 | #id |
类选择器 | .classname |
元素选择器 | 元素名 |
组合选择器 | 元素名,元素名 |
-
伪类选择器(用来选择某元素的指定状态,像获得焦点,鼠标移动到上面等,以链接<a>为例)(部分)
a:link | 选中链接还未被访问的状态 |
a:visited | 选中链接已经被访问的状态 |
a:hover | 选中当鼠标移动到a元素上 |
a:active | 选中当鼠标按下将访问而未访问之时 |
注意 | hover必须放在link和visited之后才能起效,active必须放在hover之后 |
-
伪元素选择器(用来选择块类元素中的具体内容,进行内容上的样式变化)(全部)
元素名::after | 在元素之后(插入内容等) |
元素名::before | 在元素之前 |
元素名::first-line | 选中元素的首行 |
元素名::first-letter | 选中元素的首字母 |
元素名::selection | 选中被用户选中的部分 |
-
组合器选择器(用来选择跟元素相关联的元素,如父子关系,兄弟关系等)
元素1 元素2 | 选中元素1的所有元素2(只要是元素2就行,无限下沿至后代) |
元素1 > 元素2 | 选中元素1下面一层的所有元素2(仅下沿一层) |
元素1 + 元素2 | 选中元素1后(外面),跟其最近的一个元素2 |
元素1 ~ 元素2 | 选中元素1后(外面),所有的元素2 |
-
属性选择器(用来根据一些都具有的属性,对元素进行选择)
[属性名] | 选择所有设置了该属性的元素 |
[属性名=value] | 选择所有该属性设置为value的元素 |
[属性名*=value] | 选择所有该属性的值中包含又value的元素 |
[属性名~=value] | 选择所有该属性值中有value一词的元素,跟上面的区别,该是单词,例如value是flover而实际是floverer则无法匹配,若是flover my 则匹配成功。 |
[属性名^=value]或者[属性名|=value] | 选择该属性的开头是value的元素 |
[属性名$=value] | 选中该属性的值的最后是value的元素 |
三、css的使用三种方式和优先级
- 外部引入(在link标签中的href定义外部css地址)
- 需要两个属性:rel 和 href
<head> <!--外部链接--> <link rel="stylesheet" href="../css/shiyan.css"> <meta charset="UTF-8"> <title>css练习</title> </head>
- 内部使用(在head中使用<style>标签)
<head>
<style>
#box1 {
border: 2px solid red;
border-radius: 20px;
}
</style>
</head>
- 行内引用(利用每个元素自带的style属性,直接在value中编写css代码即可)
<div id="box1" style=" border:solid green;
border-radius: 20px 30px;
padding:10px 20px;
width: 300px;">
<p>冲天香阵透长安,满城尽带黄金甲。</p>
</div>
三种方式优先级:行内样式优先级最高,其次是外链样式和内部样式(根据先后顺序来定) 最后是浏览器默认样式
四、css颜色指定的三种方式
- 直接根据颜色名称指定
- 常用的颜色名称有:yellow blue red gray(灰) green
- 根据三基色占比来(HEX)
- rgb(x1,x2,x3) x的值从左到右分别代表红色 绿色 蓝色,值的范围是0到255。
- #aabbcc 用十六进制表示三色,最大值是ff 最小值是00。
- 根据透明度亮度等设置(hsl)
h是代表色轮上的度数,0代表红色 120绿色 240蓝色
s代表饱和度(0~100%)为0时是灰色阴影,为100时是全色
l代表亮度(0~100%)为0时是黑色,100时是白色
a 代表透明度(0~1) 为0时是完全透明,1是不透明。
五、css背景
(一)概要:
主要学习五大内容:背景颜色 background-color 背景图片 background-image 背景重复background-repeat 背景附着 background-attachment 背景定位 background-position
(二)学习
- 背景颜色 background-color
根据上面所讲的颜色定义如下编写即可
div {
width: 200px;
height: 200px;
background-color: hsla(240,50%,50%,0.5);
}
- 背景图片 background-image
背景图片默认重复铺满整个元素。
div {
width: 200px;
height: 200px;
/*指定背景图像*/
background-image: url("../imgs/3.jpeg");
}
- 背景重复 background-repeat
- 三个值:repeat-x 仅横向重复 repeat-y 仅纵向重复 no-repeat 不重复
- 背景定位 background-position
两种定位方式
- background-position: 12px,23px; 相对于元素左上角的横向距离和纵向距离。
- background-position: left top; 直接用语言代替(一共有五个词,top bottom center left right)两两组合使用,本例是左上。
- 背景附着 background-attachment
- background-attachment: fixed 指定背景图像不会随着元素移动而移动,视觉上一直呈现在视觉上固定位置。(通俗来讲,当窗口小时,滑动滚轮,背景图像会一直呈现在眼前)
- background-attachment: scroll; 指定背景图像随着元素动而动。通俗来讲就是,滚轮滑走,会把背景图像滑倒上面,视觉上看不到了。
- 简写背景属性,按照顺序即可,不要求全部指定,顺序如下:
- background: color image repeat attachment position; 使用safari浏览器测试简写失效
六、css边框
(一)主要内容:
边框类型 border-style 边框宽度 border-width 边框颜色 border-color 圆角边框 border-radius
(二)学习
- border-style 共有这几种类型:点状 dotted 虚线 dashed 实线 solid 双线边框 double 槽状 groove 垄状 ridge 3d外边框 outset 3d内边框 inset 隐藏边框 hidden 无边框 none
- border-width 设置边框的宽度
- border-color: 设置边框颜色
- border-radius:跟像素值 设置圆角边框
(三)细节
- 边框类型 颜色 宽度可以简写为 border:宽度 类型 颜色;
- 例子,下面是对img加上点状边框,宽度设置为20px ,圆角边框,边框颜色为红色。
#img1{
border-style: dotted;
border-width: 20px;
border-color: green;
border-radius: 20px;
}
图片来源于网络,侵权删。
3.也可以通过border-top-style:dotted 来对单独一条边框设置。
七、cssn边距和宽高(margin、padding、width、height)
-
外边距合并现象的几种情况,及存在意义。
- 当两个块元素相邻上下排列是,二者的外边距会自动合并为外边距较大者。
- 当一个块级元素被另一个块级元素包围时,包含块元素的上下外边距与被包含的块级元素的外边距也会发生合并(前提是包含元素没有内边距,被包含元素没有边框把外边距隔开)。
- 块级元素自身的外边距也会发生合并现象(没有内容,上下外边距合并)。
- 块级元素外边距合并的意义:像p这个元素如果没有外边距合并,那么第一段话的上间隔就会和第二段和第一段的间隔小(不一样)
-
外边距的使用,较为简单。
- 共有 margin-top|bottom|left|right 这几个属性,属性值为px|inherit(继承父元素的外边距)|%(按包含元素的外边距的百分比设置)|cm。
- 也可简写为margin:四个值|两个值 |一个值 分别代表上右下左外边距|上下,左右|上下左右都是这一个值。
-
内边距的使用,较为简单,属性值类型跟外边距一致
- padding-top|right|bottom|left: 34px; 指定某一方向外边距大小,也可简写:padding: top right bottom left
- 宽高设置很简单不做赘述(其设置的是除外边距,内边距,边框外的其他内容的宽度和高度)
- width|min-width|max-height|height|max-width|min-height.
- 盒模型
八、css轮廓(位于边框外,用于突出元素,并不占用元素尺寸,可与其他元素重合)
不属于结构体的一部分。
outline-style | 规定轮廓类型:dotted dashed double solid groove ridge outset inset none hidden |
outline-color | 设置轮廓的颜色 |
outline-width | 设置轮廓的宽度 |
outline-offset | 设置轮廓的偏移量,偏移量越大,轮廓和边框之间的空隙越大 |
outline | outline的简写属性:width style color |
九、 文本和字体
(一)文本
- 文本颜色和文本对齐
属性 | 值 | 细节 |
---|---|---|
color | rgb #十六进制等 | 若制定文字颜色一定要配合背景颜色使用(background-color) |
text-align | right left center justify | 文本对齐方式, 分别是右对齐,左对齐,居中对齐,两端对齐 |
direction | ltr rtl | 指定文本显示方向,从左到右,从右到左。 |
unicode-bidi | bidi-override | 反转文本每个字符, 与direction配合使用可以达到,改变句子方向的效果。 |
vertical-align | top middle bottom | 设置垂直对齐方式,靠上对齐,居中对齐,靠下对齐 |
- 文本装饰与文本转换
text-decoration | 描述 | text-transform | 描述 |
text-decoration: none | 用来去除文本样式,如去除链接默认的下划线 | text-transform:uppercase | 把文本转换成大写 |
text-decoration:overline | 给文本加上上划线 | text-transform:lowercase | 把文本转换成小写 |
text-decoration: line-through | 给文本加上删除线 | text-transform:capitalize | 把单词首字母转换为大写 |
text-decoration:underline | 给文本加上下划线 |
- 文字间距与文字阴影
属性 | 值 | 描述 |
---|---|---|
text-indent | px值 | 设置第一行的缩进 |
letter-spacing | px值 | 设置字符之间的间隔大小 |
line-height | px值 | 设置行与行之间的距离 |
word-spacing | px值 | 设置单词和单词之间的距离 |
white-space | nowrap | 设置空白的处理方式 |
text-shadow | px值 和 颜色 | text-shadow:px1,px2,px3,颜色。 从左往右分别代表,x轴阴影大小, y轴阴影大小,阴影模糊程度, 阴影颜色。 |
(二) 文字
- 字体族、字体样式、字体大小
属性 | 值 | 描述 |
---|---|---|
font-family(字体族) | Serif|Sans-serif|monospace|Cursive|fantasy | 五种通用字体类型,一般放在字体族的最后保底,分别是:衬线字体,无衬线字体、等宽字体、草书字体、幻想字体 |
font-size | px em vw | 用来规定字体的大小,分别是像素,16px等于1em,视口宽度(1视口宽度等于1%的窗口宽度) |
font-style | normal|italic | 用来指定字体的样式,普通样式,斜体显示 |
font-weight | normal|bold | 设置字体粗细,正常,加粗 |
font-variant | normal|small-caps | 指定是否将小写字母转化为小型大写字母 |
- 衬线字体会在每个笔画中加入细节,更优雅;无衬线没有细节,但更方便阅读;等宽字体类似机器字体,很板正;草书字体,模仿人类书写笔迹;幻想字体更艺术,更活泼,更个性;
- 视口宽度值,当字体大小设置为视口宽度做单位的值时,字体大小会随着浏览器窗口宽度大小来调整字体大小,1vw为当前窗口宽度的1%。
- em作单位时,是所有浏览器都允许用户改变字体大小。
- 谷歌字体
- 如果我们不满足于五种基本字体,也可以使用谷歌开源字体,只需要加入link标签,引入css文件即可。
<!--引入谷歌的sofia字体css文件-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Sofia">
<style>
p {
font-family:"Sofia","Sans-serif"
}
</style>
- 简写字体属性:font: style variant weight size family 按照该顺序,size和family属性必须有。
十、css图标和列表
(一)图标
- 使用
- 需要用到图标库(Font Awesome)官网:fontawesome.com。
- 暂时搁置。
(二)列表
- css对有序和无序列表前面图标的控制
- list-style-type: square|cricle 对于无序列表而言,设置标记为空心圆形或者实心方形。
- list-style-type: upper-roman|lower-alpha 对于有序列表而言,设置标记为罗马计数或者小写数字。
- list-style-image: url("图像地址") 用图像来作为列表项的标志。
- list-style-position: outside|inside 定义列表项标记的位置:在文本外,与项垂直对齐(默认),在项内,会推开文本。
- list-style-type: none 删除列表项前面的标记。
- list-style: type position image 简写属性。
(三)表格
- 用在table上的属性:border(边框)border-collapse:collapse; 将表格内边框设置为单一边框,默认内边框是双边框,极难看。 height设置表格高度
- 用在th和td上 height 设置单元格高,即行高。 padding设置单元格与内边距 border-bottom 加上分割线
- text-align|vertical-align等文本属性都可以用到<th>和<td>中,来设置表格中字体的样式和对齐方式。
- 也可以使用伪类选择器:hover实现鼠标移动到<tr>上背景颜色发生变化(结合js使用)