CSS实现对话框效果

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS实现对话框效果</title>
	<style>
		/*CSS实现对话框效果一*/
		.test1{width:300px;height: 30px; padding:30px 20px; margin-left:100px; background: #eb7956; position:relative;}
		.test1 div{ width:0; height:0; position:absolute;}
		.test1 .bot{
		    border-width:20px;
		    border-style:solid;
		    border-color:#ffffff #eb7956 #eb7956 #ffffff;
		    left:-40px;
		    top:40px;
		}
		.test1 .top{
		    border-width:10px 20px;
		    border-style:solid;
		    border-color: transparent  #ffffff #ffffff transparent ;
		    left:-40px;
		    top:60px;
		}
		/*CSS实现对话框效果二*/
	    .test2{width:300px; padding:30px 20px; border:5px solid #beceeb; position:relative; margin-top: 10px;}
	    .test2 div{width:0; height:0; font-size:0; overflow:hidden; position:absolute;}
	    .test2 div.bot{
	        border-width:20px;
	        border-style:solid dashed dashed;
	        border-color:#beceeb transparent transparent;
	        left:80px;
	        bottom:-40px;
	    }
	    .test2 div.top{
	        border-width:20px;
	        border-style:solid dashed dashed;
	        border-color:#ffffff transparent transparent;
	        left:80px;
	        bottom:-33px;
	    }
		/*CSS实现对话框效果三*/
	    .test3{width:300px; height: 30px; border-radius: 160px/45px; padding:30px 20px; margin-left:100px; background: #eb7956; position:relative; margin-top: 10px;}
		.test3 div{ width:0; height:0; position:absolute;}
		.test3 .bot{
		    border-width:20px;
		    border-style:solid;
		    border-color:transparent #eb7956 #eb7956 transparent;
		    left:-30px;
		    top:40px;
		}
		.test3 .top{
		    border-width:10px 20px;
		    border-style:solid;
		    border-color: transparent  #ffffff #ffffff transparent ;
		    left:-30px;
		    top:60px;
		}
	</style>
</head>
<body>
	<div class="test1">
	    <div class="bot"> </div>
	    <div class="top"> </div>
	    CSS实现对话框效果一
	</div>
	<div class="test2">
	    <div class="bot"></div>
	    <div class="top"></div>
	    CSS实现对话框效果e二
	</div>
	<div class="test3">
	    <div class="bot"> </div>
	    <div class="top"> </div>
	    CSS实现对话框效果三
	</div>
</body>

<!-- 
	IE6下有些bug需要做下兼容

	1. IE6的奇偶bug
	如果定位外框高度或是宽度为奇数,则IE6下,绝对定位元素的低定位和右定位会有1像素的误差。所以,尽量保证外框的高度或宽度为偶数值。

	2. IE6的空div莫名高度bug
	IE6下,空div会有莫名的高度,也就是说height:0;不顶用,此时形成的尖角的实际占高于其他浏览器是有差异的。可使用font-size:0; + overflow:hidden;修复此问题。

	3. IE6不支持实线边框透明transparent属性
	IE6不支持实线边框透明transparent属性,当某边框设置为transparent属性,且有宽度的话,那么透明会以默认的黑色显示的。解决方法有两个,一是将需要隐藏的颜色设置为背景色,这样与透明效果一样,此法有局限性,在复杂“边框法”应用下是行不通的;二是可以使用dashed代替solid,可以实现IE6下边框transparent透明。
 -->
</html>

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现对话框小尾巴的关键是使用 CSS 的 `::before` 和 `::after` 伪元素来画出三角形。以下是一个简单的示例代码: HTML 代码: ```html <div class="dialogue"> <div class="bubble">这是一条对话</div> </div> ``` CSS 代码: ```css .dialogue { position: relative; } .bubble { position: relative; padding: 10px; background-color: #ffffff; border-radius: 5px; box-shadow: 0 0 5px #888888; font-size: 16px; color: #333333; } .bubble::before { content: ""; position: absolute; bottom: -10px; left: 50%; border: 10px solid transparent; border-top-color: #ffffff; transform: translateX(-50%); } .bubble::after { content: ""; position: absolute; bottom: -8px; left: 50%; border: 10px solid transparent; border-top-color: #888888; transform: translateX(-50%); } ``` 解释一下上述代码: - `.dialogue` 元素用来定位对话框和三角形。 - `.bubble` 元素是对话框的内容。注意,它的 `position` 属性必须是 `relative`,因为三角形是相对于它进行定位的。 - `.bubble::before` 伪元素用来画出白色的三角形。`border` 属性用来画出三角形,`border-top-color` 属性用来设置上边的边框颜色为白色。 - `.bubble::after` 伪元素用来画出阴影效果。同样使用 `border` 属性画出三角形,但是 `border-top-color` 属性设置为灰色,形成阴影效果。 这样就实现了一个简单的对话框小尾巴效果。你可以根据需要调整三角形的大小和位置,以及对话框的样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值