O Unicode funcionou muito bem para mim no jsfiddle, mas quando tentei copiá-lo / colá-lo no meu código, ele não foi traduzido corretamente. Portanto, para aqueles com esse problema, a codificação HTML para o caractere de desenho da caixa unicode horizontal é & # 9472; fileformat.info/info/unicode/char/2500/index.htm e também há uma opção mais pesada em & # 9473; fileformat.info/info/unicode/char/2501/index.htm
JeffG 10/10
1
no Mobile Firefox (e possivelmente em outros navegadores móveis), a disabledopção é mostrada com um botão de opção desabilitado à direita ...
GoTo
mas os grupos de opções são renderizados de maneira diferente no PC e no celular, portanto a opção desativada ainda é a melhor solução.
GoTo
1
A codificação do arquivo html também é vital para que os caracteres "─" apareçam como uma linha, em vez de sem sentido. UFT8 com BOM pode ser uma boa escolha.
Em vez de colocar um rótulo nos grupos de opções, tente adicioná-lo à sua folha de estilo: optgroup + optgroup {border-top: 1px preto sólido} Muito menos aparência brega do que um monte de traços.
Laurence Gonsalves
2
Os rótulos do grupo de opções devem descrever o grupo. Se um navegador fosse implementado de acordo com a captura de tela na especificação do HTML 4.01, o usuário seria confrontado com linhas de traços e teria que examinar cada um para descobrir o que estava por trás dele.
Quentin
2
@ Laurence: O IE7 não suporta estilos CSS no optgroup ou nos elementos da opção. Pelo menos não fronteiras
grom
1
<optgroup style = "border-top: 1px pontilhado #ccc; margin: 5px 0;"> </optgroup> - parece legal pelo menos no firefox!
Ben Sinclair
1
Um grupo de opções vazio como este não é um html legal. Você receberá erros de validação se usá-lo. Prefiro a resposta de james.garriss.
Ariel
22
Este é um tópico antigo, mas como ninguém postou uma resposta semelhante, adicionarei isso, pois é o meu modo preferido de separação.
Acho que usar traços e tal é um pouco desagradável, pois pode ficar aquém da largura da caixa de seleção. Então, prefiro usar CSS para criar meus separadores ... uma simples coloração de fundo.
<select><optionstyle="background-color:#cccccc;"disabledselected>Select An Option</option><option>First Option</option><option>Second</option><optionstyle="font-size:1pt;background-color:#000000;"disabled> </option><option>Third</option><option>Fourth</option><optionstyle="font-size:1pt;background-color:#000000;"disabled> </option><option>Fifth</option><option>Sixth</option></select>
Oi James, eu também gosto dessa solução, mas os leitores de tela lêem "desativar opção traço traço traço ...", o que pode ser muito confuso para usuários com deficiência ... você tem uma idéia de como podemos evitar isso? obrigado!
Julio
1
É possível adicionar uma classe aos elementos visuais que você não deseja falar e adicionar um comando ARIA que oculta / desativa a classe? Talvez algo como uma das técnicas usadas aqui? asurkov.blogspot.com/2012/02/…
james.garriss
Na verdade, @Julio, você deve postar isso como uma nova pergunta. Estou curioso para saber, mas nunca tinha programado para leitores de tela antes.
James.garriss
9
Em vez do hífon comum, substituí-lo usando um símbolo de barra horizontal do conjunto de caracteres estendidos, não ficará muito bom se o usuário estiver em outro país que substitua esse caractere, mas funcione bem para mim. Existe uma variedade de chacters diferentes que você pode usar para obter ótimos efeitos e não há CSS envolvido.
A resposta pode ser melhorada com um exemplo do jsfiddle. Essa parece ser a solução mais integrada, sem depender de efeitos colaterais ou hacks, mas seria bom comparar visuais de outras respostas.
raider33
Não funciona em muitos navegadores. (como de costume, entradas sendo uma dor na bunda) #
4040 Quarenta
5
Estou transformando o comentário de @Laurence Gonsalves em uma resposta, porque é o único que funciona semanticamente e não parece um hack.
Tente adicionar isso à sua folha de estilo:
optgroup + optgroup { border-top:1px solid black }
Essa é realmente a maneira correta de fazer isso (o mais importante é que não adiciona conteúdo sem sentido). Eu gosto de estilo desta forma (adicionando um pouco de espaço extra verticais ao redor do separador):optgroup { padding-bottom: 8px; } optgroup:not(:first-child) { padding-top: 8px; border-top: solid 1px #666; }
Nicolas Le Thierry d'Ennequin
3
Outra maneira é usar uma imagem de fundo css 1x1 na opção que parece funcionar apenas com o Firefox e ter um fallback "----"
O espaçamento entre os caracteres é determinado pela fonte e pelo mecanismo de renderização. Por exemplo, vejo espaços entre seus traços no Chrome (Windows), mas não no Safari (Mac).
Respostas:
A abordagem da opção desativada parece ter a melhor aparência e o melhor suporte. Também incluí um exemplo de uso do optgroup.
optgroup (desta maneira meio que é péssimo):
opção desativada (um pouco melhor):
E se você quiser ser realmente chique, use o caractere de desenho da caixa unicode horizontal.
(MELHOR OPÇÃO!)
http://jsfiddle.net/JFDgH/2/
fonte
disabled
opção é mostrada com um botão de opção desabilitado à direita ...Experimentar:
fonte
Este é um tópico antigo, mas como ninguém postou uma resposta semelhante, adicionarei isso, pois é o meu modo preferido de separação.
Acho que usar traços e tal é um pouco desagradável, pois pode ficar aquém da largura da caixa de seleção. Então, prefiro usar CSS para criar meus separadores ... uma simples coloração de fundo.
fonte
Se você não quiser usar o elemento optgroup, coloque os traços em um elemento opcional e atribua o atributo desativado. Será visível, mas acinzentado.
fonte
Em vez do hífon comum, substituí-lo usando um símbolo de barra horizontal do conjunto de caracteres estendidos, não ficará muito bom se o usuário estiver em outro país que substitua esse caractere, mas funcione bem para mim. Existe uma variedade de chacters diferentes que você pode usar para obter ótimos efeitos e não há CSS envolvido.
fonte
Defina uma classe em CSS:
Escreva em HTML:
fonte
Estou transformando o comentário de @Laurence Gonsalves em uma resposta, porque é o único que funciona semanticamente e não parece um hack.
Tente adicionar isso à sua folha de estilo:
Muito menos brega do que um monte de traços.
fonte
optgroup { padding-bottom: 8px; } optgroup:not(:first-child) { padding-top: 8px; border-top: solid 1px #666; }
Outra maneira é usar uma imagem de fundo css 1x1 na opção que parece funcionar apenas com o Firefox e ter um fallback "----"
http://jsfiddle.net/yNecQ/6/
ou usar javascript (jquery) para:
http://tutorialzine.com/2010/11/better-select-jquery-css3/
consulte também Como adiciono uma linha horizontal em um controle de seleção html?
fonte
Se for apenas WebKit, você pode usar
<hr>
para criar um separador real.http://code.google.com/p/chromium/issues/detail?id=99534
fonte
Você pode usar o em dash "-". Não há espaços visíveis entre cada personagem.
(Em algumas fontes!)
Em HTML:
Ou em XHTML:
fonte
Este é o melhor sempre.
fonte
você pode fazer isso também. é fácil e faça com que o divisor selecione a lista suspensa.
fonte
Optei por alternativamente condicionalmente cor e fundo. Definindo uma ordem de classificação e com o vue.js, fiz algo assim:
fonte