2014-12-09 12 views
6

Domyślnym zachowaniem wbudowanych elementów HTML z obramowaniem jest to, że na końcu i na początku linii w momencie rozbicia linii nie zostanie narysowana żadna granica. JakGranica CSS na końcu linii na elementach śródliniowych

span { 
    border: 1px solid black; 
} 

Zobacz Wynik: http://jsfiddle.net/yuszuv/ft7waga3/1/

Czy istnieje jakiś sposób, aby wyciągnąć „brakujących” granice, tak, że każda linia wydaje się być zawarty w pudełku?

+0

Uwaga ładne, ale może można zrobić to słowo-break: break-http: // jsfiddle. net/ft7waga3/4/ – dfsq

+1

Nieco nowa własność CSS 'box-decoration-break: clone;' rozwiązuje to dla Firefoksa. – jan

+0

@jan Dzięki, nie znałem tej nowej nieruchomości. Zaktualizowałem swoją odpowiedź rozwiązaniem dla wszystkich przeglądarek, z wyjątkiem IE. –

Odpowiedz

10

Obawiam się, że nie można wykonać każdej linii zawartej w prostokącie przy użyciu border na elemencie display:inline.
Jednak rozwiązaniem alternatywnym jest użycie numeru box-shadow.

span { 
    line-height: 32px; 
    box-shadow: 0 0 0 1px black; 
} 

jsfiddle

Poniżej zrzut ekranu z Firefox:

enter image description here


Jak powiedział Jan, lepszym rozwiązaniem jest użycie box-decoration-break

Według canIuse, to powinno działać na wszystkich najnowszych przeglądarkach z wyjątkiem IE:

span { 
    border: 1px solid black; 
    -webkit-box-decoration-break: clone; 
    box-decoration-break: clone; 
} 

updated jsFiddle

+2

Nie działa poprawnie w przeglądarce Firefox. –

+0

@ chipChocolate.py Działa na moim FF 27.0.1 działającym w systemie OSX. Może musisz dodać przedrostek '-moz-', więc użyj '-moz-box-shadow: 0 0 0 1px black; box-shadow: 0 0 0 1px czarny; ' –

+0

[' box-shadow'] (http://caniuse.com/#search=box-shadow) nie wymaga żadnego prefiksu. –

Powiązane problemy