文本框(input)添加提示图标与修饰效果

本文介绍如何使用CSS为文本框添加图标和柔和边框,通过定义不同类名实现多样化设计,适用于前端开发人员。

转载自:
http://www.codebit.cn/pub/html/xhtml_css/tip/input_background_image/

为你的文本框加一个说明用途的小图标

input.txtInput {
background: fff;
background-repeat: no-repeat;
background-position: 2px center;
border:1px solid 999;
padding:2px 2px 2px 20px;
}
input.searchInput {background-image: url(search.gif);}
input.commentInput {background-image: url(comments.gif);}


上面的代码中 input.txtInput 定义了文本框中有小图标的通用样式,其中 padding 的第四个值是定义文字内容从 20 象素处开始,原因是本文的图片是 16 象素大小,文字四周有 2 象素的边距。具体到实际应用,需要根据你的图片大小决定。

然后,我们又定义了 searchInput  和 commentInput  两个文本框样式,分别设置了2个不同的小图标。这样,我们在设置文本框的 class 时可以这样写:

<p>
<label for="keyword">搜索:</label>
<input type="text" name="keyword" id="keyword" class="txtInput searchInput" />
</p>
<p>
<label for="comment">评论:</label>
<input type="text" name="comment" id="comment" class="txtInput commentInput" />
</p> 



为你的文本框加一个效果柔和的边框

input.borderInput {
background-image: url(border.gif);;
background-repeat: no-repeat;
background-position: left top;
border:1px solid d5dee9;
padding:3px;
} 


上面的代码设置了一个背景图,并且左上对齐,当然,我们这个图片通常要宽一些、高一些,然后设置一个和渐变颜色近似的 border 。是的,一个效果柔和的边框实现了。



border.gif:看不太清楚^_^

//----------------------------------

//--------------------------------

 

package A; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Carculator extends JFrame implements ActionListener { /*****北面的控件******/ private JPanel jp_north = new JPanel();//设置了一个面板(面板没有设置布局是一个流式布局) private JTextField input_text = new JTextField(); // private JButton c_Btn=new JButton("c");//北面的两个控件 /*****中间的控件******/ private JPanel jp_Center = new JPanel(); public Carculator() throws HeadlessException { this.init(); this.addnorth(); this.addCenterButton(); } //初始化的方法 public void init() { this.setTitle("计算器"); this.setSize(600, 600); this.setLayout(new BorderLayout()); this.setResizable(false);//窗体不可以随便拉 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //添加北面的控件 public void addnorth() { this.input_text.setPreferredSize(new Dimension(280, 30)); jp_north.add(input_text); this.add(jp_north, BorderLayout.NORTH);//把面板载到窗体里面(北面) } //添加中间的按钮 public void addCenterButton() { String[] string = {"1", "2", "3", "+", "C", "4", "5", "6", "-", "←", "7", "8", "9", "*", "1/x", "0", "+/-", ".", "/", "="}; this.jp_Center.setLayout(new GridLayout(4, 5));//网格布局4行5列 //了二十个按钮到中间面板中 for (int i = 0; i < 20; i++) { //字符串取出添加到了按钮中去 String text = string[i]; JButton btn = new JButton(text); if (text.equals("+") || text.equals("-") || text.equals("*") || text.equals("/") || text.equals("C") || text.equals("←") || text.equals("1/x") || text.equals("+/-") || text.equals(".") || text.equals("=")) { btn.setForeground(Color.red); } btn.addActionListener(this);//监听 jp_Center.add(btn); } this.add(jp_Center, BorderLayout.CENTER);//把中间面板载到整个窗体的中间(因为窗体是一个borderLayout) } public static void main(String[] args) { Carculator carculator = new Carculator(); carculator.setVisible(true); } private String firstInput = null; private String operator = null; public void actionPerformed(ActionEvent e) { //数字的监听 String clickStr = e.getActionCommand(); if (clickStr.equals("C")) { input_text.setText(""); firstInput = null; operator = null; } else if (clickStr.equals("1/x")) { this.input_text.setText(1.0 / Double.valueOf(this.input_text.getText())+""); } else if (clickStr.equals("+/-")) { if (this.input_text.getText().indexOf('+') != -1 || this.input_text.getText().indexOf('-') != -1) { System.out.println(clickStr); if (this.input_text.getText().indexOf('+') != -1) { // System.out.println("+在里面"); this.input_text.setText(this.input_text.getText().substring(1)); this.input_text.setText("-" + input_text.getText());//后输入的值显示在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示 } else if (this.input_text.getText().indexOf('-') != -1) { // System.out.println("-在里面"); this.input_text.setText(this.input_text.getText().substring(1)); this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示 } } else { this.input_text.setText("+" + input_text.getText());//后输入的值显示在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示 } } else if (clickStr.equals("←")) { if (!this.input_text.getText().isEmpty()) { this.input_text.setText(this.input_text.getText().substring(0, this.input_text.getText().length() - 1)); } } else if (".0123456789".indexOf(clickStr) != -1) { if (".".equals(clickStr)) { if (input_text.getText().indexOf('.') == -1) { this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示 } } else { this.input_text.setText(input_text.getText() + clickStr);//后输入的值显示在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//文本框从右边往左显示 } } else if (clickStr.matches("[\\+\\-*/]{1}")) { // 存储+-*/ operator = clickStr; // 存储前值 firstInput = this.input_text.getText(); this.input_text.setText(""); } else if (clickStr.equals("=")) { Double a = Double.valueOf(firstInput); Double b = Double.valueOf(this.input_text.getText()); Double result = null; switch (operator) { case "+": result = a + b; break; case "-": result = a - b; break; case "*": result = a * b; break; case "/": if (b != 0) { result = a / b; } break; } this.input_text.setText(result.toString()); } } } 根据代码为我生成uml Java类图
最新发布
06-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值