您现在的位置是:网站首页> 编程资料编程资料
利用CSS实现酷炫的下拉框特效_CSS教程_CSS_网页制作_
2021-09-10
1108人已围观
简介 这篇文章给大家介绍的是一个利用CSS实现的酷炫的下拉框,实现后效果真的非常不错,文中给出了详细实现过程和示例代码,感兴趣的朋友们下面来一起看看吧。
首先来看看要实现的效果图

想要制作这么一个效果还是比较麻烦的,但是代码并不难理解。
首先,来看看 Html 代码。
- <div class="container">
- <div class="heading">
- <h2>Custom Selecth2>
- div>
- <div class="select">
- <p>Please selectp>
- <ul>
- <li data-value="HTML5">HTML5li>
- <li data-value="CSS3">CSS3li>
- <li data-value="JavaScript">JavaScriptli>
- <li data-value="JQuery">JQueryli>
- <li data-value="Backbone">Backboneli>
- ul>
- div>
- div>
可见,我们并没有利用原生的 select 元素,而是利用其它元素来模拟这个效果。我们为 li 元素指定了 data-value,主要是接下来我们会用 JQuery 获取选中值并将其放置到 p 元素下。
下面逐步来看 CSS 代码。
- * {
- margin: 0;
- padding: 0;
- }
- html {
- font-family: 'Terminal';
- font-size: 62.5%;
- }
- body {
- background-color: #33CC66;
- }
1、将网页中所有元素的外边距和内边距设置为 0。
2、将网页中的默认字体设置为 Terminal,字体大小设置为 62.5%, 也就是 10px。
3、设置背景颜色为 #33CC66。
- <link href='http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis' rel='stylesheet' type='text/css'>
上面我们用到了 Terminal 字体,而且接下来我们还会使用 Lobster 字体,所以用这行代码添加引用。
1、指定 headng, select 宽度并指定其水平居中。
2、修改 heading 的宽度,主要是为了让其宽度大于 select 的宽度,显得更加美观。然后指定其上外边距和下外边距。
3、设置 heading 下 h2 元素的字体和字体大小,颜色。
- .select > p, .select ul {
- background-color: #ffffff;
- font-size: 2rem;
- border: 1px solid bisque;
- border-radius: 5px;
- margin-bottom: 0;
- }
- .select > p {
- text-align: left;
- padding: 1rem;
- position: relative;
- border-bottom-rightright-radius: 0;
- border-bottom-left-radius: 0;
- cursor: pointer;
- color: rgba(102, 102, 102, .6);
- }
- .select > p:after {
- display: block;
- width: 10px;
- height: 10px;
- content: '';
- position: absolute;
- top: 1.4rem;
- rightright: 2rem;
- border-bottom: 1px solid #33CC66;
- border-left: 1px solid #33CC66;
- transform: rotate(-45deg);
- transition: transform .3s ease-out, top .2s ease-out;
- }
1、设置 p 和 ul 元素的背景颜色和边框等设置。
2、为 p 元素单独指定样式,并设置其 position 属性,主要是为了下面绘制右侧的下拉按钮。
3、利用 :after 在p 元素的右方绘制下拉按钮,可以看出来,我们是利用左下边框然后旋转 -45 度 模拟的这个效果。值得注意的是,我们需要将其 display 设置为 block,并且设置宽高,否则看不到 这个效果。
- .select ul {
- margin-top: 0;
- border-top-left-radius: 0;
- border-top-rightright-radius: 0;
- list-style-type: none;
- cursor: pointer;
- overflow-y: auto;
- max-height: 0;
- transition: max-height .3s ease-out;
- }
- .select ul li {
- padding-left: 0.5rem;
- display: block;
- line-height: 3rem;
- text-align: left;
- }
1、设置 ul 的一些默认属性,并将其设置最大宽度为 0,指定 overflow-y 为 auto ,这个时候ul 将会被隐藏。
2、在这里设置的时候我遇到了一个问题,就是 li 标签始终占不满 ul 的一行,那是因为其默认有 margin 和 padding ,所以在一开始的时候就将网页中所有元素的外边距和内边距设置成了 0。
- .select.open ul {
-
相关内容
- CSS3实现精美横向滚动菜单按钮_css3_CSS_网页制作_
- div+css实现带箭头的面包屑导航栏_Div+CSS教程_CSS_网页制作_
- 不定宽高的文字在div中垂直居中实现方法_Div+CSS教程_CSS_网页制作_
- CSS中px em rem区别与使用_CSS教程_CSS_网页制作_
- 纯CSS3实现Material Design效果_css3_CSS_网页制作_
- 多步骤进度条的实现原理及代码_Div+CSS教程_CSS_网页制作_
- 菜单栏 “三” 变形为“X”css3过渡动画_CSS_网页制作_
- 利用css3 translate完美实现表头固定效果_css3_CSS_网页制作_
- 为何img、input等内联元素可以设置宽高_CSS_网页制作_
- css中行内元素和块级元素的区别_CSS_网页制作_
点击排行
本栏推荐
