2012-03-20 21 views
11

Zastosowałem CSS border-bottom:1px dashed #494949; w kilku kolejnych komórkach w jednym wierszu tabeli HTML, ale granica nie jest jednolita. Kreski na końcu każdej komórki pojawiają się trochę dłużej. Kropkowana granica również nie jest jednolita. Jestem również za pomocą border-collapse:collapse;Niejednolita kreska przerywana w komórkach tabeli

Oto zrzut ekranu:

enter image description here

Czy jest jakiś sposób mogę uzyskać jednolite przerywana granicę?

+0

Czy możesz dodać zrzut ekranu? – vivek

+0

czy możesz pokazać ogólny html swojego stołu, że możemy zobaczyć, gdzie dokładnie dołączyłeś css? –

+0

Po prostu wydają się być długie, zmniejsz rozmiar do 1px, aby mieć jaśniejszą granicę. – Starx

Odpowiedz

2

Przeglądarki mają niepoprawne renderowania granic przerywane. Możesz walczyć z nimi, usuwając odstępy między komórkami i dopełnianie komórek oraz ustawiając granicę na elemencie tr, a nie na komórkach, np.

table { border-collapse: collapse; } 
td { padding: 0; } 
tr { border-bottom:1px dashed #494949; } 

Ale nadal wydaje się nie działać na IE 9 (na skrzyżowaniach komórkowych), a stare przeglądarki ignorują granice ustawione w wierszach tabeli.

Zamiast tego należy użyć jednolitego szarego obramowania. Działa konsekwentnie i może być wizualnie akceptowalny, a może nawet lepszy.

1

Trudno powiedzieć na pewno, co się dzieje bez zrzutu ekranu lub wersji demonstracyjnej, ale wydaje się, że wydaje się, że są dłuższe przy przejściu do następnej komórki, ponieważ ostatnia kreska dotyka pierwszego myślnika w następnej komórce.

W takim przypadku spróbuj umieścić obramowanie na całym wierszu zamiast na poszczególnych komórkach.

0

Nie jestem pewien, ale wygląda na to, że problem z renderowaniem. Nawet użycie obrazu tła zamiast obramowania-dołu będzie miało ten sam rodzaj problemu.

0

Najlepszym rozwiązaniem w tym przypadku jest utworzenie pliku powtarzalnego obrazu, którego wysokość jest wysokością wiersza tabeli. Ustaw go jako tło tabeli i upewnij się, że się powtarza. Przetestowałem to i działa. Zauważ, że w pliku PNG utworzonym dla tego przykładu kreski mają długość 3px, a po prawej są trzy puste, końcowe piksele, dla końcowych wymiarów 30px (szerokość) x 29px (wysokość).

Oto kod:

.borderTable { 
 
    background: url(http://www.windycitywebsites.com/wp-content/uploads/2012/03/dash_png.png); 
 
    background-repeat: repeat; 
 
} 
 

 
.borderTable td { 
 
    height: 29px; 
 
}
<table class="borderTable" width="350" border="0" cellspacing="0" cellpadding="0"> 
 
    <tr class="stuff"> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
    <tr class="stuff"> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
    <tr> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
</table>

+0

Należy zauważyć, że jeśli absolutnie potrzebujesz podświetlić tylko niektóre wiersze, mogę zasugerować utworzenie pojedynczej kolumny wierszy tabeli i wypełnienie wierszy DIV lub TABLE i zastosowanie do tego klasy .borderTable. – FurryWombat

Powiązane problemy