::before和::after的用法

::before和::after的用法

1 ::after清除浮动:

ul:after{
    content: '';
    display: block;//变成块状元素
    width: 0;
    height: 0;
    clear: both;
}

2 ::before和::after 用来写小三角形

html:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>伪元素</title>
	<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
	<div class="demo">三角形</div>
</body>
</html>

css:

*{
	margin: 0;
	padding: 0;
}
.demo:after{
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border: 8px solid transparent;
    /*transparent透明*/
    border-left: 8px solid #AFABAB;
    position: relative;
    top: 2px;
    left: 10px;
}

图:

3 用::after和::before 写一个对话框

html:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>伪元素</title>
	<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
	<div class="left">
	  <p>吃了吗?</p>
	</div>
	<div class="right">
	  <p>吃过了,吃了红烧排骨和酸菜鱼。</p>
	</div>
</body>
</html>

css:

.left,.right{
    min-height: 40px;
    position: relative;
    display: table;
    text-align: center;
    border-radius: 7px;
    border: 1px solid #736262;
    background-color: #9EEA6A;
}
.right{                  /*使左右的对话框分开*/
    top: 40px;
    left: 60px;
}
.left > p,.right > p{    /*使内容居中*/
    display: table-cell;
    vertical-align: middle;
    padding:  10px;
}
.left:before,.right:after{   /*用伪类写出小三角形*/
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: 8px solid transparent;
    position: absolute;
    top: 11px;
}
/*分别给左右两边的小三角形定位*/
.left:before{    
    border-right: 8px solid #9EEA6A;
    left: -14px;
}
.right:after{    
    border-left: 8px solid #9EEA6A;
    right: -14px;
}

图示:


4 点击链接出现[]

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>伪元素</title>
	<link rel="stylesheet" type="text/css" href="index.css">
</head>
<style type="text/css">
	body{
	    background-color: #425a6c;
	}
    a {
	    position: relative;
	    display: inline-block;
	    outline: none;
	    color: #fff;
	    text-decoration: none;
	    font-size: 32px;
	    padding: 5px 20px;
	}
	a:hover::before, a:hover::after { position: absolute; }
	a:hover::before { content: "\5b"; left: -10px; }
	a:hover::after { content: "\5d"; right:  -10px; }
</style>
<body>
	<a>鼠标移上去出现方括号</a>
</body> 
</html>

图示:


5 多张背景图片的应用

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>伪元素</title>
	<link rel="stylesheet" type="text/css" href="index.css">
</head>
<style type="text/css">
#silverback {
    position: relative;
    z-index: 1;
    min-width: 200px;
    min-height: 200px;
    padding: 120px 200px 50px;
    background: #d3ff99 url(img/vines-back.png) -10% 0 repeat-x;
}
#silverback:before, #silverback:after {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding-top: 100px;
}
#silverback:before {
    content: url(img/gorilla-1.png);
    padding-left: 3%;
    text-align: left;
    background: transparent url(img/vines-mid.png) 300% 0 repeat-x;
}
#silverback:after {
    content: url(img/gorilla-2.png);
    padding-right: 3%;
    text-align: right;
    background: transparent url(img/vines-front.png) 70% 0 repeat-x;
}
</style>

<body>
	<div id="silverback">一个标签应用了5张背景图片</div>
</body> 
</html>

6 :自定义边框

查看:点击打开链接

7 给 blockquote 引用段添加巨大的引号作为背景,我们可以用 :before 来代替 background 了,即可以给背景留下空间,还可以直接使用文字而非图片:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>伪元素</title>
	<link rel="stylesheet" type="text/css" href="index.css">
</head>

<style type="text/css">
	blockquote::before {     
    content: open-quote;     
    position: absolute;     
    z-index: -1;     
    color: #DDD;     
    font-size: 120px;     
    font-family: serif;     
    font-weight: bolder;     
}  
</style>
<body>
	<blockquote></blockquote>
</body> 
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值