jquery - SharePoint 搜索和搜索范围框相互堆叠

标签 jquery css sharepoint sharepoint-2010

我有一个要品牌化的 SharePoint 网站,其中一个请求是将搜索控件和搜索文本字段放在彼此之上(内联?)。我在网上看到一些 jQuery 魔术翻转这些框的位置以改变外观,如下所述: http://labs.steveottenad.com/reskinrestyle-the-sharepoint-2010-advanced-search-box/

我想要做的是将带有下拉菜单的搜索控件放置在文本输入框的顶部,以便它们相互堆叠。虽然上述文章使用了 jQuery,但我认为 CSS 也可以用来完成我的请求。

这是我现在搜索区域的主页代码。我认为它有点乱,我知道这没有帮助..所以我很难识别哪个 div 是哪个搜索组件。

<td style="width: 2px">
<div id="s4-searcharea" class="s4-search s4-rp"></div>
<div class="customSearch">
    <asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server">
<SPSWC:SearchBoxEx id="SearchBox" runat="server" 
GoImageUrl="/_layouts/images/gosearch.gif" 
GoImageUrlRTL="/_layouts/images/gosearch.gif" 
DropdownModeEx=ShowDD 
DropdownWidth="120"
UseSiteDefaults="true"      
QueryPromptString="Keyword(s)"
FrameType="None" WebPart="true" __WebPartId="{551E15C2-XXX}"/>
</asp:ContentPlaceHolder>                       
    </div>
    </td>

我在想我将需要使用 display:inline 属性并可能为两个类分配一个 z-index 值?任何帮助设置都会很棒。

最佳答案

我是您在问题中引用的文章的作者。我确信这已经得到解决,但对于将来可能偶然发现它的任何人,您将需要使用 javascript/jquery 来更改搜索控件的标记。默认情况下,范围下拉列表位于不同的表格单元格中,您无法单独使用 CSS 获得堆叠外观。尝试这样的事情:

var scopedropdown = $('.ms-sbscopes select');
$('.ms-sbrow .ms-sbcell').eq(1).prepend(scopedropdown);

我知道使用 .eq() 是 hacky,但 SP2010 没有为您需要定位的单元格提供唯一类。一旦你将范围下拉列表放入正确的单元格中,就可以使用 CSS 去城里让它看起来像你想要的那样。如果您想要搜索框下方的下拉列表,您也可以使用 .append() 而不是 .prepend() 。

另请注意,搜索按钮包含在不同的单元格中,因此您可能对下拉菜单的宽度有一些疑问。

关于jquery - SharePoint 搜索和搜索范围框相互堆叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6597978/

相关文章:

Sharepoint 中的 Excel 模板 - 如何从模板打开新文件?

javascript - 无法获取输入单选值

javascript - (Firefox) Javascript mousemove 与 jQuery mousemove 不同

javascript - Sharepoint 2010 功能区粘贴命令

javascript - 实现CSS日期输入

html - 自定义刻度未显示在边缘/即复选框

sharepoint - 以编程方式从内容类型中删除字段引用 (CSOM)

javascript - 使用 jQuery 获取使用 vue2 创建的元素

javascript - 如何使用 jQuery 循环遍历以特定字符串开头的每个 div?

css - 两列布局,右列扩展以填充窗口