css
emmet 语法 —— 开发效率
emmet 的特点和作用:通过简写提高编码效率。
emmet 生成 HTML 结构语法:
emmet 语法快速生成 css 样式:
1,常用属性大多用英文单词的首字母连写即可,示例如下:
tac → text-align: center;
ti2em → text-indent: 2em;
lh26px → line-height: 26px;
tdn → text-decoration: none;
2,设置宽高:
w100 → width: 100px;
h200 → height: 200px;
下面展示一些快速样式,便于大家理解:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- p*5 -->
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<!-- ul>li*5 -->
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<!-- h1+div*5+h2+p*2 -->
<h1></h1>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<h2></h2>
<p></p>
<p></p>
<!-- .red -->
<div class="red"></div>
<!-- p.red -->
<p class="red"></p>
<!-- p.class -->
<p class="class"></p>
<!-- p$*2 -->
<p1></p1>
<p2></p2>
</body>
</html>
CSS 复合选择器
后代选择器
应用场景:可以选择父元素中的子元素
语法格式:选择器1 选择器2 {样式声明;}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.adv-selector ul li {
color: yellowgreen;
}
</style>
</head>
<body>
<h3>基础选择器</h3>
<div>
<ul>
<li>标签选择器</li>
<li>类选择器</li>
<li>id 选择器</li>
<li>通配符选择器</li>
</ul>
</div>
<h3>复合选择器</h3>
<div class="adv-selector">
<ul>
<li>后代选择器</li>
<li>子代选择器</li>
<li>并集选择器</li>
<li>伪类选择器</li>
</ul>
</div>
</body>
</html>
子元素选择器(亲儿子选择器)
应用场景:选择某个元素最近一级的子元素(亲儿子)
语法格式:选择器1 > 选择器2 {样式声明;}
实例:
要求:将下面链接文字修改为红色。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">百度</a></li>
<li><a href="#">百度</a></li>
</ul>
</div>
</body>
</html>
参考代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.nav ul li a {
color: red;
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">百度</a></li>
<li><a href="#">百度</a></li>
</ul>
</div>
</body>
</html>
并集选择器
应用场景:集体声明 —— 选择多组标签,同时设置相同的样式。
语法格式:
选择器1,
选择器2 {
样式声明;
}
实例:
使用并集选择器把素材代码中的熊大、熊二和小猪一家改为粉色;
<div>熊大</div>
<p>熊二</p>
<span>光头强</span>
<ul class="pig">
<li>小猪佩奇</li>
<li>猪爸爸</li>
<li>猪妈妈</li>
</ul>
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>复合选择器之并集选择器</title>
<style>
/* 要求1: 请把熊大和熊二改为粉色 */
/* div,
p {
color: pink;
} */
/* 要求2: 请把熊大和熊二改为粉色 还有 小猪一家改为粉色 */
div,
p,
.pig li {
color: pink;
}
/* 约定的语法规范,我们并集选择器喜欢竖着写 */
/* 一定要注意,最后一个选择器 不需要加逗号 */
</style>
</head>
<body>
<div>熊大</div>
<p>熊二</p>
<span>光头强</span>
<ul class="pig">
<li>小猪佩奇</li>
<li>猪爸爸</li>
<li>猪妈妈</li>
</ul>
</body>
</html>
链接伪类选择器
应用场景:针对链接的不同状态设置不同的样式
链接伪类选择器:
a:link -----选择所有未被访问的链接
a:visited ----选择所有已经被访问的链接
a:hover ----选择鼠标指针位于其上的链接
a:active ----选择激活链接(鼠标按下未抬起的链接
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>复合选择器之链接伪类选择器</title>
<style>
/* 1.未访问的链接 a:link 把没有点击过的(访问过的)链接选出来 */
a:link {
color: #333;
text-decoration: none;
}
/*2. a:visited 选择点击过的(访问过的)链接 */
a:visited {
color: orange;
}
/*3. a:hover 选择鼠标经过的那个链接 */
a:hover {
color: skyblue;
}
/* 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */
a:active {
color: green;
}
</style>
</head>
<body>
<a href="#">小猪佩奇</a>
<a href="http//www.baid1512656165161ucom.com">未知的网站</a>
</body>
</html>
链接伪类选择器的书写顺序要求:
link visited hover active
记忆:
(L)o(V)e (H)(A)t [爱与恨]
(L)(V)包包(H)(A)o
focus 伪类选择器
应用场景:
在表单中突出显示当前获得焦点的表单元素,提升用户体验
实例:把获得光标的input表单元素选取出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>focus伪类选择器</title>
<style>
/* // 把获得光标的input表单元素选取出来 */
input:focus {
background-color: pink;
color: red;
}
</style>
</head>
<body>
<input type="text">
<input type="text">
<input type="text">
</body>
</html>
复合选择器总结
元素的显示模式
元素显示模式:
元素以什么方式进行显示 HTML
块元素 —— block
块级元素特点:
- 独占一行
- 可以设置宽度、高度、外边距、边框和内边距
- 宽度默认是父级容器的宽度
- 可以存放其他行内元素和块级元素
块级元素注意事项:
开发时不要在文本类元素中添加其他元素,专注于文本存放( h1~h6 、 p )
常见的块级元素:
div 、 ul 、 ol 、 li 、 h1~h6 、 p
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>显示模式之块级元素</title>
<style>
div {
/* width: 200px; */
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<div>比较霸道,自己独占一行</div> 瑟瑟发抖
<p>
<div>这里有问题</div>
</p>
</body>
</html>
行内元素 —— inline
行内元素有特点:
- 相邻行内元素在一行显示,一行多个
- 给行内元素设置宽高是无效的
- 默认宽度是内容的宽度(被内容撑开)
- 只能容纳文本或其他行内元素
行内元素注意事项:
链接不能再放链接
特殊情况的链接可以存放块级元素
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>显示模式之行内元素</title>
<style>
span {
width: 100px;
height: 100px;
background-color: hotpink;
}
</style>
</head>
<body>
<span>你怎么穿着品如的衣服呢</span> <strong>品如的衣服</strong>
<span>老师</span> <strong>品如的衣服</strong>
<a href="http://www.baidu.com">
<a href=""></a>
</a>
</body>
</html>
行内块元素 —— inline-block
行内块元素特点:
- 相邻行内元素在一行显示,一行多个(行内元素特点)
- 默认宽度就是本身内容的宽度(行内元素特点)
- 可以设置宽度、高度、外边距、边框和内边距(块级元素特点)
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>显示模式之行内块元素(特殊情况)</title>
<style>
input {
width: 249px;
height: 35px;
}
</style>
</head>
<body>
<input type="text">
<input type="text">
</body>
</html>
元素显示模式总结
显示模式的转换
显示模式转换的应用场景:
让行内元素具有宽高:把行内元素转换成块元素或者行内块元素
让块元素一行显示:把块元素转换成行内块元素
三种显示模式转换的代码:
display: block 转换为块元素
display: inline-block 转换为行内块元素
display: inline 转化为行内元素(使用较少)
实例:简单小米侧边栏
- HTML 素材
<a href="#">手机 电话卡</a>
<a href="#">电视 盒子</a>
<a href="#">笔记本 平板</a>
<a href="#">出行 穿戴</a>
<a href="#">智能 路由器</a>
<a href="#">健康 儿童</a>
<a href="#">耳机 音响</a>
- 尺寸: 230px * 40px
- 颜色: #555 / #f70
效果图:
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
a {
display: block;
width: 230px;
height: 40px;
background-color: gray;
text-decoration: none;
color: #ffffff;
text-indent: 2em;
line-height: 40px;
}
a:hover{
background-color: #ff7700;
}
</style>
</head>
<body>
<a href="#">手机 电话卡</a>
<a href="#">电视 盒子</a>
<a href="#">笔记本 平板</a>
<a href="#">出行 穿戴</a>
<a href="#">智能 路由器</a>
<a href="#">健康 儿童</a>
<a href="#">耳机 音响</a>
</body>
</html>
单行文字垂直居中 :将 line-height 设置为盒子的高度。
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>单行文字垂直居中</title>
<style>
div {
width: 200px;
height: 40px;
background-color: pink;
line-height: 40px;
}
</style>
</head>
<body>
<div>我要居中</div>
</body>
</html>
背景图片
背景颜色
一般情况下元素的背景颜色是transparent 透明的
背景图片
背景图片的应用场景:
- logo 2. 装饰图片 3. 超大图片 4. 精灵图(雪碧图)
背景图片的优点:非常容易控制位置
背景图片的语法:
background-image: none | url(url);
背景平铺
背景平铺 background-repeat 的属性:
背景位置-方位名词
background-position (背景位置)
方位名词:
水平方向: left / right / center 垂直方向: top / bottom / center
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>背景位置-方位名词</title>
<style>
div {
width: 300px;
height: 300px;
background-color: pink;
background-image: url(images/logo.png);
background-repeat: no-repeat;
/* background-position: 方位名词; */
/* background-position: center top; */
/* background-position: right center; */
/* 如果是方位名词 right center 和 center right 效果是等价的 跟顺序没有关系 */
/* background-position: center right; */
/* 此时 水平一定是靠右侧对齐 第二个参数省略 y 轴是 垂直居中显示的 */
/* background-position: right; */
/* 此时 第一个参数一定是 top y轴 顶部对齐 第二个参数省略x 轴是 水平居中显示的 */
background-position: top;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
背景位置-精确单位
第一个值一定是 x / 第二个值一定是 y
背景位置-混合单位
第一个值一定是 x / 第二个值一定是 y
背景固定
背景固定的应用场景:可以制作视差滚动效果
background-attachment 有两个参数分别代表含义:
1,scroll 默认,背景图像跟随滚动
2,fixed 背景图像固定
背景属性复合写法
推荐顺序是: background: color image repeat attachment position
背景颜色半透明
background: rgba(0, 0, 0, 0.3);
rgba 中的 alpha 取值范围: 0 ~ 1 0 完全透明 / 1 完全不透明
背景总结
如有不足,请多指教,
未完待续,持续更新!
大家一起进步!