2011-02-09 5 views
17

Я не уверен, что это возможно, но у меня есть случай, когда я хотел бы выделить часть (не все) текста в рамках опции выбора HTML тег.Частично жирный текст в HTML-выборке

Я пробовал использовать теги b, а также сильные теги, не повезло (в Chrome). CSS может работать, но поскольку он работает на уровне элемента, я не уверен, как это сделать.

Есть ли способ сделать это?

+2

псевдо-элементов ': первый-letter' и': первый-line' может дать вам некоторый контроль над этим, но это вероятно, не так уж тонкой настройки, как хотелось бы. –

ответ

20

Нет; это невозможно.

Вместо этого вы можете создать поддельный выпадающий список, используя Javascript.

+0

У меня было ощущение, что это может быть ответ. Благодаря! – Ben

+0

На самом деле, есть другое, более простое решение, посмотрите на ответ Pritesh. – Rodrigo

-1

Try, чтобы обернуть текст с <span id="wrap">Some text</span> в CSS не делать этого #wrap {font-weight: bold}

+0

Я собирался сказать то же самое. Я просто тестировал его, не работает. –

+1

Вы не можете поместить теги в '

+0

Вы можете попробовать добавить стиль к элементу элемента, но я сомневаюсь, что это поможет. :) – GolezTrol

3

Нет, это невозможно. У вас есть два варианта:

1) Используйте <optgroup>, чтобы создать описательный заголовок для того, что вы делаете (вряд ли это поможет).

2) Имитировать раскрывающееся меню с помощью JavaScript. Я не уверен, но я думаю, что пользовательский интерфейс jQuery может иметь сценарий выпадающего меню.

-1

Ну, вы можете использовать <strong> или <b> в Firefox, но он не будет работать в Chrome или IE (не cheked любой другой)

+0

Даже MDN не предполагает, что: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option. Вы должны указать ссылку и назвать эту функцию. Если не существует, это довольно хрупко. – hakre

4

Я думаю, что его слишком поздно, но эта вещь работает для меня. Примените свойство «font-weight: bolder» к тегу опции, чтобы текст внутри него полужирный, без использования каких-либо тэгов html.

<option value="optionValue" class="bold-option"> 
.bold-option{font-weight: bolder;} 
+0

Это работало для меня в Firefox. Я думаю, что это все еще довольно специфично для браузера. – Darren

10

так как хром не допускает жирный шрифт на теге опциона. вы можете использовать свойство text-shadow как

text-shadow: 0px 0px 0px black;

это даст такой же внешний вид смелыми и работы на всех браузерах

+0

Почему так низко проголосовали? Это решило мою проблему. Кажется, «люди продолжают спешить в наши дни». – Rodrigo

+0

Вы также можете использовать «text-shadow: 1px 1px black;» – Rodrigo

+1

Предполагается, что это неправильно, потому что это неправильно - (а) он не выделяет только часть текста, как запросил ОП, и (б) только «цвет», я думаю, является кросс-браузером. – EML

1

Смелый энный вариант в выберите.

В css нет способа сделать это. Если требуется дифференциация между параметрами, используйте цвет и фон.

.diff-option { 
    color : grey; 
} 
.other-options{ 
    color:white 
    background: ... 
} 
2

Простое решение:

<select> 
    <option>Simple</option> 
    <option class='bolden'>Bold</option> 
    <option>Simple</option> 
</select> 
<style> 
    .bolden{font-family:"Arial Black"} 
</style> 

Пример: https://jsfiddle.net/hnzhbz69/

Смежные вопросы