辛星和您一起手写CSS气泡

上文中我发布了一篇手写导航条的博客,那么这一篇博客我将和大家一起手写气泡,那么什么是气泡呢?先给那些刚入门的童鞋一个截图,来更好的认识一下什么是气泡把:

这就是一个简单的气泡啦,那么它主要用来干什么呢?他可以用来当我们点击某段文字的时候再显示出来,当然,这个可能需要用到Javascript的知识,我们先不提了,我们这里先给大家看一下如何去做一个CSS气泡把。

我们先分析一下思路,它的实现无非就是一个矩形的边框,然后下面是一个三角形,但是这个三角形是一个镂空的,也就是是一个空心三角形,并且它还是一个只有两条边的三角形,那么我们先来看一下如何去做出来这个三角形,其实实现这个三角形还是蛮简单的,我先给出代码,然后给出解释:

<html>
<head>
<style type="text/css">
	#demo{width: 0px;height: 0px;border-width: 75px;border-style:solid;border-color:#F00  transparent transparent; }

</style>
</head>
<body>
<div id = "demo"></div>
</body>
</html>

上面这段代码大家去运行的话,发现只有一个红色的倒立的三角形,效果图如下:

那么它是如何实现的呢?首先我们创建了一个div,然后设置其id为demo,然后我们在css中把它的宽度和高度都设置为0,把边框设置为75像素,这一点很关键,即其实我们是看不到它的内容的,我们所看到的只有它的边框,而它的四个边框的颜色都是红色的,但是就但是在,它的下边框和左右边框都是透明的,因此,我们就只能看到上边框了,也就是我们只能看到一个倒立的三角形,看不到整个的矩形区域了,这就是这个三角形的实现原理,如果大想要做出来向右的三角形,可以自己写一写试试奥。

第一步,我们先写一个my.html文件,内容如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
	<title>辛星手写CSS气泡</title>
	<link rel="stylesheet" type="text/css" href="xing.css">
</head>
<body>
<div class="tag">
 <div class="arrow">
     <em></em><span></span>
    </div>
    辛星CSS手写气泡
</div>
</body>
</html>

第二步,我们新建一个xing.css文件,开始我们的css编辑工作,我们要在em中实现这个三角形,然后用span去镂空它,因此我们的tag来实现文本显示,我们用下面的arrow来实现箭头,我们先写tag的样式:

.tag{ width:300px; height:100px;
	 border:5px solid #09F; position: relative;
	 background-color:#FFF;
}

第三步,我们开始写下面的这个箭头,我们就需要用到em这个标签了,在写之前,有一个问题:那就是它的布局怎么办,这里我们采用绝对布局,关于绝对布局,如果大家不清楚,可以翻翻我前面的教程,里面有讲解。关于如何实现这个箭头,上面也有讲解,如果读者不清楚,可以跟着代码多敲敲,试验几遍,我们添加后的代码如下:

.tag{ width:300px; height:100px;
	 border:5px solid #09F;
	 background-color:#FFF;
}
.tag em{display:block; border-width:20px;
	position:absolute; bottom:-40px; left:100px;
	border-style:solid ;
	border-color:#09F transparent transparent;
}

第四步,可能有童鞋会感觉有问题,刷新界面之后这个下拉箭头没有实现,那又是什么原因呢?这就是我们在一个子元素中使用绝对布局的话,如果父元素中没有指定布局模式,那么子元素就会相对于body进行定位,在body的下面40个像素,当然什么都不会看到了,于是我们在tag中变化代码如下,即添加它的定位属性,变化后的代码如下:

.tag{ width:300px; height:100px;
	 border:5px solid #09F; position: relative;
	 background-color:#FFF;
}
.tag em{display:block; border-width:20px;
	position:absolute; bottom:-40px; left:100px;
	border-style:solid ;
	border-color:#09F transparent transparent;
}

此时,让我们来看一下效果把:

其实,此时已经可以说是一个气泡了,如果读者要求不高的话,现在已经可以打完收工了。

第五步,进一步的修饰,其实这个时候就很简单了,我们下面的span几乎就是照抄上面的em标签,我们只需要让该元素的向下的箭头是一个白色的三角形就Ok了,因此添加之后的代码如下:

.tag{ width:300px; height:100px;
	 border:5px solid #09F; position: relative;
	 background-color:#FFF;
}
.tag em{display:block; border-width:20px;
	position:absolute; bottom:-40px; left:100px;
	border-style:solid ;
	border-color:#09F transparent transparent;
}
.tag span{display:block; border-width:20px;
 position:absolute; bottom:-33px; left:100px;
 border-style:solid ;
	border-color:#FFF transparent transparent;
}

好啦,我们来看一下效果:

好啦,这就完成了我们的用纯CSS手写气泡的效果,如果大家还有什么问题,可以在下面给我留言,我会认真查看并回复的,谢谢。

时间: 2024-11-02 23:23:43

辛星和您一起手写CSS气泡的相关文章

