Css制作文本框发光效果

Css制作文本框发光效果

CSS控制文本框发光效果,是各种前端开发库使用最多的效果之一,这里面使用了CSS直接控制其样式,显示效果为:当文本框获取焦点时,文本框四周均匀缓慢发光的国度效果,提升了界面的美观,也提升了用户体验。

接下来自己尝试着做一个:

首先需要准备的CSS3的几个属性:

一、RGBA 属性

最近网上对CSS3的讨论真的很火,现在讲一下CSS3里目前用的比较广的RGBA属性的高级使用方法。这个属性的兼容问题比较简单,IE8已经支持这个属性,IE6和IE7也可以通过hack支持。RGBA和CSS2里的RBG属性差不多,只是RGBA属性多了一个透明度的定义,CSS3标准里对RGBA属性的解释如下:

/* 基本语法 */ 
em { color: Rgba(red,green,blue,opacity) } 
/* 举例 */
 em { color: rgba(255,0,0,1) } 
/* 红色,不透明 */ 
em { color: rgba(100%,0%,0%,1) }
 /* 同上 */

在现实中,使用三个1~255的十进制数值去定义一个颜色比用百分比更加准确,下面是几个颜色的RGB数值,大家在使用的时候只需要把00~FF的16进制数值换算成十进制就行了。



 二、shadow属性

Shadow属性可以在指定的方向建立物体的投影。它的表达式是这样的: Filter:Shadow(Color=color,Direction=direction)

在这里,Shadow有两个参数值:Color参数用来指定投影的颜色;Direction参数用来指定投影的方向。 这里说的方向与我们在第二节Blur属性中提到的“方向与角度的关系”是一样的。   也许您会问,前面讲到的Dropshadow属性和Shadow属性有什么不同吗? 光说的话,您恐怕还难以理解,让我们看一看分别利用这两个属性做出来的效果有什么不同(见下图):

这样一对比,就可以很明显的看出两者的不同。 Shadow属性可以在任意角度进行投射阴影,Dropshadow属性实际上是用偏移来定义阴影的。所以,看上去左图的文字和阴影就像是一体的,而右图的文字就像脱离了阴影一样。 本例的代码如下:

<html>

<head>

<title> shadow</title>

<style>//*开始设置CSS样式*//

<!--

