博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】如何建立一个样式新颖的CSS3搜索框
阅读量:5285 次
发布时间:2019-06-14

本文共 2784 字,大约阅读时间需要 9 分钟。

搜索框大概是web开发中最常用的UI元素之一,我想基本没有必要去介绍如何使用它。无论是网站还是web应用,都会为了增强用户体验而添加它,那么你是不是也想过设计一个别致的搜索框?

在今天的文章中,大家将会学到如何使用伪元素来创建一个超酷的CSS3搜索框。当然在开始介绍前你也可以或者查看在线演示。

HTML举例:

正如接下来你所看到的,标记很少,并且很容易理解:

<form class=“cf form-wrapper”>

<input type=“text” placeholder=“Search here.。.” required>

<button type=“submit”>Search</button>

</form>

你可能注意到了HTML5的特殊属性,像placeholder和required,简介如下:

.placeholder-基本上,这个属性的作用在于当文本框获得焦点之前,先在文本框里显示一个域的信息,直到获得焦点后,域的信息被隐藏。

.required-这个属性说明了当前元素是表单提交中的一个必需属性。

HTML5也给我们带来了一个新的type属性:type="search"。

小贴士:HTML 元素像img 和input 都没有内容,所以,像before这样的伪元素不会为我们的搜索框呈现任何箭头。我的解决方案是使用button type=“submit” 元素代替普通的input type=“submit”。这样,我们就可以用ENTER键来提交表单。

CSS举例

接下来,你将会看到demo里必要的样式:

清除浮动

.cf:before, .cf:after{

content:“”;

display:table;

}

.cf:after{

clear:both;

}

.cf{

zoom:1;

}

表单元素

有前缀的属性像-moz、-box、-shadow 不包括在内,我只想让下面的代码保持干净。

/* Form wrapper styling */

.form-wrapper {

width: 450px;

padding: 15px;

margin: 150px auto 50px auto;

background: #444;

background: rgba(0,0,0,.2);

border-radius: 10px;

box-shadow: 0 1px 1px rgba(0,0,0,.4) inset, 0 1px 0 rgba(255,255,255,.2);

}

/* Form text input */

.form-wrapper input {

width: 330px;

height: 20px;

padding: 10px 5px;

float: left;

font: bold 15px ‘lucida sans’, ‘trebuchet MS’, ‘Tahoma’;

border: 0;

background: #eee;

border-radius: 3px 0 0 3px;

}

.form-wrapper input:focus {

outline: 0;

background: #fff;

box-shadow: 0 0 2px rgba(0,0,0,.8) inset;

}

.form-wrapper input::-webkit-input-placeholder {

color: #999;

font-weight: normal;

font-style: italic;

}

.form-wrapper input:-moz-placeholder {

color: #999;

font-weight: normal;

font-style: italic;

}

.form-wrapper input:-ms-input-placeholder {

color: #999;

font-weight: normal;

font-style: italic;

}

/* Form submit button */

.form-wrapper button {

overflow: visible;

position: relative;

float: right;

border: 0;

padding: 0;

cursor: pointer;

height: 40px;

width: 110px;

font: bold 15px/40px ‘lucida sans’, ‘trebuchet MS’, ‘Tahoma’;

color: #fff;

text-transform: uppercase;

background: #d83c3c;

border-radius: 0 3px 3px 0;

text-shadow: 0 -1px 0 rgba(0, 0 ,0, .3);

}

.form-wrapper button:hover{

background: #e54040;

}

.form-wrapper button:active,

.form-wrapper button:focus{

background: #c42f2f;

outline: 0;

}

.form-wrapper button:before { /* left arrow */

content: ‘’;

position: absolute;

border-width: 8px 8px 8px 0;

border-style: solid solid solid none;

border-color: transparent #d83c3c transparent;

top: 12px;

left: -6px;

}

.form-wrapper button:hover:before{

border-right-color: #e54040;

}

.form-wrapper button:focus:before,

.form-wrapper button:active:before{

border-right-color: #c42f2f;

}

.form-wrapper button::-moz-focus-inner { /* remove extra button spacing for Mozilla Firefox */

border: 0;

padding: 0;

}

希望大家能喜欢这个教程,并且期待你们的反馈。谢谢阅读!

via

来源:

转载于:https://www.cnblogs.com/dirgo/p/4967677.html

你可能感兴趣的文章
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>
Luogu_4103 [HEOI2014]大工程
查看>>
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>