辛星和您一起用纯CSS美化面包屑导航

首先讲一下面包屑导航为什么叫做面包屑导航,它来自于一个童话故事,这个童话故事的名字也非常有特色,叫做"汉塞尔和格莱特",有一天他们去森林里游玩,但是走着走着发现迷路了,大家都知道,森林里都都是数,不管往哪边走,还是茫茫的一片树,于是他们在沿途走过的地方都撒下面包屑,他们利用这些面包屑帮助他们走出了森林,因此,面包屑导航的意思就是说我们去过哪些地方,以及我们如何回到我们之前的位置. 有时候我们特别需要面包屑导航,比如我们在某论坛或者某网上商城闲逛的时候,很容易被茫茫的帖子和众多的商品搞的

CSS失效网页乱码原因兼容问题-手写CSS代码注意什么

我们在写html代码和css 代码应该注意些什么,这节我们讲解大小写与编码问题.(体感音乐) 乱码VS编码前面我们介绍过导致网页乱码.CSS失效等原因一部分是由于自己编写的时候没有注意编码问题,不编码转化问题,常常因为自己写的时候使用一种编码,发现别人比较好的DIV+CSS片段比较好直接就复制过来用,结果别人编码与自己编码不符合从而造成网页在IE中呈现乱码,或CSS失效(CSS声明).解决办法使用软件中编码转化功能进行网页代码转化.如使用Dreamweaver中功能转化编码.-了解语言编码cha

辛星浅析/etc/fstab文件写错的修复方法

今天给人示范lvm的设置,结果在后来修改/etc/fstab的时候不小心写错了,然后重启系统的时候就进入了repair   filesystem模式,这个模式下是无法通过vi来修改/etc/fstab的,而且该模式下也无法通过touch来创建文件,所有系统都是只读的,那么我们该怎么办呢? 我们可以通过执行 #mount  -o   remount,rw   /    来让根目录可以编辑,然后我们通过vi来把/etc/fstab文件修改为正确的配置即可,这样我们通过reboot来重启系统即可.

辛星跟您解析在CSS面包屑中三角形的定位问题

刚才看到有位网友很纳闷第二个棕色三角形是怎么定位的,我当感觉在下面说不清楚,就特别开了一片博客,来说清楚它.首先,前面的代码我们先抄下来,至于前面这部分代码是怎么来的,读我的用CSS制作面包屑导航的那篇博文,如果不明白,可以问我,我会解释的. 首先是html代码,我们直接拿过来,粘贴一下: <html> <head> <title>辛星手写CSS面包屑</title> <link rel="stylesheet" type=&quo

【2014】【辛星】【php】【秋季】【5】其他的变量运算符

**************字符串运算符****************** 1.字符串运算符是一个. 也就是一个点,这个点把左边的字符串和右边的字符串拼接为一个字符串. 2.比如$a = "辛星永"; $b = "爱小倩"; 那么$a.$b就是"辛星永爱小倩"; 3.我们写一个xin14.php练练手: <span style="font-family:KaiTi_GB2312;font-size:18px;">

辛星和您一起用CSS手写导航条

第一步,我们新建一个my.html文件,填写内容如下,这个html文件直到最后都不用动了,它就是这些内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

2014年辛星解读css第一节

CSS是Cascading Style Sheets的缩写.即层叠样式表,它用于表现HTML的样式,即HTML仅仅是去写该网页有哪些内容,至于怎样去表现它们,由CSS去定制. *************时代的呼唤************* 1.在之前,我们直接把网页的格式写到HTML中去,这样会造成格式的混乱,并且难以阅读和改动,只是这不是最大的问题,最大的问题在于我们想给网页换一个表达样式的时候,须要改动的地方不仅非常多关键是非常零散,须要花费非常大的力气去定位这些样式. 2.于是,把网页内容

辛星彻底帮您解决CSS中的浮动问题

浮动,是CSS布局中必须经过的一道坎,如果不熟悉浮动,那么CSS的布局就如同空中楼阁,而谈到浮动,更多的是和div相结合,div是一个块级元素,这个我前面的博文有介绍,如果大家喜欢我的风格,可以搜索下. 下面我们进入正题,所谓浮动,可以用css的属性float来定义,比如float:left就是向左浮动,float:right就是向右浮动,我们先看一个不浮动的例子把,首先是这个html文件,这个文件我们是一直都不会动它了,它的内容如下: <html> <head> <link

辛星与您彻底解决CSS浮子(下一个)

上述博客文章,我们解释如何使用CSS浮子,这是一个看我们如何解释清除CSS浮子.其实CSS浮动是很清楚easy,只需要使用clear它财产,至于如何利用好它.很多人可能会表决雾,我是个新手的时候还经常迷路,清除浮动是个随机事件一样,当然.它不是,它的规律性非常强,就让辛星来给您剖析一下这个规律把. 首先还是上面的HTML文件,它的内容例如以下: <html> <head> <link rel="stylesheet" type="text/css