2017-07-26 33 views
8

z jakiegoś powodu, przy stosowaniu przerywana styl obramowania do linii, Chrome renderuje końce jako podwójnych kropek, który wygląda okropnie zwłaszcza na krótkich liniach:przerywane linie w Chrome

.text { 
 
    border-bottom: 2px dotted #000; 
 
}
<span class="text">Hi</span><br/> 
 
<span class="text">lll</span><br/> 
 
<span class="text">22</span><br/>

Nawet coś tak prostego jak border-bottom: 2px dotted #000; nie działa. Zauważyłem, że jakiś artykuł sugeruje ustawienie przezroczystości w lewo/w prawo, ale wygląda to jeszcze gorzej, ponieważ odcina małe rogi kropek.

Wygląda jednak dobrze w przeglądarce Firefox. Czy jest jakikolwiek sposób, aby wyglądał tak dobrze w Chrome, czy mam pecha?

Odpowiedz

3

Możesz całkowicie ustawić pseudo element o właściwościach border i przesunąć pozycję o "kropkę", aby ukryć pierwsze i ostatnie kropki, które są renderowane jako podwójne kropki.

.text { 
 
    position: relative; 
 
    overflow: hidden; 
 
    display: inline-block; 
 
} 
 

 
.text::after { 
 
    border-bottom: 2px dotted #000; 
 
    content: ''; 
 
    position: absolute; 
 
    bottom: 0; left: -2px; right: -2px; 
 
}
<span class="text">Hi</span><br/> 
 
<span class="text">lll</span><br/> 
 
<span class="text">22</span><br/>

+0

Dzięki, to powinno zadziałać, zakładając, że problemy są tylko na krańcach. – riv

+0

Właściwie, 'inline-block' miesza pionowe wyrównanie, jeśli umieścisz inny tekst na tej samej linii, działa lepiej' vertical-align: bottom', ale nie jestem pewien jakie mogą mieć inne efekty uboczne. – riv

+0

@riv Nie ma za co. 'vertical-align: bottom' powinno zająć się tym. –

0

Jeśli chcesz ustawić tylko dolnej granicy, to dlaczego nie spróbować text-decoration: podkreślić,

następnie ustawić text-decoration stylu: przerywana

Zobacz ten https://developer.mozilla.org/id/docs/Web/CSS/text-decoration-style

+0

To ma dokładnie ten sam problem w Chrome i podkreślenie dotyka tekst, który jest jeszcze gorsza. Plus kompatybilność jest gorsza. – riv