html - 在dijit中制作一个搜索框

标签 html css dojo

http://jsfiddle.net/PRAPc/

我想要一个类似 this 的搜索图标在文本框的开头呈现,我无法使以下内容正常工作。请帮忙。

html:

<body class="claro" data-maq-flow-layout="true" data-maq-comptype="desktop" data-maq-ws="collapse" style="margin-top:0" id="myapp" data-maq-appstates="{}">
 <div id="top_bar">
 <div style="width: 900px; height:50px; margin-left: auto; margin-right: auto;">
<a href="/" class="logo logo_a">
 <div class="logo">

 </div>
</a>
<div class="midArea_div">
 <div class="searchBox_div">
   <input type="text" data-dojo-type="dijit.form.TextBox" class="searchBox"></input>
 </div>
</div>
</div>

</div>
 <div id="top_bar_divider"></div>
 <div data-dojo-type="dijit.layout.BorderContainer" persist="false" gutters="true" style="min-width: 1em; min-height: 1px; z-index: 0; width: 600px; height: 687px; margin-left: auto; margin-right: auto;" design="headline">
   <div data-dojo-type="dijit.layout.ContentPane" extractContent="false" preventCache="false" preload="false" refreshOnShow="false" region="center" splitter="false" maxSize="Infinity">
  </div>
 </div>
</body>

js:

require([
  "dijit/dijit",
  "dojo/parser",
  "maqetta/space",
  "maqetta/AppStates",
  "dijit/layout/BorderContainer",
  "dijit/layout/ContentPane",
  "dijit/form/TextBox"
]);

CSS:

html,body {
    height: 100%;
    width: 100%;
}

 .logo_a{
background:url("icon1.png");
}
.logo{
width:60px;
height:50px;
display:inline-block;
vertical-align:middle;
}
.logo_a:active{
background-position:0 1px;
}

#top_bar{
    padding:0px; 
    background: -webkit-linear-gradient(#464646, #121212);
    background: -moz-linear-gradient(#464646, #121212);
    background: -ms-linear-gradient(#464646, #121212);
    background: -o-linear-gradient(#464646, #121212);
    background: linear-gradient(#464646, #121212);
    color: #ccc;
    text-shadow:none;
    height:50px;
    width:100%;
}
#top_bar_divider{
background-color:#1ba0e1;
height:4px;
width:100%;

}
.searchBox{
height: 30px;
width: 400px;
padding-left:30px;
font-size:20px;
}
.searchBox_div{
display:inline-block;
verticle-align:middle;
background: #FFF url("http://app.maqetta.org/maqetta/user/CoQ/ws/workspace/project1/search_icon.png") no-repeat scroll 5px 6px;
}
.midArea_div{
margin-left: 100px;
verticle-align:middle;
display:inline-block;
}
.searchIcon{

}

最佳答案

您当前的方法不起作用,因为文本框位于其背景之上,因此不可见。您可以在 .searchBox_div 上使用伪元素来执行此操作(在 <= IE8 中不起作用)。

jsFiddle

enter image description here

.searchBox_div {
    position:relative;
}
.searchBox_div:before {
    content:"";
    display:block;
    position:absolute;
    background: url(http://app.maqetta.org/maqetta/user/CoQ/ws/workspace/project1/search_icon.png) no-repeat center center;
    width:24px;
    height:24px;
    left:4px;
    top:50%;
    margin-top:-12px;
    z-index:1;
}

或者,您可以将这些样式应用于 .searchBox_div 中的另一个 div,以增加标记为代价来解决 IE8 问题。

jsFiddle

HTML

<div class="midArea_div">
 <div class="searchBox_div">
   <input type="text" data-dojo-type="dijit.form.TextBox" class="searchBox"></input>
   <div class="overlay"></div>
 </div>
</div>

CSS

.searchBox_div {
    position:relative;
}
.overlay {
    position:absolute;
    background: url(http://app.maqetta.org/maqetta/user/CoQ/ws/workspace/project1/search_icon.png) no-repeat center center;
    width:24px;
    height:24px;
    left:4px;
    top:50%;
    margin-top:-12px;
    z-index:1;
}

关于html - 在dijit中制作一个搜索框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15605462/

相关文章:

javascript - SSRS ReportViewer 使用 HTML5 渲染器渲染报告的速度很慢

javascript - 如何检测 dijit/form/Horizo​​ntalSlider 上的 onMoveStart 和 onMoveStop?

javascript - 为什么我不能创建具有多个子节点的 ParentNode?

javascript - CSS:为什么 "z-index"没有让一个 div 出现在另一个 div 之上?

javascript - 避免在元素上绑定(bind)多个事件

javascript - 如何定义CSS :hover state in a jQuery selector?

css - 如何让我的 css 为我的 dojo dijit 表单按钮正常工作?

javascript - dojo 中的 require() 和 define() 函数之间的主要区别是什么?我们什么时候使用它们?

html - 快速获取深层嵌套元素的CSS元素列表的技术或工具

javascript - Firebug 发现不存在的错误