如何更改下拉列表中 select 列表项的字体
How to change font of select list items in the drop down
我有一个应用了给定字体的 select 菜单。在代码中它被称为 'WebSymbolsRegular'。现在我希望只有第一个菜单项没有应用这种字体。我正在使用 jquery 移动设备,当第一个元素显示在 select 中时,我设法更改了第一个元素的字体,但是我无法在下拉列表中更改第一个元素的字体,请参阅图片:
所以 'Please select a condition rating' 是完美的,但正如您在下拉列表中看到的那样,'WebSymbolsRegular' 接管了我,我得到了乱码。我想改变这个。这是我的代码:
CSS:
.stars .ui-btn-inner
{
font-family: 'WebSymbolsRegular';
颜色:#eab92d;
}
.stars .ui-btn-inner .firstitem
{
font-family: 'Lato' !important;
color: white;
}
.firstitem
{
font-family: 'Lato' !important;
}
.ui-btn-inner 是必需的,因为 jquery 移动设备将自己的标记添加到元素。
HTML:
<span class="stars">
<select id="AddbookConditionSelect" style="color: #eab92d; font-family: WebSymbolsRegular;">
<option value="0" class="firstitem">Please select a condition rating</option>
<option value="1">R</option>
<option value="2">RR</option>
<option value="3">RRR</option>
<option value="4">RRRR</option>
<option value="5">RRRRR</option>
</select>
</span>
使用 R 的原因是 'WebSymbolsRegular' 字体将其更改为星星,这是所需的效果。关于如何更改 drop 的第一次字体以正确阅读的任何想法?
问题在于您的内联样式会否决 CSS 文件中的任何内容,包括 !important
语句。现在您可能想尝试 CSS3 伪选择器 :first-child
并删除 "firstitem" class。我会那样做(我保留了你的 HTML 虽然我宁愿给你的 select
元素一个 "stars" class 而不是使用额外的跨度):
HTML
<span class="stars">
<select id="AddbookConditionSelect">
<option value="0">Please select a condition rating</option>
<option value="1">R</option>
<option value="2">RR</option>
<option value="3">RRR</option>
<option value="4">RRRR</option>
<option value="5">RRRRR</option>
</select>
</span>
CSS
.stars option { font-family: 'WebSymbolsRegular'; color: #eab92d; }
.stars option:first-child {font-family: 'Lato';}
请注意,如果您需要支持旧版浏览器,您可以将 "firstitem" class 保留在原处,并将 CSS 的第二行替换为这一行:
.stars option.firstitem {font-family: 'Lato';}
因此,根据您提供的内容,我注意到有一个内联样式:
<select id="AddbookConditionSelect" style="color: #eab92d; font-family: WebSymbolsRegular;">
当有内联样式时,它会否决任何其他样式。
您可以尝试删除它,然后放入 CSS:
#AddbookConditionSelect select {
font-family: 'Lato';
}
#AddbookConditionSelect select:not(:first-child) {
font-family: 'WebSymbolsRegular';
}
在 jQuery Mobile 中,您可以选择使用非本机 select 菜单:
<span class="stars">
<select id="AddbookConditionSelect" data-native-menu="false" >
<option>Please select a condition rating</option>
<option value="1" class="staritem">R</option>
<option value="2" class="staritem">RR</option>
<option value="3" class="staritem">RRR</option>
<option value="4" class="staritem">RRRR</option>
<option value="5" class="staritem">RRRRR</option>
</select>
</span>
没有值的第一个选项会自动被视为占位符和弹出窗口标题,因此您只剩下非常简单的 CSS 来设置可以出现在弹出窗口、对话框和 select编辑 select 的文本:
#AddbookConditionSelect-listbox li a, #AddbookConditionSelect-menu li a, .staritem{
font-family: WebSymbols-Regular;
color: #eab92d;
}
#AddbookConditionSelect-button {
font-family: 'Lato', sans-serif ;
}
Here is a working DEMO
我有一个应用了给定字体的 select 菜单。在代码中它被称为 'WebSymbolsRegular'。现在我希望只有第一个菜单项没有应用这种字体。我正在使用 jquery 移动设备,当第一个元素显示在 select 中时,我设法更改了第一个元素的字体,但是我无法在下拉列表中更改第一个元素的字体,请参阅图片:
所以 'Please select a condition rating' 是完美的,但正如您在下拉列表中看到的那样,'WebSymbolsRegular' 接管了我,我得到了乱码。我想改变这个。这是我的代码:
CSS: .stars .ui-btn-inner { font-family: 'WebSymbolsRegular'; 颜色:#eab92d; }
.stars .ui-btn-inner .firstitem
{
font-family: 'Lato' !important;
color: white;
}
.firstitem
{
font-family: 'Lato' !important;
}
.ui-btn-inner 是必需的,因为 jquery 移动设备将自己的标记添加到元素。
HTML:
<span class="stars">
<select id="AddbookConditionSelect" style="color: #eab92d; font-family: WebSymbolsRegular;">
<option value="0" class="firstitem">Please select a condition rating</option>
<option value="1">R</option>
<option value="2">RR</option>
<option value="3">RRR</option>
<option value="4">RRRR</option>
<option value="5">RRRRR</option>
</select>
</span>
使用 R 的原因是 'WebSymbolsRegular' 字体将其更改为星星,这是所需的效果。关于如何更改 drop 的第一次字体以正确阅读的任何想法?
问题在于您的内联样式会否决 CSS 文件中的任何内容,包括 !important
语句。现在您可能想尝试 CSS3 伪选择器 :first-child
并删除 "firstitem" class。我会那样做(我保留了你的 HTML 虽然我宁愿给你的 select
元素一个 "stars" class 而不是使用额外的跨度):
HTML
<span class="stars">
<select id="AddbookConditionSelect">
<option value="0">Please select a condition rating</option>
<option value="1">R</option>
<option value="2">RR</option>
<option value="3">RRR</option>
<option value="4">RRRR</option>
<option value="5">RRRRR</option>
</select>
</span>
CSS
.stars option { font-family: 'WebSymbolsRegular'; color: #eab92d; }
.stars option:first-child {font-family: 'Lato';}
请注意,如果您需要支持旧版浏览器,您可以将 "firstitem" class 保留在原处,并将 CSS 的第二行替换为这一行:
.stars option.firstitem {font-family: 'Lato';}
因此,根据您提供的内容,我注意到有一个内联样式:
<select id="AddbookConditionSelect" style="color: #eab92d; font-family: WebSymbolsRegular;">
当有内联样式时,它会否决任何其他样式。
您可以尝试删除它,然后放入 CSS:
#AddbookConditionSelect select {
font-family: 'Lato';
}
#AddbookConditionSelect select:not(:first-child) {
font-family: 'WebSymbolsRegular';
}
在 jQuery Mobile 中,您可以选择使用非本机 select 菜单:
<span class="stars">
<select id="AddbookConditionSelect" data-native-menu="false" >
<option>Please select a condition rating</option>
<option value="1" class="staritem">R</option>
<option value="2" class="staritem">RR</option>
<option value="3" class="staritem">RRR</option>
<option value="4" class="staritem">RRRR</option>
<option value="5" class="staritem">RRRRR</option>
</select>
</span>
没有值的第一个选项会自动被视为占位符和弹出窗口标题,因此您只剩下非常简单的 CSS 来设置可以出现在弹出窗口、对话框和 select编辑 select 的文本:
#AddbookConditionSelect-listbox li a, #AddbookConditionSelect-menu li a, .staritem{
font-family: WebSymbols-Regular;
color: #eab92d;
}
#AddbookConditionSelect-button {
font-family: 'Lato', sans-serif ;
}
Here is a working DEMO