Aqui está o meu HTML:
<select id="ddlProducts" name="ddProducts">
<option>Product1 : Electronics </option>
<option>Product2 : Sports </option>
</select>
Quero deixar o nome do produto (ou seja, 'Produto1', 'Produto2', etc) em negrito e suas categorias (viz. Eletrônicos, Esportes, etc.) em itálico, usando apenas CSS. Encontrei uma pergunta antiga que mencionava que não é possível usar HTML e CSS, mas espero que exista uma solução agora.
html
css
drop-down-menu
MrClan
fonte
fonte
Respostas:
Existem apenas alguns atributos de estilo que podem ser aplicados a um
<option>
elemento.Isso ocorre porque esse tipo de elemento é um exemplo de um "elemento substituído". Eles dependem do sistema operacional e não fazem parte do HTML / navegador. Não pode ser estilizado via
CSS
.Existem plug-ins / bibliotecas de substituição que se parecem com um,
<select>
mas são realmente compostos deHTML
elementos regulares que podem ser estilizados.fonte
select > option
, mas não há uma solução confiável de navegador cruzado para fazê-lo. No Chrome, pelo menos, você pode personalizar o tamanho da fonte, a família, o plano de fundo e a cor do primeiro plano. Talvez mais alguns ajustes, mas coisas como estofamento, cor do cursor e outras coisas que não consegui mudar. De fato, pode haver alternativas, mas, dependendo do projeto, a tag <select> pode ser necessária, por exemplo, para validação angular ou por algum outro motivo.<option>
, mas mostra como emular<select>
para que você possa estilizar as opções.OPTION
com CSS com os navegadores modernos - adicionar uma marca de estilo para a opçãoNão, não é possível, pois o estilo desses elementos é tratado pelo sistema operacional do usuário. O MSDN responderá sua pergunta aqui :
fonte
style="background-color: red;color: red;"
Nao funciona para mim. EDIT: Após fechar o console do desenvolvedor, o estilo foi aplicado.Você pode estilizar os elementos de opção até certo ponto.
Usando a tag * CSS, você pode estilizar as opções dentro da caixa desenhada pelo sistema.
Exemplo:
Isso ficará assim:
fonte
Eu encontrei e usar este bom exemplo de denominar os seleciona e options.You pode fazer com esta escolha tudo o que você want.Here é o Fiddle
html
css
JS
fonte
Aqui estão algumas maneiras de estilizar
<option>
junto com o<select>
se você estiver usando o Bootstrap e / ou o jquery. Entendo que não é isso que o pôster original está perguntando, mas pensei em ajudar outras pessoas que se deparam com essa pergunta.Ainda é possível atingir o objetivo de estilizar cada um
<option>
separadamente, mas também pode ser necessário aplicar algum estilo<select>
. O meu favorito é a biblioteca "Bootstrap Select" mencionada abaixo.Biblioteca de Seleção do Bootstrap (jquery)
Se você já estiver usando o bootstrap, tente a biblioteca Bootstrap Select ou a biblioteca abaixo (já que ele tem um tema de bootstrap).
Observe que você pode estilizar o
select
elemento inteiro ou osoption
elementos separadamente.Exemplos :
Dependências : requer jQuery v1.9.1 +, Bootstrap , o componente dropdown.js do Bootstrap e o CSS do Bootstrap
Compatibilidade : inseguro, mas o bootstrap diz que "suporta as versões mais recentes e estáveis de todos os principais navegadores e plataformas"
Demonstração : https://developer.snapappointments.com/bootstrap-select/examples/
Select2 (JS lib)
Há uma biblioteca que você pode usar chamada Select2 .
Dependências : a biblioteca é apenas JS + CSS + HTML (não requer JQuery).
Compatibilidade : IE 8+, Chrome 8+, Firefox 10+, Safari 3+, Opera 10.6+
Demo : https://select2.org/getting-started/basic-usage
Há também um tema de inicialização disponível.
Nenhum exemplo de Bootstrap:
Exemplo de inicialização:
MDBootstrap ($ & Bootstrap & JQuery)
Se você tiver dinheiro extra, poderá usar uma biblioteca premium MDBootstrap . (Este é um kit de interface do usuário inteiro , portanto não é leve)
Isso permite que você estilize seus elementos de seleção e opção usando o design do material .
Existe uma versão gratuita, mas não permitirá que você use o bonito design de materiais!
Dependências : Bootstrap 4 , JQuery,
Compatibilidade : "suporta as versões mais recentes e estáveis de todos os principais navegadores e plataformas".
Demonstração : https://mdbootstrap.com/docs/jquery/forms/select/#color
fonte
Parece que eu posso definir o CSS
select
diretamente no Chrome. Código CSS e HTML fornecido abaixo:fonte
Como já mencionado, a única maneira é usar um plugin que substitua a
<select>
funcionalidade.Uma lista de plugins jQuery: http://plugins.jquery.com/tag/select/
Dê uma olhada no exemplo usando o
Select2
plugin: http://jsfiddle.net/swsLokfj/23/fonte
O Bootstrap permite usar o estilo via conteúdo de dados:
Exemplo: https://silviomoreto.github.io/bootstrap-select/examples/
fonte
Algumas propriedades podem ser denominadas para
<option>
tag:font-family
color
font-*
background-color
Além disso, você pode usar fontes personalizadas para
<option>
etiquetas individuais , por exemplo, qualquer fonte do google , ícones de materiais ou outras fontes de ícones da icomoon ou similares. (Isso pode ser útil para seletores de fontes etc.)Considerando isso, você pode criar uma pilha da família de fontes e inserir ícones em
<option>
tags, por exemplo.de onde
★
é tiradoIcons
e o resto éRoboto
.Observe que as fontes personalizadas não funcionam na seleção para dispositivos móveis.
fonte
red
: <option style = "color: red;">Na verdade, você pode adicionar: antes e: depois e estilizá-las. Pelo menos é alguma coisa
fonte
É 2017 e é possível segmentar opções de seleção específicas. No meu projeto, tenho uma tabela com uma classe = "variações" , e as opções de seleção estão na célula da tabela td = "value" , e o select tem um ID select # pa_color . O elemento option também possui uma opção de classe = "anexada" (entre outras tags de classe). Se um usuário estiver conectado como cliente atacadista, ele poderá ver todas as opções de cores. Mas os clientes de varejo não podem comprar duas opções de cores, então eu as desativei
Demorou um pouco de lógica, mas aqui está como eu direcionei as opções de seleção desabilitadas.
CSS
Com isso, minhas opções de cores são visíveis apenas para clientes atacadistas.
fonte
Deixando aqui uma alternativa rápida, usando a alternância de classe em uma tabela. O comportamento é muito semelhante a um select, mas pode ser denominado com transição, filtros e cores, cada filho individualmente.
fonte
Você pode usar estilos embutidos para adicionar estilo personalizado às
<option>
tags.Por exemplo:
<option style="font-weight:bold;color:#09C;">Option 1</option>
Isso aplicará os estilos<option>
somente a esse elemento específico .Em seguida, você pode usar um pouco de magia javascript para aplicar os estilos inline a todos os
<option>
elementos em uma<select>
tag da seguinte maneira:var select = $(document).getElementById('#select-element-id')
var option = select.children('#option-element-id')
option.css('font-weight', 'bold')
option.css('font-size', '24px')
Você também pode usar
<option value="" disabled> <br> </option>
para adicionar uma quebra de linha entre as opções.fonte
Este elemento é renderizado pelo sistema operacional, não por HTML. Não pode ser estilizado via CSS.
tente isso, pode ajudá-lo
fonte
Você pode adicionar uma classe e fornecer o peso da fonte: 700; em opção. Mas, usando isso, todo o texto ficará em negrito.
fonte
Definitivamente vai funcionar. A opção de seleção é renderizada pelo sistema operacional e não pelo html. É por isso que o estilo CSS não afeta, geralmente
option{font-size : value ; background-color:colorCode; border-radius:value; }
isso funcionará, mas não podemos personalizar o preenchimento, a margem etc.
Abaixo do código, 100% trabalha para personalizar a tag de seleção retirada deste exemplo
fonte
Mesmo se não houver muitas propriedades a serem alteradas, você poderá obter o seguinte estilo apenas com css:
HTML:
CSS:
fonte