使用外部CSS样式表自定义Google CSE的外观。

6
我使用Google网站管理员工具创建了一个搜索引擎,现在我想自定义CSE提供的结果格式。谷歌提供了整个CSS文件的下载,但是当我将其附加到我的PHP文档中的头部时,什么也没有发生 - 自定义样式不起作用。
当我将谷歌的样式放在body标签内时,一切正常,但问题是这种方式不符合万维网联盟的规则,而且如果我在页面的body内插入如此长的CSS代码块,我的代码会变得非常“肮脏”和凌乱。
如何使我的外部样式表更改搜索引擎的默认外观?
3个回答

6
您能否确定是否可以使用外部CSS样式表来定制Google搜索框?以下是我今天完成的工作,并已在W3C验证器中通过验证:请查看此链接:一个带有Google自定义搜索和外部样式表的主页。如果您查看源代码,您会发现我从他们的“获取代码”页面上下载了Google Custom Search的“源CSS”。然后我将其上传到我的网站服务器上(在更改CSS以符合我的喜好之后)。然后,我将代码中的脚本部分复制到主页的HTML中,并更改了短语:
google.load('search', '1', {language : 'en', style : google.loader.themes.MINIMALIST});

转换为:

  google.load('search', '1', {language : 'en', style : src="http://hoodexc.com/css/google-search.css"});

如果有了解 JavaScript 的人可以告诉我更好的方法(仅因为这个方法可行并不意味着它是最好的方法),请让我知道。 使用外部样式表的 Google CSE 使用外部样式表的 Google CSE


6
只需在加载Google自定义搜索时提供附加参数“nocss: true”,以防止Google加载任何搜索的css,因此您可以自己定义所有gcse-,gs-等css类,而不会受到干扰。

nocss:一个布尔值,告诉API是否加载通常与其控件相关联的任何样式表。如果您不打算使用默认CSS,则可以通过将此设置为true来减少负载时间。默认设置为false。

https://developers.google.com/loader/#DetailedDocumentation

代码:

google.load('search', '1', { 
    callback: OnGoogleSearchLoad,
    language : 'en',
    nocss: true,
    style : src="http://example.com/assets/css/gcse.css"
});

结果(不包含CSS,除了站点默认规则):

使用我的站点CSS而不是GCSE主题进行搜索,可以根据我喜欢的任何方式进行自定义。

GCS的示例CSS文件:

.gsc-tabsAreaInvisible,
.gsc-resultsHeader,
.gsc-branding,
.gcsc-branding,
.gsc-url-top,
.gs-watermark,
.gsc-thumbnail-inside,
.gsc-url-bottom {
    display: none;
}

.gsc-result {
    padding: 20px 0;
    border-bottom: 1px solid #E1E1E1;
}


.gs-image-box {
    width: 140px;
    height: 80px;
    overflow: hidden;
}

img.gs-image {
    min-height: 80px;
}

td.gsc-table-cell-thumbnail {
    vertical-align: top;
    padding: 0;
    width: 140px;
    display: block!important;
}

td.gsc-table-cell-snippet-close {
    vertical-align: top;
    padding: 0;
    padding-left: 20px;
}

.gsc-wrapper {
    font-size: 16px;
    line-height: 20px;
}

.gsc-control-cse a {
    color: #202020;
    font-family: HelveticaNeueLTPro-Cn, Helvetica, Arial, sans-serif;
}

.gs-snippet {
    color: #777;
    margin-top: 10px;
}

b {
    font-weight: normal;
}
.gsc-cursor {
    width: 100%;
    height: 20px;
    text-align: center;
}

.gsc-cursor-page {
    display: inline-block;
    width: 20px;
    height: 20px;
    cursor: pointer;
    text-align: center;
    margin: 20px 0;
}


form.gsc-search-box {
    background: #d9dadd;
    border: 20px solid #d9dadd; 
    width: 100%;
    -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
    -moz-box-sizing: border-box;    /* Firefox, other Gecko */
    box-sizing: border-box;         /* Opera/IE 8+ */    
}

table.gsc-search-box {
    width: 100%;
}

td.gsc-search-button {
    vertical-align: middle;
    padding-left: 20px;
} 

td.gsc-input {
    vertical-align: top;
    width: 100%;
}

input.gsc-input {
    margin:0;
    width: 99%;
}

结果(带有自定义样式):

仅使用自定义样式的Google定制搜索。


0

我想感谢Gniewomir和Kris。

我正在使用V1代码在我的WordPress博客上安装双页面布局Google自定义搜索。对于搜索框,我在一个文本小部件中粘贴了<div id="cse-search-form">Loading</div> ,并在我的头部中插入了其余的脚本。

我改变了这一部分

google.load('search', '1', {language: 'en', style: google.loader.themes.GREENSKY});

google.load('search', '1', {language: 'en', nocss:true, style:"http://www.domain-name/wp-content/themes/theme-name/css/gcse.css"});

同时,我下载了GREENSKY.css并将其保存为“gcse.css”,然后上传到我的服务器上。
通过GTMETRIX运行此操作,HTTP重定向的警告已经消失。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接