.shadow{position:absolute;top:20;width:300;

filter:shadow(color=#cc66ff,direction=225);}

//*定义Shadow类的样式,绝对定位,Shadow属性,阴影颜色、投影方向*//

.dropshadow{position:absolute;top:180;width:300;

filter:dropshadow(color=#cc66ff,offx=10,offy=10,positive=1);}

//*设置Dropshadow类的样式,样式与Shadow类相似, 不同的是滤镜用了

Dropshadow属性,设置X轴和Y轴的偏移量*// 

-->

</style>

</head>

<body>

<div class=“shadow”>//*区域内为Shadow类*//

<p style=“font-family:bailey;font-size:48pt;

font-weight:bold;color:#FF9900;”>

Hongen Online</p>//*定义字体名称、大小、粗细、前景色*// 

</div>

<div class=“dropshadow”>//*区域内为Dropshadow类*//

<p style=“font-family:bailey;font-size:48pt;

font-weight:bold;color:#FF9900;”>

Hongen Online</p>//*定义字体样式与Shadow类的一样*//

</div>

</body>

</html>

三、圆角矩形

所谓的CSS高级技巧...其实是一些对基本技巧的创意组合, 任何手段和技巧都是解决问题的方法. 只要学会这种思考问题的方法, 你也能拥有属于自己的CSS秘籍.

 

CSS2 还没有办法创造出曲线边框, 明显的, 仅仅方框是没办法满足我们设计师的. 所以CSS圆角技术到现在还是那么的火.

(1),滑动门技术(Sliding Doors)

Top-Left.gif 与 Bottom-Left.gif 都是大图像, Top-Right.gif 和 Bottom-Right.gif 都是小图像, 小图像在大图像上根据尺寸进行自动滑动以适应内容.

该方法用到2组4个图片: 1组Top图片构成顶部圆角, 1组Bottom图片构成底部圆角以及主体. 注意容器的最大高度和宽度不能超过图片的最大高度和宽度.

html代码大致如下:
<div> <div>         <div> <h1>标题</h1> <p>内容</p> </div> </div> </div>
CSS代码大致如下:

.wrapper{width:20em;background:#ccc url(../images/bottom-left.gif) no-repeat left bottom;}
.box-outer{background:url(../images/bottom-right.gif) no-repeat right bottom;}
.box-inner{background:url(../images/top-left.gif) no-repeat left top;}
.wrapper h1{padding:2%;background:url(../images/top-right.gif) no-repeat right top;}
.wrapper p{padding:2%;}
Tips:

该方法很好的解决了容器扩展的问题, 但是要注意容器的最大尺寸不要超过背景图片所能构成的最大尺寸;

该方法需要2组额外的没有任何语义的标签, 在结构上并不理想, 我们可以用JavaScript和DOM动态添加额外元素来避免这个问题, JavaScript不作讨论.

 

滑动门适用范围很广, 以至于随处可见.

(2), 山顶角(MountainTop)

Web大师Dan Cederholm的发明, 和他在Web Standard Solutions中的变色龙小图标有异曲同工之妙.

如果用 3.滑动门 的技术创建多种颜色的圆角矩形, 那是不是要建立多组不同颜色的图片呢? 那是不是会很麻烦呀? 幸运的是Dan为我们带来了山顶角. 他建立的不是多种颜色的图片组, 而是一组圆角的蒙板. 用蒙板盖住背景色, 生成圆角矩形, 这种逆向思维令人敬佩.

基本的HTML代码和CSS代码与上例相同, 也需要4个不同的圆角蒙板. 代码不做重复.

Tips:

可以使用.png来创建圆滑的透明蒙板, 但介于IE6和以下版本不支持png-24的透明效果, 需要用到Hacks, 所以不太推荐. 所以对于gif图片的蒙板, 对于小弧度的圆角矩形效果较好, 大弧度的圆角矩形可能会出现锯齿. 同样的需要添加额外的非语义标签, 语义化狂热者们可以用JavaScript来完成这个工作.

(3), CSS Sprites 圆角
CSS Sprites并不是专门制作圆角矩形的, 但是它提供了一种制作圆角矩形的方案.
只单单用background的position来指定圆角图片背景定位, 但是会多出很多额外标签, 这里不做推荐.

另外,如果对于高级的浏览器比如Chrome,Safari,Firefox等,还可以直接使用border-radius属性。

例如:

div#rad{ border-radius:2px; background:yellow; }
也能够显示一个圆角框,而圆角的程度取决于border-radius后面的值。

四、CSS Sprites背景绝对定位

CSS Sprites, 利用CSS background-position 进行背景绝对定位, 减少HTTP请求, 加速网页显示, 解决图片载入闪动问题的技巧.

CSS Sprites最适合用来做的, 恩, 比如:

  • 清单导航的CSS鼠标翻转效果
  • 大量小图标集中的应用 (FckEditor)
  • ...很多很多,多的想不出来了.

实现原理简单地说就是控制容器的大小, 然后利用background-repeat, background-position来对背景图片进行定位. 更可以理解为将网站大量背景图整合到一张大图中的这种行为( 表象上 )

用一个鼠标翻转事件来说明吧:

准备:
HTML代码:

<ul> <li><a id="item1" href="#" title="Item 1">&nbsp;</a></li> <li><a id="item2" href="#" title="Item 2">&nbsp;</a></li> <li><a id="item3" href="#" title="Item 3">&nbsp;</a></li> <li><a id="item4" href="#" title="Item 4">&nbsp;</a></li> <li><a id="item5" href="#" title="Item 5">&nbsp;</a></li> <li><a id="item6" href="#" title="Item 6">&nbsp;</a></li> <li><a id="item7" href="#" title="Item 7">&nbsp;</a></li>

<li><a id="item8" href="#" title="Item 8">&nbsp;</a></li> <li><a id="item9" href="#" title="Item 9">&nbsp;</a></li> </ul>

CSS代码:

ul { width:300px; height:300px; margin:0px auto; padding:0px; overflow:hidden; background:transparent url(02.jpg)}
li {list-style-type:none; width:100px; height:100px; float:left}
li a { display:block; width:100px; height:100px; text-decoration:none;
background:transparent url(01.jpg) no-repeat 500px 500px; }
a#item1:hover {background-position: 0 0; }
a#item2:hover {background-position: -100px 0;}
a#item3:hover {background-position: -200px 0;}
a#item4:hover {background-position: 0 -100px;}
a#item5:hover {background-position: -100px -100px;}
a#item6:hover {background-position: -200px -100px;}
a#item7:hover {background-position: 0 -200px;}
a#item8:hover {background-position: -100px -200px;}
a#item9:hover {background-position: -200px -200px;}
 

效果图如下:

有人要问了, 这有什么用么? 这可以模拟图片热区说明, 地图提示 等等...

Tips:

CSS Sprites需要精确的背景图片定位, 比较让人头疼. 网页教学网

相对于减少了多次HTTP请求的优点, 却增加了一次性一个大的HTTP请求的缺点... 自己权衡吧

五、CSS高级属性选择器

CSS的选择器可谓种类繁多,属性选择器就是其中一种,虽然老浏览器(如IE6)不支持,但当前主流的标准浏览器都很好的支持。所以有必要学习一下。

所谓属性选择器就是能选择具有指定属性元素的CSS选择器。比如:

input[type="text"] { border:1px;}

这条CSS规则就声明了 类型为文本框的输入标签 的边框为1像素。这是一般而言的属性选择器,当元素比较复杂时就得用到可以 匹配属性 的高级选择器了。比如:

div[class^="menu"] { color:red;}

div[class$="menu"] { color:red;}

div[class*="menu"] { color:red;}

大家可以看到不同的一点就是class后面跟的三人符号:”^”,”$”,”*”。分别表示:

1.匹配具有class属性,且值以menu开头的div元素。例如:class为menu1,menua,menu0都可以渲染指定CSS规则。

2.匹配具有class属性,且值以menu结尾的div元素。例如:class为1menu,amenu,0menu都可以渲染指定CSS规则。

3.匹配具有class属性,且值含有menu的div元素。例如:class为1menu,menu1,0menua都可以渲染指定CSS规则。

六、伪类和高级的伪类

通过XX:伪类名的方式给元素添加伪类,比如在a标签的鼠标移上、鼠标点击、已访问的不同样式可以通过这个方式来实现。

a:link{ /*平常状态*/

text-decoration:none;

}

a:hover{ /*移上*/

text-decoration:underline;

color:green;

}

a:focus,a:active{ /*点击*/

text-decoration:underline;

color:red;

}

a:visited{ /*已访问*/

color:purple;

text-decoration:none;

}

除此之外还有:first-child表示第一个子元素的样式(比如<ul><li></li><li></li></ul>)等,你可以在W3C查阅更多消息

以及::选择器,用它可以实现更奇妙的效果。比如本博客使用了

*::selection{

background:rgb(233,184,233);

text-shadow:1px 1px 1px #ffb69a;

}

于是你便可以看到这种神奇效果,当你选中本文文字时样式的更改。

七、更多Webkit属性

一般Webkit属性以-webkit-开头,比如-webkit-border-radius-,相应的同时也有-moz-的属性,比如-moz-border-radius属性。这表示他们处于基本测试版,而且仅能有这些内核的浏览器识别。你可以 打开这里参考更多Webkit属性 以美化显示效果。

2,制作发光边框文本框效果

首先,拿一个input元素举例:

<input type="text" class="sdw" />

现在我们要让这个input组件在被成为焦点(点击)时向四周发光,并且为粉色,我只需添加一段CSS代码:

.sdw:focus{

 transition:border linear .2s,box-shadow linear .5s;
	 -moz-transition:border linear .2s,-moz-box-shadow linear .5s;
 	-webkit-transition:border linear .2s,-webkit-box-shadow linear .5s;
 	outline:none;border-color:rgba(241,39,242,.75);
 	box-shadow:0 0 8px rgba(241,39,232,.5);
 	-moz-box-shadow:0 0 8px rgba(241,39,232,.5);
 	-webkit-box-shadow:0 0 8px rgba(241,39,232,3);
}
就可以了。其中靛蓝色部分的文字是利用了Transition属性产生一个过渡效果,而其中的RGB色彩可以根据个人口味进行改变。预览效果如下:


为全局所有input组件添加边框发光效果

如果希望一个网页中所有的文字输入框出现这种效果,只需CSS全局设定即可。

在你的CSS文件中添加这么一句:

input[type=text]:focus,input[type=password]:focus,textarea:focus{

 transition:border linear .2s,box-shadow linear .5s;
 -moz-transition:border linear .2s,-moz-box-shadow linear .5s;
 -webkit-transition:border linear .2s,-webkit-box-shadow linear .5s;
 outline:none;border-color:rgba(241,39,242,.75);
 box-shadow:0 0 8px rgba(241,39,232,.5);
 -moz-box-shadow:0 0 8px rgba(241,39,232,.5);
 -webkit-box-shadow:0 0 8px rgba(241,39,232,3);
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现CSS边框发光动画效果,您可以使用CSS的animation属性和box-shadow属性。首先,您可以为具有边框的元素创建一个CSS类,例如名为"glow-border"的类。然后,您可以在该类中定义动画和光晕效果。 下面是一个示例代码: ```css .glow-border { animation: glow 2s infinite; border: 2px solid transparent; } @keyframes glow { 0% { box-shadow: 0 0 5px #00ff00; } 50% { box-shadow: 0 0 20px #00ff00; } 100% { box-shadow: 0 0 5px #00ff00; } } ``` 在上面的代码中,我们创建了一个名为"glow-border"的类,并为其指定了一个名为"glow"的动画。该动画会在2秒内循环播放。我们还使用了border属性来设置元素的边框样式。 在关键帧动画中,我们定义了三个关键帧,分别是0%、50%和100%。在0%和100%的关键帧中,我们使用box-shadow属性为元素添加一个绿色的发光效果。在50%的关键帧中,我们将box-shadow的大小增加,以增强发光效果。 您可以将"glow-border"类应用于您想要添加发光动画效果的元素上,例如一个div元素。通过这样做,您将看到边框发光的动画效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【前端实例代码】使用 HTML CSS 和 JavaScript 实现具有带边框悬停动画的彩色发光霓虹灯悬停效果的动画按钮...](https://blog.csdn.net/qq_22182989/article/details/126413773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值