css揭秘之1-10
1 半透明边框
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
body{
background: url(2.png);
}
.box{
width: 100px;
height: 100px;
background-color:#fff;
border: 20px solid rgb(255,0,0,0.2); //设置透明度
background-clip: padding-box; //裁剪背景
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
关于background-clip:http://www.w3school.com.cn/tiy/t.asp?f=css3_background-clip
background-clip:默认背景到外边框,表示背景延伸到哪。默认情况下,边框设置了颜色设置透明度会透出下面的白色背景,不会真正透明到最下面,因为白色背景延伸到外边距。
background-clip: padding-box;表示白色背景知道内边距不到外边距,如果不这么写,默认属性为border-box;设置了透明度也会透出后面的白色背景,图示:
2:多重边框
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 100px;
background:#fff;
border: 10px solid #333;
outline: 10px solid red;
margin: 40px;
box-shadow: 0px 0px 5px 20px #ccc,0px 0px 5px 20px #ccc;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
3:灵活的背景定位:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background:url(1.gif)no-repeat #666;
background-position: right 40px bottom 40px;
padding: 40px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
如果改变图片距离某个角的距离则要改变3个值。
改用background-origin: content-box;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background:url(1.gif)no-repeat #666;
background-position: right bottom;
padding: 40px;
background-origin: content-box;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
因为
background-position默认定位是根据padding-box(内边距的外边框);
改为 background-origin: content-box;后便从内容区算起了。
PS:每个元素都有三个矩形框:border-box:边框的外沿框,padding-box:内边框的外边沿,content-box:内容区的外边沿。
background-origin:默认背景定位从内边框开始算,改为content-box;便不用更改了。
4 边框内圆角
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background:#666;
margin: 20px;
box-shadow: 0 0 0 10px red;
border-radius: 15px;
outline: 10px solid #333;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
当box-shadow和outline颜色一致时则得到以下效果:
5:条纹背景:
横向条纹:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background-image: linear-gradient(#333 50%,#eee 50%);
background-size: 100% 20px;
margin: 20px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
倾斜60度条纹:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background-image: repeating-linear-gradient(60deg,#333,#333 15px,#999 0,#999 30px);
margin: 20px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
6:复杂的背景图案:
网格:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
background-image: linear-gradient(90deg,#333 50%,transparent 0),linear-gradient(#999 50%,transparent 0);
background-size: 30px 30px;
margin: 20px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
波点:略;
棋盘:略;
7:伪随机背景:css3略
8:连续的图像边框:css3略
9:自适应的椭圆:
border-radius:每个角都有水平和垂直半径
1:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 80px;
border-radius: 50%/50%;
background:#999;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
2 半椭圆:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 200px;
border-radius: 50%/100% 100% 0 0;
background:#999;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
图示:
border-radius: 50%/100% 100% 0 0:表示左上角的border-radius: 50% 100%;右上角的border-radius:50% 100%;
右下角border-radius:50% 0;左下角border-radius:50% 0;
当有某个方向为0时,则另一个不重要了,准确写法是:border-radius: 50% 50% 0 0/100% 100% 0 0;
3 四分之一椭圆
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
width: 100px;
height: 100px;
border-radius: 100% 0 0 0;
background:#999;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
只有左上角:
图示:
10:平行四边形:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css揭秘</title>
<style type="text/css">
.box{
position: relative;
margin: 20px;
}
.box:before{
content: '';
position: absolute;
left: -20px;
top: -5px;
z-index: -1;
width: 100px;
height: 30px;
background:#999;
transform: skew(-45deg);
}
</style>
</head>
<body>
<a href='#' class="box">点击</a>
</body>
</html>
图示:
: