慕課前端入門-CSS背景與漸變
阿新 • • 發佈:2020-08-29
1.CSS背景
1.1.CSS背景影象區域
background-clip屬性:指定背景繪製區域
- border-box:邊框盒子。從邊框開始繪製,邊框之外會被裁剪
- padding-box:內邊距盒子。從內邊距開始繪製,padding之外會被裁剪
- content-box:內容盒子。從內容開始繪製,content之外會被裁剪
示例程式碼
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{margin: 0;padding:0;border: none;} div{ width: 800px; height: 400px; padding:50px; border:50px solid transparent; background:url("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598670301812&di=1ea12ffd008f4051c8fd63a385bc6c24&imgtype=0&src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fitbbs%2F1405%2F19%2Fc40%2F34408218_1400509117117.jpg") no-repeat center center; /*background-clip: border-box;*/ background-clip: padding-box; /*background-clip: content-box;*/ } span.div_border{ position: absolute; top:0; left: 0; width: 800px; height: 400px; padding:50px; border:50px solid red; opacity: 0.5; } span.div_padding{ position: absolute; top:50px; left:50px; width: 800px; height: 400px; border:50px solid green; opacity: 0.5; } </style> </head> <body> <div></div> <span class="div_border"></span> <span class="div_padding"></span> </body> </html>
示例2:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>background-clip</title> <style type="text/css"> .border,.padding,.content{/*給最外層的div設定樣式*/ width:300px;height:300px; float:left;margin-left:50px; } a{ text-decoration:none; font-size:30px; } .div1,.div2,.div3{/*放置背景圖片的div樣式*/ width:220px;height:200px; border:10px solid rgba(0,255,0,0.3); padding:50px; background-image:url("http://climg.mukewang.com/582c316e0001fd6507000210.jpg"); margin-top:50px; display: none; } .border:hover div,.padding:hover div,.content:hover div{ display:block; } /*補充程式碼*/ .div1{background-clip: border-box;} .div2{background-clip: padding-box;} .div3{background-clip: content-box;} </style> </head> <body> <div class="border"> <a href="">border-box</a> <div class="div1"></div> </div> <div class="padding"> <a href="">padding-box</a> <div class="div2"></div> </div> <div class="content"> <a href="">content-box</a> <div class="div3"></div> </div> </body> </html>
1.2.CSS背景影象定位
background-origin屬性:設定元素背景片的原始起始位置,偏移量在background中設定。
- border-box:邊框盒子。以邊框開始位置作為原點
- padding-box:內邊距盒子。以內邊距開始位置作為原點
- content-box:內容盒子。以內容開始位置作為原點
示例程式碼
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{margin: 0;padding:0;border: none;} div{ width: 800px; height: 400px; padding:50px; border:50px solid transparent; background:url("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598670301812&di=1ea12ffd008f4051c8fd63a385bc6c24&imgtype=0&src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fitbbs%2F1405%2F19%2Fc40%2F34408218_1400509117117.jpg") no-repeat 50px 100px; /*background-origin: border-box;*/ /*background-origin: padding-box;*/ background-origin: content-box; } span.div_border{ position: absolute; top:0; left: 0; width: 800px; height: 400px; padding:50px; border:50px solid red; opacity: 0.5; } span.div_padding{ position: absolute; top:50px; left:50px; width: 800px; height: 400px; border:50px solid green; opacity: 0.5; } </style> </head> <body> <div></div> <span class="div_border"></span> <span class="div_padding"></span> </body> </html>
作業
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>background-origin</title>
<style type="text/css">
div{
width: 400px;
height: 150px;
padding:10px;
border:10px solid #acacac;
background:url("http://climg.mukewang.com/582c342b0001fd6507000210.jpg") no-repeat center center;
background-origin:padding-box;
}
div:hover{
background:url("http://climg.mukewang.com/582c34220001091605000150.jpg") no-repeat 10px 10px;
background-origin: content-box;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
1.3.CSS背景影象大小
background-size屬性:指定背景圖片大小
- 具體數值
- 百分比
- cover 即將圖片等比例縮放以填滿整個容器,長和寬至少有一個為100%,另一個可能會超出,超出的部分會被裁剪。
- contain 即將背景圖片等比例縮放至某一邊緊貼容器邊緣位置。長或寬至少有一個為100%,另一個可能會留白
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>background-size</title>
<style type="text/css">
a{text-decoration:none;}
ul{list-style:none;}
div{
background-image:url("http://climg.mukewang.com/582c37e50001b08102000065.jpg");
width:100px;height:100px;
display:none;border:2px solid red;
background-repeat:no-repeat;
}
/*補充程式碼*/
.length:hover div{
display: block;
background-size:100px 100px;
}
.percent:hover div{
display: block;
background-size:50% 50%;
}
.cover:hover div{
display: block;
background-size:cover;
}
.contain:hover div{
display: block;
background-size:contain;
}
</style>
</head>
<body>
<h2>background-size不同屬性值不同效果</h2>
<ul>
<li class="length">
<h3><a href="">100px 100px</a></h3>
<div></div>
</li>
<li class="percent">
<h3><a href="">50% 50%</a></h3>
<div></div>
</li>
<li class="cover">
<h3><a href="">cover</a></h3>
<div></div>
</li>
<li class="contain">
<h3><a href="">contain</a></h3>
<div></div>
</li>
</ul>
</body>
</html>
1.4.CSS多重背景影象
background-image:url(), url();前面的影象會覆蓋後面的影象
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
div{
width: 800px;
height: 500px;
background:no-repeat center center;
background-image: url("water.png"),url("wechat.jpeg");
}
</style>
</head>
<body>
<div></div>
</body>
</html>
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>background屬性</title>
<style type="text/css">
/*此處寫程式碼*/
div{
width: 400px;
height: 300px;
border:20px solid #e87d7d;
paddding:20px;
background: #acacac no-repeat center center;
background-image: url(http://climg.mukewang.com/582c39c00001091605000150.jpg);
background-size: 90% ;
background-origin: padding-box;
}
</style>
</head>
<body>
<!-- 此處寫程式碼 -->
<div>慕課網</div>
</body>
</html>
1.5 CSS背景整合
背景屬性可以在一個宣告中設定所有的背景屬性
- color:顏色
- position:背景圖片位置
- size:圖片大小尺寸
- repeat:是否重複
- orgin:定位
- clip:區域
- attachment:狀態(隨著頁面滾屏,還是固定不變)
- image:背景圖片的URL
div{
background: #abcdef center 50% no-repeat content-box content-box fixed url();
}
div{
background: #abcdef center no-repeat url();/*css直接完成,下面的機制不一樣,建議分開寫*/
background-size: 50%;
background-origin: content-box;
background-clip: content-box;
background-attachment: fixed;
}