这是我参与「第四届青训营 」笔记创作活动的的第2天
3.1 CSS介绍
-
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
-
用来定义页面元素的样式
- 设置字体和颜色
- 设置位置和大小
- 添加动画效果
3.2 CSS语法
3.3 CSS的使用方法
<!-- 外链,推荐使用的方法-->
<link rel="stylesheet" href="/assets/style.css">
<!-- 嵌入 -->
<style>
li { margin: 0; list-style: none; }
p { margin: 1em 0; }
</style>
<!-- 内联 -->
<p style="margin:1em 0">Example Content</p>
3.4 CSS如何工作
3.5 选择器 Selector
-
找出页面中的元素,以便给他们设置样式
-
使用多种方式选择元素
- 按照标签名、类名或ID
- 按照属性
- 按照DOM树中的位置
3.5.1 通配选择器
- 通配选择器是使用“*”号
*{
}
This is heading
this is some paragraph
3.5.2 标签选择器
- 使用标签选中
<h1>
This is heading
</h1>
<p>
this is some paragraph
</p>
<style>
h1{
color : orange;
}
p{
font-size :20px;
}
</style>
3.5.3 id选择器
<h1 id="logo">
HTML5文档
</h1>
<style>
#logo{
}
</style>
3.5.4 类选择器
<h2>
ToDO List
</h2>
<ul>
<li class = "done">Learn HTML</li>
<li class = "done">Learn Css</li>
<li>Learn Javascript</li>
</ul>
<style>
.done{
color: gray;
text-decration: line-through;
}
</style>
3.5.5 属性选择器
<label>用户名:</label>
<input value="zhao" disabled />
<label>密码:</label>
<input value="123456" type="password" />
<style>
[disabled] {
background: #eee;
color: #999;
}
</style>
标签[属性(=“属性值”)]来选择
<p>
<label>密码:</label>
<input type="password" value="123456" />
</p>
<style>
input[type="password"] {
border-color: red;
color: red;
}
</style>
<p><a href="#top">回到顶部</a></p>
<p><a href="a.jpg">查看图片</a></p>
<style>
<!--^=匹配开头-->
a[href^="#"] {
color: #f54767;
background: 0 center/1em url(https://assets.codepen.io/59477/arrow-up.png) no-repeat;
padding-left: 1.1em;
}
<!--$匹配结尾-->
a[href$=".jpg"] {
color: deepskyblue;
background: 0 center/1em url(https://assets.codepen.io/59477/image3.png) no-repeat;
padding-left: 1.2em;
}
</style>
3.5.6 伪类
-
不基于标签和属性定位元素
-
几种伪类
- 状态伪类
- 结构性伪类
<a href="http://example.com">
example.com
</a>
<label>
用户名:
<input type="text">
</label>
<style>
a:link {
color: black;
}
a:visited {
color: gray;
}
a:hover {
color: orange;
}
a:active {
color: red;
}
<!--选中聚焦-->
:focus {
outline: 2px solid orange;
}
</style>
<ol>
<li>阿凡达</li>
<li>泰坦尼克号</li>
<li>星球大战:原力觉醒</li>
<li>复仇者联盟 3</li>
<li>侏罗纪世界</li>
</ol>
<style>
li {
list-style-position: inside;
border-bottom: 1px solid;
padding: 0.5em
}
li:first-child {
color: coral
}
li:last-child {
border-bottom: none;
}
</style>
3.5.7 各种选择器的组合
-
在实际使用中常常将各种选择器组合在一起约束选择,是的样式选择更加精准
-
组合方法
-
名称 语法 说明 示例 直接组合 AB 满足A同时满足B input:focus 后代组合 A B 选中B,如果它是A的子孙 nav a 亲子组合 A > B 选中B,如果它是A的子元素 section > p 兄弟选择器 A ~ B 选中B,如果它在A后且和A同级 h2 ~ p 相邻选择器 A + B 选中B,如果它紧跟在A后面 h2 + p
-
3.5.8 选择器组
body, h1, h2, h3, h4, h5, h6, ul, ol, li {
margin: 0;
padding: 0;
}
[type="checkbox"], [type="radio"] {
box-sizing: border-box;
padding: 0;
}
3.6 颜色
3.6.1 RGB
#5a6b89#号后跟这三组16进制数rgb(90,107,137)rgb括号内三组十进制数(0-255),表示红绿蓝的值
3.6.2 HSL(Hue Saturation Lightness)
-
Hue:色相(H)是色彩的基本属性, 如红色、黄色等; 取值范围是0-360。
-
Saturation :饱和度(S)是指色彩的鲜艳程度,越高约鲜艳;取值范围0-100%。
-
Lightness :亮度(L)指颜色的明亮程度;越高颜色越亮;取值范围是0-100%。
-
表示方法
- hsl(0,100%,50%)
3.6.3 不透明度alpha
-
使用方法
- #ff0000ff=
- rgba(255, 0, 0,1)
- hsla(0, 100%, 50%, 1)
3.7 字体
3.7.1 设置属性名:font-family
- 设置多个字体时,从前往后匹配
3.7.2 通用字体族
-
Serif 衬线体
- Georgia 、宋体
-
Sans-Serif 无衬线体
- Arial、Helvetiac、黑体、微软雅黑
-
Cursive 手写体
- Caflisch、楷体
-
Fantasy
- Comic Sans Ms 、papyrus 、Zapfino
-
Monospace 等宽字体
- Consolas 、Courier 、中文字体
3.7.3使用建议
- 字体列表最后写上通用字体族
- 英文字体放在中文字体前面
3.7.4 Web Fonts
- @font-face{ }引用方式已用web上字体,使用时下载
<h1>Web fonts are awesome!</h1>
<style>
@font-face {
font-family: "Megrim";
src: url(https://fonts.gstatic.com/s/megrim/v11/46kulbz5WjvLqJZVam_hVUdI1w.woff2) format('woff2');
}
h1 {
font-family: Megrim, Cursive;
}
</style>
3.7.5 font-size 字体大小
-
关键词
- small;medium;large
-
长度
- px,em
-
百分数
- 相对于父元素字体大小
<section>
<h2>A web font example</h2>
<p class="note">Notes: Web fonts ...</p>
<p>With this in mind, let's build...</p>
</section>
<style>
section {
font-size: 20px;
}
section h1 {
font-size: 2em;
}
section .note {
font-size: 80%;
color: orange;
}
</style>
3.7.6 字重 font-weight
- 范围是100-900
- 需要自己本身支持无级字重
3.7.7 line-height
- 两行基准线的距离
3.7.8 text-align
-
文本对齐方式:
- left左对齐
- center居中
- right右对齐
- justify两端对齐
3.7.9 spacing
- 字内间距,letter-spacing
- 字间间距,word-spacing
3.7.10 text-indent
- 首行缩进
3.7.11 text-decoration
- none 无划线
- underline下划线
- line-through删除线
- overline上划线
3.7.12 white-space
换行和空格符的控制
- normal 多空格合并
- nowrap 强制不换行
- pre 保留所有
- pre-wrap 保留空格(一行内显示不下自动换行)
- pre-line 合并空格,保留换行
3.8 CSS的调试
-
右键点击页面,选择「检查」
-
使用 快捷键
- Ctrl + Shift +I
3.9 选择器优先级(特异度)
选择越精确,优先级越高。
3.10 继承
- 某些属性会自动继承其父元素的计算值,除非显示指定一个值;一般地,与文字相关的属性是可以继承的,与盒模型相关的内容无法继承。
- 对于与盒模型相关的属性需要其继承父级属性设置,使用inherit设置进行继承。
3.11 初始值
-
CSS 中,每个属性都有一个初始值
- background-color 的初始值为 transparent
- margin-left 的初始值为 0
-
可以使用 initial 关键字显式重置为初始值
- background-color: initial