2016-05-20 5 views
2

Ich habe eine einfache Tabelle, bootstrap formatiert, mit 3 Spalten und ein paar Zeilen (dynamisch mit Daten vom Server hinzugefügt).Entfernen der Grenze vor der letzten Zelle

<table class="table table-bordered"> 
    <tr> 
     <th>Data</th> 
     <th>Value</th> 
     <th><!-- Should be 'Edit' but I'm hiding it--></th> 
    </tr> 
    <tr> 
     <td>data</td> 
     <td>value</td> 
     <td width="70px"><a href="/link/to/edit/value">Edit</a></td> 
    </tr> 
</table> 

Ich mag die Grenze zwischen den Spalten Value und Edit entfernen, um es sieht aus wie es eine Spalte ist.

Dies ist, was ich versucht habe:

<style> 
    th:last-child, td:last-child { 
     border-left: none !important; 
    } 
    th:nth-last-child(2), td:nth-last-child(2) { 
     border-right:none !important; 
    } 
</style> 

Es ist tatsächlich funktioniert, aber ich will nicht die !important Parameter verwenden.

Gibt es eine Möglichkeit, dies zu tun, ohne !important oder eine andere Art und Weise sowohl Informationen in der gleichen Zelle wie folgt zu setzen: Value Info in der Mitte der Zelle und Edit Informationen auf dem rechten Seite?


bearbeiten
Danke Aaron für mir die without !important way geben, das ist:

<style> 
    body table.table.table-bordered tr th:last-child, 
    body table.table.table-bordered tr td:last-child { 
     border-left: none; 
    } 

    body table.table.table-bordered tr th:nth-last-child(2), 
    body table.table.table-bordered tr td:nth-last-child(2) { 
     border-right: none; 
    } 
</style> 

Auch wenn es gut funktioniert, ich bin sicher, dass es ein besserer Weg ist es wie ein inline zu tun Weg. Irgendwelche Ideen ?

Antwort

2

Um einen Stilsatz zu erstellen, können Sie die Tag-Spezifität erhöhen, indem Sie die Klassen und Tags verwenden.

so Ihren Stil wie diese werden wird:

<style> 
    body table.table.table-bordered tr th:last-child, td:last-child { 
     border-left: none; 
    } 
    body table.table.table-bordered tr th:nth-last-child(2), 
    body table.table.table-bordered tr td:nth-last-child(2) { 
     border-right:none; 
    } 
</style> 
+0

Es funktioniert auch, aber ich bin auf der Suche nach einer Möglichkeit, das zu tun, ohne '! Wichtig' zu verwenden Tag – tektiv

+0

@tektiv Entschuldigung ich habe diese aus Versehen, siehe die aktualisierte Version – Aaron

+0

Brillant! Es funktioniert gut, ich musste nur 'td: last-child' aus der ersten Stilregel mit' body table.table.table-bordered tr td: last-child' ersetzen. Vielen Dank ! – tektiv

0

Css = Cascading Style Sheets, , wenn Sie Ihr laden

th:last-child, td:last-child { 
    border-left: none !important; 
} 

vor dem Twitter Bootstrap, wird es überschrieben, es sei denn seine ‚wichtig! ' versuchen Sie Ihren Stil nach dem Bootstrap laden und es sollte nicht überschrieben werden - nicht mehr! Wichtig!

Ihre einzige andere Option wäre inline css?

+0

Es ist ein internes style-Tag, das nach dem Bootstrap geladen wird. Es kann also nicht das Problem sein. Wie kann ich Inline CSS in diesem Fall verwenden? – tektiv

+1

inline css überschreibt das Blatt oder Regeln Inline sieht so aus:

Inline css unterstützt nicht viele Selektoren und compex Aktionen. Ich bin froh, dass Sie eine Lösung gefunden haben :) –

-1

die Informationen in der gleichen Zelle zu setzen, Sie

<tr> 
    <th>Data</th> 
    <th>Value | Edit</th> 

</tr> 
<tr> 
    <td>data</td> 
    <td width="70px"> 
     <span style="float:left;width:50%;">this is the left</span> 
     <span style="float:right;width:50%:">this is right</span> 
    </td> 
</tr> 

Sie verwenden, um die Bootstrap-.text-Center-Klasse im ersten span-Elemente verwenden könnten den Text in der Mitte auszurichten. Ich hoffe es hilft.

+0

Da ein Bereich kein Blockelement ist, hat das Hinzufügen einer Breite keine Auswirkungen. – Aaron

Verwandte Themen