Sublinhado sobrescrito no IE
-
05-07-2019 - |
Pergunta
Serei breve porque estou com pouco tempo, então peço desculpas se não for tão detalhado quanto gostaria.
Eu tenho algum código:
print("<a href='#'>Some text<sup>®</sup> some more text</a>");
No FF funciona como eu gostaria, o link como um todo está sublinhado.No entanto, no IE, o link é sublinhado, exceto sob o ®, onde parece um símbolo acima de um hífen e tem uma aparência bastante ridícula.
Tentei diversas sugestões que encontrei no Google, mas nenhuma delas ajudou muito a alcançar o efeito desejado.Infelizmente, adicionar uma borda na parte inferior não é uma opção.Até agora, a melhor solução é quebrar completamente o sublinhado na tag sup com CSS, o que ainda o deixa funcionando bem no FF e parecendo menos bobo no IE.
Se alguém pudesse ajudar com isso, ficaria muito grato, prefiro não passar pelo site removendo <sup>
tags como me disseram que terei que fazer caso não resolva esse dilema.
ATUALIZAR:Optei pela solução sup {"text-decoration:none" }, servirá por enquanto.Existem marcas de registro em todos os lugares, então todo o site teria que ter sido atualizado, o que foi mais problemático do que valeu a pena, todos nós decidimos.Obrigado a quem respondeu.
Solução
o <sup>
A tag não é ótima para coisas como marca registrada e símbolos reg.
Eu prefiro fazer isso com CSS:
<span style='font-size:75%;vertical-align:super;text-decoration:none'>®</span>
Se você pode configurar uma classe .reg:
.reg {
font-size:75%;
vertical-align:super;
text-decoration:none
}
Por:
<span class='reg'>®</span>
Outras dicas
Às vezes, você não tem permissão para adicionar classe a um link ou embrulhá -la com qualquer elemento. A situação não é tão rara quando você precisa trabalhar com código de terceiros. BTW, o mesmo problema com o elemento também.
Nesse caso, você pode usar algo assim:
- Deixe sublinhado como é para o Firefox (tudo parece ok)
Use esse estilo para o Chrome (tem os mesmos problemas como o IE, ainda mais difícil):
[style] a sup { text-decoration: none; display: inline-block; // without this previous property will not work border-bottom: 1px solid; line-height: 1.5em; // this and following properties are used to shift margin-top: -1em; // an element to make border aligned with underline // can be used relative position or something else. } a sub { text-decoration: none; display: inline-block; vertical-align: middle; border-bottom: 1px solid; line-height: 0.7em; } [/style] [a href="what-aczone-can-do-for-you.aspx"]Text-Jj_Jj[sub]Jj[/sub][sup]Jj[/sup]moreText[/a]
- Desculpe por [] em tags, ainda não posso destacar como esse sistema f *** faz amostras de código - quando tento formatar como quiser, fico bagunçado.
Bem, não é uma solução elegante, basicamente use uma borda em vez de um sublinhado. Você teria que codificar a cor com base em "ativo, vistado, etc"
<style type="text/css">
a.u {
text-decoration: none;
border-bottom: 1px solid black;
display: inline;
}
</style>
<a href="#123" class="u">CHEESE<sup>®</sup></a>
Eric
Eu fiz funcionar assim
print(< a href='#' class="underline">Some text< sup >®< /sup > some more text< /a >)
.underline {text-decoration:none; border-bottom:1px solid #FFF;}
A solução de Eric é a mais próxima.Ele não precisa ter display: inline
desde <a>
elementos são elementos embutidos.a única coisa que lhe falta é o line-height
para que você possa ver a borda inferior no IE 6 e no IE 7.Caso contrário, você não verá a linha.
<style type="text/css">
a.u {
text-decoration: none;
border-bottom: 1px solid black;
line-height: 1.5em;
}
</style>
<a href="#123" class="u">CHEESE<sup>®</sup></a>
Bem, eu concordo que parece horrível, mas parece ser exatamente a maneira como o IE combina sublinhado e substituto. Eu sugiro que você vá com seu plano CSS para remover o sublinhado para a sup
Se você não pode trapacear com uma fronteira. Existe uma propriedade do IE chamada text-underline-position
Mas não tem nenhum valor que ajude aqui ou tenho medo.
Para o benefício de quem ainda não sabe que seria:
a sup{text-decoration:none;}
Como diz Diodeus, e uma pequena pesquisa tende a concordar, entendo que a marca Reg não iria em um elemento SUP de qualquer maneira.
Então, assumindo que estamos apenas abordando a questão do SUP/sublinhamento e esquecendo que estamos nos referindo ao Reg Mark, as únicas soluções que conheço para fazê -las 'parecer' as mesmas são fazer vertical-align: baseline
ou matar o text-decoration
no sup.
A solução de fundo de borda colocará a linha em qualquer "P" "q" ou "y", em vez de através das pernas inferiores das letras. Isso é 2px menor que um sublinhado seria.
Uma alternativa é fazer a u003Ca>posição: relativau003C/a>
Faça a u003Csup>posição: absoluto; topo: -3px; Decoração de texto: Nenhum;u003C/sup>
Adicione um extra depois