网页CSS圆角(css round conner)的制作方法总结

前几天同学 博译论 提到了圆角的制作方法,所以我来做个总结。其实网页圆角的实现方法数不胜数,比如按类别分为:有图片圆角,无图片圆角。有图片圆角又分为单图片,多图片,边缘清晰,柔和圆角;无图片可以分为CSS实现圆角,JS实现圆角,浏览器圆角。而且圆角制作还可以和一些常用的CSS技术结合实现如:滑动门,CSS sprite 。。晕了吧!哈哈

我们今天不讨论类别,就当下网页制作比较常用的几种逐个分析,大家根据自己的情况选择使用。

一 . 图片圆角

对于单图片等简单的圆角效果我们就不在这里列出来了。

1. 山顶角效果

1> 在PhotoShop中用铅笔工具画出如下的一个5*5像素的透明GIF图片(这是我放大后的):

corner

基本原理:白色像素部分可以遮盖背景颜色,透明区域则不影响从而达到如下效果:

conner-style

2> xhtml代码:

<div>
    <div>
        <div>
            <div>
                <p>内容内容内容内容内容内容内内容内容内容</p>
            </div>
        </div>
    </div>
</div>

3> css代码:

.wrapper 	{  width:200px; padding:5px;
	         background:#ccc url(corner.gif) left top no-repeat;}
p 		{  padding:10px;}

这样第一个圆角就实现了,接来的工作基本一样:再做右上,左下,右下的三个透明GIF图片。然后分别设置为box,outer,inner元素的背景。

源代码下载

2. 淘宝圆角框的制作方法

上面例子中会用到四张图片,在淘宝圆角框中只对它做了改进而且只需要一张图片就能实现效果。我大概说一下主要思想,如果想彻底了解可以去 青色同学的博客,里面有详细的讲解包你一看就懂。

1> 制作一张10*10像素如下图的圆:

main_panel_corners —>这张图片将被用CSS图像定位技术平均分成四份放置在四个角上来实现圆角效果。

2> 核心代码如下:

<div> <!--相对定位的外部div-->
<!--四个.inner为长宽5px的绝对定位盒子,分别在.outer的四个角-->

	<!--利用CSS图片定位技术将图片定位到inner div中 -->
		<div></div>
   	<div></div>
   	<div></div>
   	<div></div>
</div>

有图片的圆角制作方法都可以从以上这两种演变过来,最基本的要点就是 平铺你的圆角图片

二 . 无图片圆角

1.纯CSS制作圆角效果

这个技术也被大家讨论过多次了,先前我也写过 这样的一篇文章,如果还不了解此项技术的可以去看看。我在这儿就不多讲了。

2.JQuery实现圆角

1> 该方法除了引入JQuery的核心包外还必须引入一个JQuery插件”jquery.corner.js

2> 用此包的”corner()”方法实现圆角,JQuery代码如下:

$(function(){
	$('.round').corner("round 10px");
	//.round为你要设置圆角的元选素择器,"round 10px"且直径为10px的圆角。
});

3.CSS 3圆角

新版本的CSS 3.0加入了元素的圆角属性:我们利用这个属性就可以方便的实现圆角效果了,不过有一点就是老浏览器是不支持CSS 3.0的规则的。必须在支持的浏览器里面才能正确显示。代码如下:

-moz-border-radius: 20px;     /*FireFox中的圆角属性*/
-webkit-border-radius: 20px;  /*webkit内核器中的圆角属性*/
border-radius: 20px;          /*FireFox中的圆角属性*/

详细信息看这里

ok!写完了,最后总结两点

对于一般流量不大的网页而言都会用一张图片来实现圆角,简单而且效果好。当然如果你求精的话可以费点神用上面讲到的诸如山顶角等技术来实现圆角。

对于圆角的使用比较多的页面可以选择用JQuery的插件来实现,这样的话一来方便而且兼容性好。利用率高。所以说 没有最好的方法只有最适合自己的

网易页面重构面试题

前一阵子在网上看见留传的一道前端的面试题。其实很早就开始做了,记得上次我做过一个山寨版的163首页。不过今天这个有点不一样:完全按照给出的 需求对原来的设计稿进行最精确的还原,还要最大限度地兼容各大浏览器。一共花了我三天的零碎时间。也学到了很多的东西。放上来和大家分享下。有兴趣的还可 以自己做试试,有什么问题欢迎留言讨论。

我自己制作完成后的效果:点击预览 代码下载

制作素材很简陋就一张美工设计好的PNG:下面是要求达到的效果

继续阅读 »

JQuery制作无限级下导航拉菜单详解

以前也写过关于JQuery制作二级菜单的方法,今天自己彻底研究了一下无限级的下拉菜单,总结一下制作方法。相信无限级的会做了以后你就能掌握下拉菜单这个技术了。进入正题…

我先给出我的基本制作流程:

1.写出结构合理的xhtml。 主要用到列表ul的嵌套。

2.写好布局的CSS代码。 主要给子菜单定位和相关设置。

3.写出JQuery代码。 主要用到JQuery的一个hover()方法

一:xhtml

为了不至于太乱我们可以先研究一个菜单的xhtml代码。我写出了我认为比较合理的一种,如果你看起来吃力的话有个好办法就是抄十遍:

<li><a href="#">Menu1</a>	//.menu1是菜单的个数,可以整体copy
    <ul>	//.item的作用是为隐藏后面的li,.menu的作用是为JQuery提供循环
      <li><a href="#">Menu-item1</a></li>
      <li><a href="#">Menu-item2</a></li>
      <li><a href="#">Menu-item3</a></li>
      <li><a href="#">Menu-item4</a>
      	<ul>
              <li><a href="#">Menu-item1</a></li>
              <li><a href="#">Menu-item2</a></li>
              <li><a href="#">Menu-item3</a></li>
              <li><a href="#">Menu-item4</a></li>
         </ul>
      </li>
    </ul>
  </li>

注意:这里我只给出了两个子菜单,要让它无限扩充的话只要把”ul.menu”所有代码复制到你相加的子菜单的li标签里面的a标签之后

二:核心CSS代码

.menu 		{ width:100px; float:left; border-right:5px solid #000}
.menu1		{ float:left; width:100px;}
#menu li 	{ width:100px;}
.menu a 	{ height:25px; line-height:25px; width:100px;
 border:1px solid #f00; display:block; text-align:center; }

.item li 	{ display:none;}	/*通常情况下隐藏子菜单*/
.item li 	{ position:relative;}
/*设置相对定位,便于子菜单位于父菜单的右侧100px*/

.item li ul { position:absolute; left:100px; top:0;}

三:JQuery代码

$(function (){
	$(".menu li").hover(
       //让.menu下面的列表项li响应鼠标移到到上面的事件
		function (){
			$(this).children().children("li").fadeIn();
			//当前对象的子子元素li淡入
		},
		function (){
			$(this).children().children("li").fadeOut();
			//当前对象的子子元素li淡出
		}
	);
});

最终代码与效果预览

注意:IE6中会出现一点bug,如果你知道解决方法的话可以谈讨一下
感谢 倾心 同学的帮助,菜单在IE6下的响应问题已解决.

最小高度min-height的浏览器兼容方法

我们知道标准浏览器是支持min-height这个CSS属性的,但是在IE6中却不被认可。在我上次做主题的时候刚好遇见这个问题,今天就来讨论一下。看下图(右),要求是这样的:

min-height-study

innerBox(高度自适应)里面有两个浮动div元素(what and why),”why盒子”高度固定内容固定,”what盒子”内容不固定,想要解决”what盒子”必须延深与innerBox一致的问题,看到这里大多数人会想起自己博客的布局了吧,呵呵,这个技巧可是很常用的哦。显然解决这个问题的最好方法就是实现最小高度(min-height)。

最重要的一点是 : what内容高度小于why时如何让它在IE6中模仿min-height的效果。

而需要我们了解的一点是 : IE6中元素的height,width会随着它里面内容的增加面自动扩大

当我们在what中加入一条CSS规则 使它的高度和why一致就可以搞定IE6了,内容过多它会处适应而不是溢出,但是当内容增加时在FireFox标准浏览器里面会出现上图(左)所示FF中的溢出情况。

我们给what盒子加上min-height让它的最小高度和why一样,这时就好了。不过这时候我们应该把刚才为了搞定IE6加上的height值做成hack让它只在IE6中起作用,方法很简单在height属性值前加上下划线”_” OK搞定。

代码与效果预览

最好用的WordPress必备插件总结

WordPress之所以强大,插件就起到了一半的作用。这些好用的插件可以让你博客写得更顺手,功能更强大从而体会到写博客的乐趣,据WordPress官方网站统计光插件就高达种,再加上各式各样的主题你完全可以把wp打造成你想要的任何形式的网站。用WordPress一年了自己总结了几个我觉得好用的插件精简后给大家介绍一下,当然好不好用得看自己的个人习惯哦。

wordpress-plugin

继续阅读 »