2013-01-18 4 views

Antwort

33

Es ist nur mit Grenzen. Wenn Sie solche Pfeile sehen, hat der Entwickler höchstwahrscheinlich Pseudoelemente verwendet, um sie zu erstellen. Was passiert, ist, dass Sie eine transparente Box ohne Inhalt erstellen, und da dort nichts ist, sehen Sie nur die eine Ecke der Grenze. Das sieht praktisch wie ein Pfeil aus.

Wie es tun:

.foo:before { 
    content: ' '; 
     height: 0; 
     position: absolute; 
     width: 0; 
     border: 10px solid transparent; 
     border-left-color: #333; 
} 

http://jsfiddle.net/fGSZx/

Hier einige Ressourcen helfen:

CSS Triangle from CSS-Tricks (dies sollte alles aufklären)

Smashing Mag article about :before and :after

+4

Danke. Selbst nachdem ich den zweiten Link gelesen hatte, dauerte es eine Weile, bis ich ihn bekam. Mir fehlte die nun offensichtlich gewordene Tatsache, dass wenn Kanten an einer Ecke zusammentreffen, ihre Kanten um 45 Grad abgeschnitten sind, so dass sie ohne Überlappung zusammenpassen. Hier ist ein weiterer Link mit mehr Tricks. http://jonrohan.me/guide/css/creating-triangles-in-css/ – tetranz

+0

Sie können auch [dieses Web] (http://one-div.com/) überprüfen – vals

+0

Jemand öffnete ein Problem über das Ändern der Caret auf der [Github Seite] (https://github.com/twitter/bootstrap/issues/2526), ​​die einige Hintergrundinformationen für Sie von den Autoren von TW-BS bietet – tatlar

4

Hier ist das CSS für ein nach oben gerichtetes Caret, basierend auf dem CSS von bootstrap:

.caret-up { 
    display: inline-block; 
    width: 0px; 
    height: 0px; 
    margin-left: 2px; 
    vertical-align: middle; 
    border-top: none; 
    border-bottom: 4px solid #FFFFFF; 
    border-right: 4px solid transparent; 
    border-left: 4px solid transparent; 
    border-top-width: 0px; 
    border-top-style: dotted; 
    content: ""; 
}