1. 背景(background)
1.1 背景图片重复
- background-repeat:repeat ;默认横向重复, 纵向重复
- background-repeat: no-repeat; 不重复
- background-repeat:repeat-x ;横向重复
- background-repeat:repeat-y; 纵向重复
<!DOCTYPE html>
<html lang="en">
<head>
<style>
p {
width: 200px;
border: 1px solid;
height: 200px;
background-image: url(https://www.w3school.com.cn/ui2017/compatible_chrome.png);
}
/* 默认和横向重复,纵向重复 */
p:nth-child(1){
background-repeat: repeat;
}
/* 不重复 */
p:nth-child(2){
background-repeat: no-repeat;
}
/* 横向重复 */
p:nth-child(3){
background-repeat: repeat-x;
}
/* 纵向重复 */
p:nth-child(4){
background-repeat: repeat-y;
}
</style>
</head>
<body>
<p></p>
<p></p>
<p></p>
<p></p>
</body>
</html>
1.2 背景图片
- background-size: contain;保持宽高比例, 长边拉伸至最大。
- background-size: cover;保持宽高比例, 短边拉伸至最大, 长边多余的会被隐藏
- background-size:xxpx,xxpx;
- background-size: xx%, xx%; 不保持宽高比例, 可以设置任意数值或者百分比
<!DOCTYPE html>
<html lang="en">
<head>
<style>
p {
width: 600px;
border: 1px solid;
height: 400px;
background-image: url(http://zk.huruqing.cn/assets/bg2.78d35cdc.83c30b86.png);
background-repeat: no-repeat;
}
/* contain;保持宽高比例, 长边拉伸至最大。 */
p:nth-child(1){
background-size: contain;
}
/* cover;保持宽高比例, 短边拉伸至最大, 长边会被截掉一部分 */
p:nth-child(2){
background-size: cover;
}
/* (X Y)或者(xx% xx%) 不保持宽高比例, 可以设置任意数值或者百分比 */
p:nth-child(3){
background-size: 50% 80%;
}
</style>
</head>
<body>
<p></p>
<p></p>
<p></p>
</body>
</html>
1.3 背景图片的位置
- background-position:x y;使用px,离上面 左边的距离
- background-position:xx% xx%;使用百分比
- background-position:right top; 使用两个定位单词,top,botton,left,right
- background-position:right; 使用一个单词,另一个方位默认居中
<!DOCTYPE html>
<html lang="en"
<head>
<style>
p {
height: 100px;
width: 200px;
border: 1px solid;
/* background-image: url(../img/compatible_chrome.png); */
background-image: url(https://www.w3school.com.cn/ui2017/compatible_chrome.png);
background-repeat: no-repeat;
}
P:nth-child(1) {
/* 使用px */
background-position: 10px 10px ;
}
P:nth-child(2) {
/* 使用百分比 */
background-position: 20% 20%;
}
P:nth-child(3) {
/* 使用定位单词,两个选项 */
background-position: right bottom;
}
P:nth-child(4) {
/* 使用定位单词, 只有一个选项 ,在上面,左右居中*/
background-position: top;
}
P:nth-child(5) {
/* 使用定位单词, 只有一个选项 ,在左面,上下居中*/
background-position: left;
}
</style>
</head>
<body>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</body>
</html>
1.4 合并写法
background: url(https://www.w3school.com.cn/ui2017/compatible_chrome.png)no-repeat right bottom;
2. 雪碧图(精灵图)
- 将所有图片集中放到一张图片上面,设置一个小方框,将大图片上面的指定图标展示再框中,目的是减少网页获取图片时频繁向服务器获取,减少消耗
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<style>
span {
display: inline-block;
width: 20px;
height: 20px;
border: 1px solid #999;
background: url(http://docs.huruqing.cn/assets/1837519-20191107151128254-1992912590.636ffad0.png) no-repeat;
border-radius: 50%;
}
/* 显示男图标 */
.span1 {
background-position: 4px 3px;
}
/* 显示女图标 */
.span2 {
background-position: 4px -23px ;
}
/* 显示胜利图片 */
.span3 {
background-position: -50px -24px ;
}
</style>
<img src="http://docs.huruqing.cn/assets/1837519-20191107151128254-1992912590.636ffad0.png" alt="" />
<hr />
<span class="span1"></span>
<span class="span2"></span>
<span class="span3"></span>
</body>
</html>
3. 三角形
- 宽高设为0
- 边框设为20px(根据需要)
- 除底部边框外, 其它边框设为透明色
<!DOCTYPE html>
<html lang="en">
<head>
<style>
div {
width: 0px;
height: 0px;
border: 50px solid red;
border-top-color: transparent;
border-left-color: transparent;
border-right-color: transparent;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
4. 元素溢出
4.1 overflow 溢出消失
当元素里的内容大于元素的宽度或者高度的时候, 内容就会溢出
- overflow: hidden; 隐藏
- overflow: scroll;滚动条
- overflow: auto;自动选择是否显示滚动条
- 文字出现空格后会自动换行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
p{
width: 150px;
height: 50px;
border: 1px solid red;
}
p:nth-child(1) {
/*溢出隐藏*/
overflow: hidden;
}
p:nth-child(2) {
/*水平方向溢出用滚动条*/
overflow-x: scroll;
}
p:nth-child(3) {
/*垂直方向溢出用滚动条*/
overflow-y: scroll;
}
p:nth-child(4) {
/*自动选择垂直方向溢出是否用滚动条*/
overflow: auto;
}
p:nth-child(5) {
/*自动选择水平方向溢出是否用滚动条*/
overflow: auto;
}
p:nth-child(6) {
/*垂直方向溢出用滚动条,文字不够多,不出现滚动条*/
overflow: auto;
}
</style>
</head>
<body>
<!-- hidden 隐藏 -->
<p> ppppppppppppppppppppppppppppppppppppppppppppp </p>
<!-- scroll 滚动条 -->
<p> ppppppppppppppppppppppppppppppppppppppppppppp </p>
<!-- scroll 没有溢出时,同样会有滚动条的'轨道'' -->
<p> pppppppp </p>
<!-- auto 自动 -->
<p> ppppppppppppppppppppppppppppppppppppppppppppp </p>
<p> pppppppp pppppp ppppp ppppp pppp pppppp pppppp pp ppp </p>
<!-- auto 不溢出时没有滚动条 -->
<p> ppppppppppp </p>
</body>
</html>
4.2 溢出用省略号显示
4.2.1 多行文本溢出
<!DOCTYPE html>
<html lang="en">
<head>
<style>
p {
width: 300px;
border: 1px solid;
line-height: 20px;
height: 40px;
/* 展示字体 */
display: -webkit-box;
/* 超出隐藏 */
overflow: hidden;
/* 超出部分用省略号 */
-webkit-box-orient: vertical;
/* 超出两行的进行隐藏 */
-webkit-line-clamp: 2;
}
</style>
</head>
<body>
<p>
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
</p>
</body>
</html>
4.2.2 单行文本溢出
<!DOCTYPE html>
<html lang="en">
<head>
<style>
p {
width: 300px;
border: 1px solid;
height: 50px;
/*内容溢出隐藏*/
overflow: hidden;
/*遇到空白怎么处理: 不换行*/
white-space: nowrap;
/*文字溢出设置*/
text-overflow: ellipsis;
}
</style>
</head>
<body>
<p>
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
</p>
</body>
</html>