`

用CSS来解决输入框和按钮对不齐的问题

阅读更多

今天我将介绍一下如何使用CSS中的背景图片来设计你的搜索框。之前我使用别的方法来实现我的表单和搜索框,但是这种方法看起来会更容易些,所以我想将它与感兴趣的朋友分享。

原始方式


首先来让我们看看我的原始的使用<input type=”image” src=”image_url” />的方法:
<form method="get" id="searchform" action="http://www.sohtanaka.com/">
<fieldset>
<input type="text" value="" name="s" id="s" />
<input type="image" src="img_url" id="searchsubmit" value="Search" class="btn" />
</fieldset>
</form>

这看起来挺不错的,但是它有一个不好的地方,这个图片按钮不会和搜索框对其,我必须使用一个负的margin-top属性来修正这个bug。

改良方法

在这个改良版的方法中,我决定不再使用 type=”image” ,而是使用<button>标签,然后用CSS添加背景。这允许文本输入框和按钮自动对齐。我同样添加了a :focus伪类到最终效果(IE将不会支持这个,所以我添加了一个特殊的样式针对IE来隐藏这个效果)。 下面是这种方法的一些好处:

  • 很自然的对齐
  • 对按钮和输入框只使用了一张图片
  • :focus 伪类支持它的浏览器
  • 添加hover 效果到按钮


HTML
<form method="get" id="searchform" action="http://www.sohtanaka.com/">
<fieldset class="search">
<input type="text" class="box" />
<button class="btn" title="Submit Search">Search</button>
</fieldset>
</form>

CSS
fieldset.search {
border: none;
width: 243px;
margin: 0 auto;
background: #222;
}
.search input, .search button {
border: none;
float: left;
}
.search input.box {
color: #fff;
font-size: 1.2em;
width: 190px;
height: 30px;
padding: 8px 5px 0;
background: #616161 url(search_bg.gif) no-repeat;
margin-right: 5px;
}
.search input.box:focus {
background: #616161 url(search_bg.gif) no-repeat left -38px;
outline: none;
}
.search button.btn {
width: 38px;
height: 38px;
cursor: pointer;
text-indent: -9999px;
background: #fbc900 url(search_bg.gif) no-repeat top right;
}
.search button.btn:hover {
background: #fbc900 url(search_bg.gif) no-repeat bottom right;
}

IE特别注释
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

IE 样式- ie.css
朋友评论说如果输入文字过多IE6和IE7会水平滚动背景图片,所以我的方法是专门为IE使用一个单独的背景图片 ,而且不是让它左对齐,我翻转了它,通过让背景图片右对齐来修正这个。
.search input.box {
background: url(search_bg_ie.gif) no-repeat right bottom;
/* 专门为IE的独立背景图片,而且这个图篇必须是右对齐的。***/
}

关于<button>标签的使用,在IE和FF下测试效果都不一样,个人解决设置type="submit"属性

分享到:
评论

相关推荐

    IE8网页输入框和按钮变小解决方法.doc

    标题中的“IE8网页输入框和按钮变小解决方法”是指在使用Internet Explorer 8 (IE8)浏览器浏览某些网页时,用户可能会遇到输入框和按钮的尺寸异常缩小的问题。这种情况可能会影响用户的浏览体验和操作便捷性。描述...

    网页输入框不能输入解决办法

    ### 网页输入框不能输入解决办法 在日常使用浏览器的过程中,我们经常会遇到网页上的输入框无法正常使用的状况,具体表现为输入框始终呈现灰白色的状态,无法聚焦光标进行文字输入。这种情况不仅影响用户体验,同时...

    好看的CSS按钮(兼容IE6)

    总结来说,"好看的CSS按钮(兼容IE6)"意味着我们需要使用一些旧的CSS技巧和图片资源来创建在IE6上也能显示良好的按钮。这包括使用PNG图片模拟渐变和圆角,以及使用特定的IE滤镜来实现渐变效果。同时,HTML结构和CSS...

    input框添加图片按钮

    通过设置不同的CSS样式属性(如`position`、`left`和`bottom`),可以灵活地控制图片按钮的位置。此外,还需要考虑不同浏览器之间的差异性,特别是IE浏览器与现代浏览器之间存在的布局差异。 #### 兼容性问题处理 ...

    彻底解决IE8按钮变小的问题

    - 对于某些网站,可以通过启用“兼容性视图”来解决问题。在IE8中,可以通过以下步骤进行设置: 1. 打开IE8浏览器。 2. 转到“工具”&gt;“兼容性视图设置”。 3. 在弹出的窗口中,添加经常访问且出现问题的网站...

    解决layui的input独占一行的问题

    4. 如果不希望对输入框设置CSS样式,那么input和button元素默认会占满整个行宽。这是因为它们是块级元素。为了能够让它们并排显示,我们就必须通过上述的方法进行样式调整。 在实际开发中,开发者应根据实际的布局...

    css常见问题解决办法

    这个示例可能演示了使用Flexbox、Grid或传统的CSS定位方法(如`position: absolute`和`transform: translateY()`)来实现输入框的垂直居中。 10. **禁止右键、Ctrl+A和拖选**:在某些情况下,开发者可能希望限制...

    FineReport报表工具自定义控件CSS概述

    FineReport的自定义控件功能允许开发者创建和使用自己的控件,这些控件可以是简单的输入框、按钮,也可以是复杂的图表或者数据选择器。通过自定义控件,我们可以扩展FineReport的功能,满足特定业务需求。而CSS的...

    slate-master_slate输入框_

    Slate是一个现代的、可配置的富文本编辑器框架,旨在解决现有富文本编辑器的一些问题,如灵活性不足、难以维护和扩展等。它基于React(一个流行的JavaScript库,用于构建用户界面)构建,支持最新的Web技术,如...

    输入框密码显示隐藏代码

    3. **CSS美化**:为了提升用户体验,可以使用CSS来美化这个交互,例如改变按钮的样式和状态提示: ```css button { /* 自定义样式 */ } button:hover { /* 鼠标悬停时的样式 */ } button:active { /* 按下时的...

    客服机器人html,前端js,css实现

    例如,可以使用CSS选择器选中对话框并设置背景色、边框样式,调整输入框的宽度和高度,以及按钮的样式和位置。 JavaScript是实现客服机器人动态功能的核心。它允许我们处理用户交互,如监听按钮点击事件,获取用户...

    模仿google下拉提示框输入框 Ajax 兼容火狐

    此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏域方式提交数据】 4.支持下拉框按钮 5.支持显示结果数量 6.可以一个页面多次使用 ...

    html+css_登录

    登录框内部的文本输入框和按钮也需要相应的样式调整,例如使用`box-shadow`添加阴影效果,`padding`控制内容与边框的距离,以及`color`、`font-family`和`font-size`调整字体样式。 颜色选择也是界面设计的重要部分...

    jquery表情输入框插件

    使用CSS布局和jQuery的`.append()`、`.prepend()`等方法可以动态添加和删除表情元素。 4. **表情插入**:用户选择表情后,插件会将其插入到输入框内。这可能通过改变输入框的`value`属性,或者利用HTML5的`...

    自定义弹出输入框

    在网页设计中,自定义弹出输入框是一种常见的交互元素,它允许用户在不离开当前页面的情况下进行输入或选择操作。这种设计可以提高用户体验,使界面更加直观且高效。本篇将详细介绍如何实现一个自定义弹出输入框,...

    css苹果手机去掉input样式

    这主要是因为苹果手机使用的Safari浏览器对这些元素有默认的样式设置,如果不进行额外的定制化处理,很容易导致跨平台显示不一致的问题。例如,在留言板提交按钮的案例中,如果未进行适当的CSS定制,则苹果手机上...

    jQuery输入框下拉选择菜单.zip

    本项目——"jQuery输入框下拉选择菜单",正是为了解决这个问题而设计的。这个插件基于JavaScript库jQuery,通过模拟HTML中的select元素,创建了一个拥有分页、下拉和键盘操作功能的动态下拉菜单。 一、jQuery基础 ...

    CSS3浮动占位符登录框按钮发光特效.zip

    CSS3中的浮动占位符(Floating Placeholder)特效则解决了这个问题,它使得占位文本即使在用户输入后也能保持可见,但以较淡的颜色显示,增强了用户交互体验。通过使用CSS3的`:placeholder-shown`伪类选择器,我们...

    上课用CSS实验总结

    解决这个问题的方法包括使用跨浏览器的CSS重置(如 Normalize.css 或 Eric Meyer Reset),使用浏览器前缀(如 `-webkit-`, `-moz-` 等)以及利用CSS hack。 2. **文字排版**:CSS提供了丰富的属性来调整文本的样式...

    jquery弹出键盘输入框代码

    首先,我们需要明白在网页中创建自定义键盘输入框的核心思想是模拟物理键盘,通过点击屏幕上的按钮来触发字符输入。这涉及到HTML结构的构建、CSS样式设计以及jQuery事件监听和操作。 1. **HTML结构**: 创建一个...

Global site tag (gtag.js) - Google Analytics