CSS苦逼学习日记(11)
你想成功做出以下的图形吗?
上图在左右两边有一个斜着的竖线分割开了两部分内容,其实是在盒子内部多放了一个盒子实现的效果,因为这个盒子就是三角形的形状。
那么是如何制作的呢?
图一代码如下:
.box1 {
width: 0;
height: 0;
border-color: transparent red transparent transparent;
border-style: solid;
border-width: 100px 50px 0 0;
}
最重要的一点是此盒子的 width 和 height 只能初始化为0,
如果要做成三角形,则只需要给某一边的边线设置颜色,其余全部用 transparent (透明的意思)来表示。然后给边添加宽度就可达到相应的效果。
而图二的是做了一个透明的三角形 把它覆盖在了原本是矩形的盒子之上,所以显现出来是一个三角形的形状:
源代码:
可根据代码各种修改尝试来体验
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box1 {
width: 0;
height: 0;
border-color: transparent red transparent transparent;
border-style: solid;
border-width: 100px 50px 0 0;
}
.price {
width: 160px;
height: 24px;
line-height: 24px;
border:1px solid red;
margin: 200px auto;
}
.left {
position: relative;
text-align: center;
float: left;
width: 90px;
height: 100%;
background-color: red;
color: #ffffff;
font-weight: 700;
margin-right: 8px;
}
.left i {
position: absolute;
right: 0;
top: 0;
width: 0;
height: 0;
border-color: transparent #ffffff transparent transparent;
border-style: solid;
border-width: 24px 10px 0 0;
}
.right {
font-size: 12px;
color: gray;
text-decoration: line-through;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="price">
<span class="left">$1900
<i></i>
</span>
<span class="right">$1800</span>
</div>
</body>
</html>
当然,这是用来做三角形,如果要做其他的形状,border-color和 border-width都可以设置不同的属性值来达到不同的效果