如何为Google可编程搜索引擎结果中gs-title类元素下的<b>标签内容应用字体大小样式?
如何为Google可编程搜索引擎结果中gs-title类元素下的标签内容应用字体大小样式?
这个问题的核心是Google搜索结果里的<b>标签可能被内置CSS设置了独立的字体大小,导致它没有继承父元素.gs-title的样式。这里有两个简单的解决办法,你可以根据需求选择:
方法一:直接在JS回调中同时设置标签样式
修改你现有的回调函数,在遍历每个.gs-title元素时,额外找到它内部的所有<b>标签,给它们也设置字体大小,确保所有文字统一尺寸:
SearchResultsRenderedCallback = function(){ var elements = document.getElementsByClassName('gs-title'); for (var i = 0; i < elements.length; i++) { var element = elements[i]; // 设置父元素字体大小 element.style.fontSize = "24px"; // 找到当前标题下的所有<b>标签并设置样式 var boldTags = element.getElementsByTagName('b'); for (var j = 0; j < boldTags.length; j++) { // 方式1:直接指定和父元素相同的字体大小 boldTags[j].style.fontSize = "24px"; // 方式2:用inherit让它自动继承父元素的字体大小,后续修改父元素时不用改这里 // boldTags[j].style.fontSize = "inherit"; } } }; window.__gcse || (window.__gcse = {}); window.__gcse.searchCallbacks = { web: { rendered: SearchResultsRenderedCallback, }, };
方法二:用CSS后代选择器(更推荐)
相比JS遍历,直接用CSS控制样式更高效简洁,还能避免JS执行时机的问题。你可以在页面的样式表中添加以下规则:
.gs-title { font-size: 24px !important; } /* 确保<b>标签和父元素字体大小统一 */ .gs-title b { font-size: inherit !important; /* 也可以直接写 24px,和父元素保持一致 */ }
这里的!important是为了覆盖Google搜索结果内置的CSS优先级,确保你的样式能生效。
为什么原来的代码没生效?
因为Google的可编程搜索引擎会给高亮的搜索词(也就是<b>标签里的内容)默认设置了字体大小样式,它的优先级会覆盖父元素的继承样式,所以必须显式给<b>标签设置样式才能让所有文字尺寸统一。
备注:内容来源于stack exchange,提问作者user5853892
相关产品推荐
相关产品推荐

