网页设计中,通过表单和JS设计,可以实现一次输入,很便捷地在多个网站同时搜索,外观效果如下图所示:
在前面的框内输入关键字,单击单选按钮选择需要检索数据的网站,即可开始搜索。
<div id="footer">
<form name="formmain" id="formmain" onSubmit="search()" >
<input name="searchkey" type="text" id="searchkey" value="" size="35" onfocus=this.select(); onmouseover=this.select(); >
<input name="Submit" type="button" style="line-height:18px;" value=" " onclick="search()" id="searchbutton" />
<input onclick="search();" name=radio type=radio id="rdbaidu" checked><a href="http://www.baidu.com">百度</a>
<input onclick="search();" name=radio type=radio id="rd360sou"><a href="http://www.so.com/">360</a>
<input onclick="search();" name=radio type=radio id="rdgoogle"><a href="http://www.google.com/intl/zh-cn/">谷歌</a>
<input onclick="search();" name=radio type=radio id="rdbingzonghe"><a href="http://www.bing.com/">必应</a>
<input onclick="search();" name=radio type=radio id="rdsogou" ><a href="http://www.sogou.com" title="搜狐旗下搜索">搜狗</a>
<input onclick="search();" name=radio type=radio id="rdyahoozhongguo"><a href="http://www.yahoo.com.cn/">雅虎</a>
<input onclick="search();" name=radio type=radio id="rdyoudao"><a href="http://www.yodao.com/" title="网易旗下搜索">有道</a>
<input onclick="search();" name=radio type=radio id="rdsoso"><a href="http://www.soso.com" title="腾讯旗下搜索" >搜搜</a>
<input onclick="search();" name="radio" type="radio" id="rdgoogleen"><a href="http://www.google.com.hk/webhp?hl=en" >GoogleEn</a>
<input onclick="search();" type="radio" name="radio" id="rd_yahoo" value="radiobutton"><a href="http://www.yahoo.com/">Yahoo</a>
<input onclick="search();" type="radio" name="radio" id="rd_bing" value="radiobutton"><a href="http://www.yahoo.com/">bing</a>
<input onclick="search();" type="radio" name="radio" id="rd_gzlib" /><a href="http://www.gzlib.gov.cn/" title="0100000308194,sixthre">gzLibrary</a>
<input onclick="search();" type="radio" name="radio" id="bdbaike" /><a href="http://baike.baidu.com/">百度百科</a>
</form>
</div>
function search(){
if(formmain.rdgoogle.checked)
window.open("http://www.google.com.hk/search?hl=zh-CN&q=" + encodeURI(formmain.searchkey.value));
if(formmain.rdbaidu.checked)
window.open("http://www.baidu.com/baidu?tn=zhongguosou&ct=&lm=&z=&rn=&word="+formmain.searchkey.value+"&_si.x=4&_si.y=2");
if(formmain.rdyahoozhongguo.checked)
window.open("http://search.cn.yahoo.com/s?pid=402877_1010&v=web&p=" + formmain.searchkey.value);
if(formmain.rdsogou.checked)
window.open("http://www.sogou.com/web?query="+formmain.searchkey.value+"&sogouhome=");
if(formmain.rdsoso.checked)
window.open("http://www.soso.com/q?pid=s.idx&w=" + formmain.searchkey.value);
if(formmain.rdyoudao.checked)
window.open("http://www.youdao.com/search?keyfrom=web.index.suggest&q="+formmain.searchkey.value+"&btnIndex="+ formmain.searchkey.value);
if(formmain.rdbingzonghe.checked)
window.open("http://cn.bing.com/search?FORM=BWFD&q=" + encodeURI(formmain.searchkey.value));
if(formmain.rdgoogleen.checked)
window.open("http://www.google.com.hk/search?hl=en&newwindow=1&safe=strict&tbo=d&site=webhp&source=hp&q="+encodeURI(formmain.searchkey.value));
if (formmain.rd_yahoo.checked)
window.open("http://search.yahoo.com/search?prssweb=Search&ei=UTF-8&fr=FP-tab-web-t&fl=0&x=wrt&p=" + encodeURI(formmain.searchkey.value));
if(formmain.rd_bing.checked)
window.open("http://www.bing.com/search?q="+encodeURI(formmain.searchkey.value));
if(formmain.rd360sou.checked)
window.open("http://www.so.com/s?ie=utf-8&src=360sou_home&q=" + encodeURI(formmain.searchkey.value) + "&_re=0");
if(formmain.bdbaike.checked)
window.open("http://www.baidu.com/baidu?word=" + encodeURI(formmain.searchkey.value) + "&tn=bds&cl=3&ct=2097152&si=baike.baidu.com&s=on");
}
上面的JS代码看起来很多,其实每个单选按钮对应的代码命令格式都是相同的,基本框架如下所示:
if(...)
window.open(...);
也就是通过判断选择了哪一个单选按钮,然后应用window对象的open方法以对话框内的内容为关键字打开相应的网站进行搜索。
open的参数对应的是网站搜索对应的字符串(地址+关键字),不同网站的字符内容构成稍有区别。另外,如果是中文搜索,需要用encodeURI()进行适当的编码。
当客户与服务器通讯时,一些非字母数字字符(如空格)不能以它们本来的形式传输。允许直接传输的只有一个范围很窄的字母、数字、标点符号集。为了包含其它的字符,它们必须通过特殊的记号(%)与它们的十六进制ASCII值来编码。如,空格的16进制是hex 20(ASCII码10进制是32),编码后为%20.在浏览器的历史记录或URL中就会经常出现这个符号。
JavaScript中有三个可以对字符串编码的函数,分别是: escape, encodeURI, encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent 。
在HTML中,Id属性是一个非常重要的元素,它可以为网页上的每个元素提供一个独特的标识符。通过Id属性,您可以精准地定位和操作特定的HTML元素,从而实现更细致的样式控制和交互功能。本文将为您揭示Id属性的魔力,教您如何利用它来打造出与众不同的网页体验。
Id属性的值必须在整个HTML文档中是唯一的,这使它成为定位和操作特定元素的理想选择。通常情况下,我们会为页面中的重要元素如页头、导航栏、主内容区域等分别设置Id。
<header id="header">
<nav id="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</nav>
</header>
<main id="main">
<section id="hero">
<h1>欢迎来到我的网站</h1>
<p>这里是网站的主要内容区域</p>
</section>
</main>
有了Id属性,您可以在CSS中直接针对特定元素进行样式定制。这种精准的选择器使您能够更好地控制网页的视觉效果。
#header {
background-color: #333;
color: #fff;
padding: 20px;
}
#nav ul {
list-style-type: none;
display: flex;
}
#nav li a {
color: #fff;
text-decoration: none;
padding: 10px 20px;
}
#hero {
background-color: #f2f2f2;
padding: 50px;
text-align: center;
}
除了CSS,Id属性在JavaScript中也扮演着重要的角色。通过Id,您可以快速地获取和操作特定的HTML元素,实现各种交互效果。
<button id="myButton">点击我</button>
const button = document.getElementById('myButton');
button.addEventListener('click', () => {
alert('您点击了按钮!');
});
在使用Id属性时,有几个需要注意的最佳实践:
总之,HTML Id属性是一个非常强大的工具,它可以为网页元素提供独特的标识,从而帮助您实现精细化的样式控制和交互功能。只要掌握好它的用法,相信您一定能打造出令人惊叹的网页作品。
生成关于html中OnClick的头条爆款文章
好的,我为您生成了一篇关于HTML中onClick事件的头条爆款文章,以下是完整内容:
在HTML中,onClick事件是一种非常强大的交互功能,它可以让您的网页元素在用户点击时执行各种自定义的操作。无论是弹出提示框、切换样式还是触发复杂的交互效果,onClick事件都能轻松搞定。本文将为您揭示onClick事件的魔力,教您如何利用它打造出引人入胜的网页体验。
onClick事件最常见的应用就是为按钮添加点击响应。当用户点击按钮时,就会触发预先定义好的JavaScript代码,从而实现所需的功能。
<button onclick="showMessage()">点击我</button>
function showMessage() {
alert('您点击了按钮!');
}
除了按钮,您还可以为其他HTML元素如链接、图片等添加onClick事件,让整个网页变得生动有趣。
onClick事件的真正威力在于它能与JavaScript无缝结合,实现各种复杂的交互效果。您可以利用JavaScript操作DOM,动态地改变元素的样式、内容甚至触发其他事件。
<div id="box" class="box">这是一个盒子</div>
<button onclick="toggleBox()">切换盒子</button>
function toggleBox() {
const box = document.getElementById('box');
box.classList.toggle('active');
}
在这个例子中,当用户点击按钮时,JavaScript会切换盒子元素的样式类,从而实现显示/隐藏的交互效果。
除了基本的交互,onClick事件还可以用于触发更复杂的功能,如表单提交、数据请求、动画效果等。您可以将onClick事件与其他事件监听器、API调用等技术相结合,打造出令人惊叩的网页体验。
<form onsubmit="submitForm(event)">
<input type="text" id="name" placeholder="请输入您的名字" />
<button type="submit">提交</button>
</form>
function submitForm(event) {
event.preventDefault(); // 阻止表单默认提交行为
const nameInput = document.getElementById('name');
const name = nameInput.value;
// 执行表单提交的其他逻辑
console.log(`您的名字是: ${name}`);
}
在使用onClick事件时,有几个需要注意的最佳实践:
总之,HTML onClick事件是一个非常强大的交互工具,它可以让您的网页元素焕发生机,变得更加生动有趣。
是否曾经试着点击或点击一个元素(例如:按钮、链接),并且注意到只有单击该元素的特定区域,它才会响应?
必生这种情况是因为可点击区域未应用于整个元素。为了更加清楚,请参见下图,左图可点击区别(圈红部分)明显比右图的小很多,所以右图的实现用户体验会更好。
对于本文,会介绍一些事例,并通过事例演示如何增加可点击区别,提高用户体验。
WCAG全称Web Content Accessibility Guidelines 网页内容无障碍浏览准则,简单的说就是为了方便残障人士(包括低视患者,盲人,聋人,学习障碍,行动不便,认知障碍....)访问Web内容而制定的相关标准,可以使网站更加人性化。
举个例子,在WCAG准则2.3.2中规定:网页不包含任何闪光超过3次/秒的内容。
用户应该能够使用台式机/笔记本电脑上的键盘以及移动设备或平板电脑上的触摸屏来操作输入。不要在移动设备屏幕上将按钮设置得太小,以免按下正确的按钮。触摸目标的最小尺寸最好至少为44 x 44像素。
**费兹法则(Fitts law)**是一个人机互动以及人体工程学中人类活动的模型;它预测了快速移动到目标区域所需的时间是目标区域的距离和目标区域大小的函数。
在下面的图中,我模拟了两个按钮的不同情况。在左侧,按钮更小,更远,用户需要更多的时间与它互动。在右侧,按钮大小更大,更接近于它的同级输入元素,这将使交互更容易、更快。
接着,我们再来看看一些更加真实例子。注意:记住WCAG准则 和费兹法则 的概念。
在需要时使用实际真实<button>(包含可点击区域)非常重要。下面的示例来自我使用的在线银行系统:
<div class="navig next" onclick="validateLogin()">Next</div>
这是上面按钮的HTML的GIF图像。我把鼠标悬停在按钮上,光标仍然是一个指针,这很好。不过,我也可以选择文本和悬停时,有一个文本光标!如果使用了正确的元素,就不会发生这种情况。
当使用HTML<button>元素时,会获得下面效果:
有些元素,我们需要添加 padding,原因有二:
之前在做导航的时候,犯了一个错误,应该是给 a 标签添加 padding 而不是 li:
<nav>
<ul>
<li class="nav-item"><a href="#">Home</a></li>
<li class="nav-item"><nav href="#">Products</nav></li>
<li class="nav-item"><a href="#">Store</a></li>
<li class="nav-item"><a href="#">Team</a></li>
</ul>
</nav>
// css
.nav-item {
padding: 12px 16px;
}
基于上面的HTML和CSS,可点击的区域将只是文本,如下图所示:
正确的方法是在a 标签本身上添加padding。请注意,默认情况下,padding 需要块元素才有效,而 a 标签是行内元素,所以可以给 a 标签设置block,inline-element或 flex。
.nav-item a {
display: block;
padding: 12px 16px;
}
添加了上面的样式后,可点击的效果如下:
假设可点击区域如下所示:
这种体验不是很好,鼠标或手指指向屏幕上如此小的目标会比较难。在下图中,它的可点击区域更大并且更易于交互。
事例源码:https://codepen.io/shadeed/pen/PMygee
当存在复选框或单选按钮元素时,我希望可以单击它或关联的标签来激活/禁用它。
从用户体验的角度来看,这是难以访问和糟糕的。在 HTML 中,可以使用for属性将标签与输入框绑定在一起。
<input type="checkbox" id="option1">
<label for="option1">Option 1</label>
或者可以将输入框放置在标签内:
<label for="option1">
Option 1
<input type="checkbox" id="option1">
</label>
然后,在<label>元素上添加padding,以使可点击区域变大。这样,问题得以解决,整个复选框或单选按钮都是可单击的,如下图所
对于带有类别的页面,有时我会注意到列表链接没有扩展到其父页面的整个宽度。也就是说,可点击区域仅在文本上,如下图所示:
解决方法:
.nav-item a {
/*Other styles*/
padding: 12px 16px;
display: block;
}
添加后,如下所示:
在最近的Twitter更新中,导航设计在可点击区域大小方面存在问题。最初,它仅与文本相关,如下面的屏幕截图所示,但他们在收到反馈后将其修复。
在某些情况下,需要在章节标题的远端添加“查看更多”按钮或箭头。在下面的示例中,我将箭头放置在假圆中,以便可以正确地使箭头居中。
通常情况下,箭头周围的间距可以使用padding或width和height。
仅通过改变元素的宽度和高度或使用padding,并不总是能够使可点击区域变大,这时候就需要伪元素救场了。
这个想法是,伪元素属于其父元素,因此当我们创建具有特定宽度和高度的伪元素时,它将充当其父元素的单击/触摸/悬停区域。
在下图中,我在菜单按钮中添加了:after伪元素:
.menu-2:after {
content: "";
position: absolute;
left: 55px;
top: 0;
width: 50px;
height: 50px;
background: #e83474;
/*Other styles*/
}
事例源码:https://codepen.io/shadeed/pen/BXXjEg?editors=0100
作者:Ahmad Shadded 译者:前端小智 来源:css-tricks
原文:https://css-tricks.com/enhancing-the-clickable-area-size/
*请认真填写需求信息,我们会在24小时内与您取得联系。