整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS:鼠标悬停在按钮上,文字加粗,但按钮宽度不变

HTML 在页面上放置了一个按钮

<button class="btn">点击按钮</button>

如果想要实现当鼠标悬停在按钮上时,按钮文字加粗,在 CSS 里这样设置

.btn:hover {
    font-weight: bolder;
}

但是这样做了之后,当文字加粗后,势必会将按钮的尺寸撑的更大。那么有可能会影响到按钮周围其他 HTML 元素的位置,如果你的页面内容比较多,而且比较紧凑的话,撑大的按钮会将周围的元素推开,这很有可能会扰乱页面的布局。


如果既要保留按钮的鼠标悬停文字加粗的效果,还不能影响到周围元素的位置,可以再给按钮设定一个固定的尺寸。

.btn {
    padding: 1rem;
    width: 4rem;
}

.btn:hover {
    font-weight: bolder;
}

这样按钮的尺寸就不会变化,但是文字在鼠标悬停时会加粗,按钮周围的元素也不会受到影响。


以上这种情况一般在页面顶部的导航条上最为常见,请大家注意。

SS伪元素主要是指HTML中没有定义、存在的元素,伪元素本身不是真正的页面元素,但是伪元素在使用过程中,其用法与效果与其他真正页面元素是一样的。伪元素只能在定义基础上动态显示其运行效果,在HTML源文件中并没有该元素的真正代码。CSS3中所定义的所有伪元素与伪类描述如下图所示:

CSS伪元素与伪类


按钮波纹ripple效果展示

ripple波纹

按钮的波纹效果主要是指按钮在点击时展示出的动态效果。在实现效果过程中可行的方法方式较多,例如可以使用JavaScript、CSS动画、JQuery等。网上目前按钮波纹实现效果较多,部分样式效果展示如下:

波纹效果展示


CSS 伪类波纹效果实现

CSS伪类波纹效果主要借助于before、after伪类与hover悬停选择器等实现类似波纹效果,本文主要借助after及hover等实现按钮的波纹效果,本例设计两种类似波纹效果,最终实现效果展示如下图所示:

设计样式1

设计样式2

本文设计实现的两类波纹效果样式描述如上图gif所示,其实现过程描述如下:

1、按钮基本样式设计

本例按钮基本样式主要包括宽度、高度、背景颜色等。使用元素选择器与类选择器定义了按钮元素的基本样式,其样式实现代码描述如下:

button,.button2,.button{width: 200px; height: 50px; background-color: green;border: 0; cursor: pointer;color: #FFF; font-size: 16px; position: relative;}

.button类主要用以实现设计样式1,.button2类主要用于实现设计效果2,两类按钮定义描述如下:

<button type="button" class="button">Ripple1</button>
<button type="button" class="button2">Ripple2</button>

2、after伪元素使用

after伪元素主要用于实现在指定元素的后面添加新的内容。本例提供的两种设计方式都是在button元素的后面添加新的类似div的新元素,其中样式1,新添加的元素与button本身重合,尺寸也一致。设计样式2中after元素位于button的底部位置,宽度与button相同,高度为指定尺寸5px。两个设计中after元素样式为实现动态展开效果都涉及宽度width为0。after元素的样式定义如下:

.button::after{content: " "; width: 0; height: 50px; position: absolute; left:50%;top: 0%;background-color: red;opacity: 0; transition: all .4s; }
.button2::after{content: " "; width: 0; height: 5px; position: absolute; left:50%;top: 100%;background-color: red;transition: all .4s; }

after元素CSS样式定义中使用了transition属性实现动画效果,即在0.4s内实现宽度从0改变为100%。

3、hover选择器的使用

hover选择器为悬停选择器,主要对鼠标在HTML元素悬停时样式进行设置。本例两个涉及效果都是借助hover悬停选择器对after样式进行设置,在初始化设置宽度为0的基础上宽度改变为100%,最终实现两端伸展的效果。hover选择器定义after元素样式描述如下所示:

.button:hover::after{left:0%; width: 100%; opacity: 0.6;}
.button2:hover::after{left:0%; width: 100%;}

以上给出了CSS伪元素实现波纹效果,主要借助了after、before伪元素与hover悬停选择器等。设计实现效果完整源文件截图如下:

案例完整代码


以上给出了JavaScript中的事件基本概念及案例分析,如有问题可在评论区讨论。本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!相关文章链接如下:

前端开发-JavaScript中的事件(Event)及事件处理总结

前端开发-CSS3动画实现焦点(图文轮播)图效果

前端开发-JavaScript DOM动态生成文本框

前端设计-教你如何快速绘制HTML5动画

前端设计-响应式页面开发基础

前端设计-Ajax技术及实例展示

天跟大家分享与CSS3按钮相关的特效展示案例,这些例子特效主要由CSS3编写出来,除了新鲜有创意之外,编写代码质量也很高,对于前端人员或设计师都有参考的价值,当然有的不是全CSS3编写的,部分是需要与JS代码结合使用才能发挥效果。

下面大家一起看看这些CSS按钮DEMO,确实很酷哦!

1.css按钮点击效果

2.css按钮提交动画

3.css按钮悬停动画

4.css订购按钮

5.css动画按钮

6.css黑白悬停按钮

7.css蓝色动画按钮

8.css立方体按钮

9.css鼠标悬填充效果

10.css鼠标悬停边框按钮

11.按钮悬停效果

12.纯css按钮动画

13.纯css动画按钮

14.纯css多彩按钮

15.垃圾桶按钮动画

16.文件压缩按钮动画

整理了16款css按钮,经过全部测试,没发现有影响使用的bug,其中也可能存在部分bug,但是应该问题不大。

代码已上传到网盘,获取源码请关注公众号【青年码农】回复【css按钮】即可。


上一篇:HTML 颜色
下一篇:JavaScript 表格隔行变色