Wie kann ich das erstellen einer "QuickInfo-Schwanz" mit reinem CSS?
Ich kam gerade über eine saubere CSS-trick. Check out the fiddle...
CSS:
.tooltiptail {
display: block;
border-color: #ffffff #a0c7ff #ffffff #ffffff;
border-style: solid;
border-width: 20px;
width: 0px;
height: 0px;
}
.anothertail {
background-image: url(http://static.jqueryfordesigners.com/demo/images/coda/bubble-tail2.png);
display: block;
height: 29px;
width: 30px;
}
HTML:
<div>Cool Trick:
<br />
<div class="tooltiptail"></div>
</div>
<br />
<div>How do I get this effect with only CSS?
<br />
<div class="anothertail"></div>
</div>
Dieser erzeugt einen kleinen Pfeil/Dreieck-ähnliche Wirkung, "tooltip Schwanz". Dieser bläst meinen Verstand! Ich bin wirklich daran interessiert zu wissen, wie das funktioniert?!
Weiter, gibt es eine Möglichkeit, erweitern Sie in diesem CSS-trick einen Effekt zu erstellen, wie folgt:
Dies ist ein Interessantes problem. Kann das getan werden, nur mit CSS, ohne auf die Schatten denn nun?
UPDATE 1
Dachte ich eine Lösung zu meiner ersten Frage. Hier ist die Geige...
HTML
<div style="position: relative;">Cool Trick:<br />
<div class="tooltiptail"></div>
<div class="tooltiptail2"></div>
</div>
CSS
.tooltiptail {
display: block;
border-color: #ffffff #a0c7ff #ffffff #ffffff;
border-style: solid;
border-width: 20px;
width: 0px;
height: 0px;
}
.tooltiptail2 {
display: block;
border-color: transparent #ffffff transparent transparent;
border-style: solid;
border-width: 18px;
width: 0px;
height: 0px;
position: relative;
left: 4px;
top: -38px;
}
Nun, wie kann ich genau imitieren das kleine Bild oben mit Hilfe von reinem CSS, einschließlich der Schatten-und dass es cross-browser-kompatibel?
UPDATE 2
Hier ist meine Lösung, nach einer Kombination der Antworten unten. Ich habe es noch nicht getestet in verschiedenen Browsern, aber es sieht gut aus in Chrome.
http://jsfiddle.net/UnsungHero97/MZXCj/688/
HTML
<div id="toolTip">
<p>i can haz css tooltip</p>
<div id="tailShadow"></div>
<div id="tail1"></div>
<div id="tail2"></div>
</div>
CSS
#toolTip {
background-color: #ffffff;
border: 1px solid #73a7f0;
width: 200px;
height: 100px;
margin-left: 32px;
position:relative;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
box-shadow: 0px 0px 8px -1px black;
-moz-box-shadow: 0px 0px 8px -1px black;
-webkit-box-shadow: 0px 0px 8px -1px black;
}
#toolTip p {
padding:10px;
}
#tailShadow {
background-color: transparent;
width: 4px;
height: 4px;
position: absolute;
top: 16px;
left: -8px;
z-index: -10;
box-shadow: 0px 0px 8px 1px black;
-moz-box-shadow: 0px 0px 8px 1px black;
-webkit-box-shadow: 0px 0px 8px 1px black;
}
#tail1 {
width: 0px;
height: 0px;
border: 10px solid;
border-color: transparent #73a7f0 transparent transparent;
position:absolute;
top: 8px;
left: -20px;
}
#tail2 {
width: 0px;
height: 0px;
border: 10px solid;
border-color: transparent #ffffff transparent transparent;
position:absolute;
left: -18px;
top: 8px;
}
- Welche Browser muss es arbeiten?
- an dieser Stelle ist mir eigentlich egal 🙂 ich will einfach nur, um zu sehen, ob dies möglich ist! realistisch gesehen, ich würde ein Bild verwenden, aber ich interessiere mich für die Herausforderung
- Sollte machbar sein, wenn mit vielschichtigen Elementen und pixel-perfekte Positionierung für die Kontur. Mit oder ohne Schatten ?
- völlig einverstanden, aber können Sie es tun?
- Dies ist so einfach und doch so genial, gut finden, Hristo!
- danke!!! Würde ich mich über ein +1 😉
- Ich habe bereits gab dir eine Stimme bud, ich werde sicherstellen, dass zu erwähnen "+1" das nächste mal ok? Erste Favoriten-Frage auch 🙂
- haha tut mir Leid 🙂 ich weiß es zu schätzen!
- Was ist mit den wenig bitty weißes Quadrat auf es in Chrome?
- was genau beziehen Sie sich? Ich denke, dass der kleine weiße Quadrat zu tun hat, mit den Schatten auf den kleinen Pfeil.
- Ich fange an zu fühlen sich schlecht über so viele upvotes für die Beantwortung der kleinere Teil Ihrer Frage.
- nicht! Ich danke Ihnen für Sie zu beantworten 🙂 Der Grund, warum ich nicht akzeptieren Ihre Antwort ist, weil Sie nicht bieten eine Lösung für die Herausforderung, das war mein eigentliches Ziel mit dieser Frage, aber Sie gab einen (über) ausgezeichnete Antwort auf meine Verwirrung 🙂
- Es sieht wirklich nicht toll aus in Chrom... Alle css3-Schatten-box-Schatten, also sind Sie kariert. Ein Dreieck Quadrat ist unmöglich, und das ist, was Ihre ursprüngliche Bild hat. Eine Art Verwandte Artikel blogs.sitepoint.com/pure-css3-ribbons
- das original-Bild hat einen kleinen Runden Schatten, wenn das, was Sie sich beziehen, und ich bin nicht so besorgt, so dass es sich genau so. Ich wollte nur die Allgemeine Schatten zu arbeiten, so
box-shadow
ist genug für meinen Fall. Auch, wenn ich wirklich wollte machen es so Aussehen wie das Bild selbst, ich kann mit einem anderen element, machen Sie es wie von 1px 1px, und geben Sie es in eine größere box-shadow und breitete es aus, um es so Aussehen wie ein Kreis 🙂 - Total genial! +1 für dich. nun fügen Sie diese coolosity zu ein paar Seiten, die mir eine sehr praktische Ausrede, um zu vergessen, über die Fehler zu beheben 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel mit einer box-shadow, alle neueste version Browser unterstützen diese
http://jsfiddle.net/MZXCj/1/
HTML:
CSS:
CSS:
HTML:
Hier eine Erklärung, um die Antwort auf Ihre erste Frage (ich lasse den eigentlichen CSS zu anderen, da ich faul bin — bitte upvote Ihre Antworten, die Sie denken, verdienen die Stimmen!):
Beim Rendern eine Grenze mit verschiedenen Rand-Farben, aber den gleichen Stil (in deinem Fall
solid
), die Naht Division jedes paar der benachbarten Ecken eine Diagonale Linie. Es ist ziemlich ähnlich zu dem, was das Diagramm hier zeigt dergroove
,ridge
,inset
undoutset
Grenze Stile.Beachten Sie, dass zwar alle Browser Verhalten sich auf die gleiche Art und Weise und haben so getan, solange ich mich erinnern kann, dieses Verhalten ist nicht vollständig definiert ist, entweder die CSS2.1 spec oder die CSS-Hintergründe und Rahmen-Modul. Letztere hat einen Abschnitt beschreibt Farbe und Stil, die übergänge an den Ecken, und die Beschreibung scheint zu implizieren, dass für die Grenzen mit null-Eckradien, die Linie, der dargestellt wird, ist in der Tat eine Verbindungslinie zwischen der Ecke der padding-Kante mit der Ecke von der Grenze edge (was in einem 45-Grad abgewinkelten Linie für gleich Breite Ränder), aber die Skillung noch zu Bedenken, dass dies nicht immer der Fall sein (vor allem, da es berücksichtigt noch nicht die Grenzen mit null Eckenradien explizit).1
Durch die Inhalt (original-W3C-box-Modell, eine 40x40 Fläche ist entstanden aus der 20-pixel-Grenzen, mit dem Inhalt Dimensionen definiert als 0x0.
Teilung ein Quadrat mit diagonalen Linien verbinden seiner vier Ecken der Ergebnisse in den vier rechten Dreiecke, deren Rechte Winkel treffen auf dem Platz der Mittelpunkt (siehe unten).
Den oberen, unteren und linken Ränder sind weiß exakt an die hintergrund-der
.tooltiptail
element im container, während Sie den rechten Rand ist ein blauer Schatten exakt an die hintergrund-Farbe des tooltip:Das Ergebnis ist das, mit den Grenzen bezeichnet werden, und die Grenze-Grenzen Hinzugefügt, mit meinem treuen Line-Tool:
Neuausrichtung der tooltip Schwanz ist einfach eine Sache der Umstellung, die tooltip-Farbe um. Zum Beispiel, dies ergäbe ein Schwanz das ist, an der unteren ein Tipp:
Album Vorhören jsFiddle
1 Wenn Sie ein stickler für die Einhaltung von standards, können Sie prüfen, wie gut dies alles ein hack ist.
"I'm not worried about the shadow yet"
.Ich mache das tooltip nur mit einem
div
element.HTML:
CSS:
Demo
Erklärung:
Habe ich mein normales div mit border-genau wie anderen Beispiel. Der Schwanz ist eine einfache Kombination von CSS :
Tooltip ohne Schatten
CSS:
HTML:
Fiddle Demo
Mit Schatten (sieht bisschen komisch in WebKit... gotta optimieren, nehme ich an):
CSS:
HTML:
Demo 1, Demo 2
Crossbrowser-Ansatz:
CSS:
HTML:
Dieser arbeitet von IE7+ (funktioniert in IE6 verwenden (
filter: chroma(color=white);
) auch, aber zeigt auch nicht den schwarzen Rand um den Pfeil).IE6 Update:
Diese machen die hässlichen, schwarzen transparecy, der dargestellt wird durch IE6 die Farbe, die Sie angegeben in der chroma-filter (ich weiß, also es verschwindet im hintergrund).
CSS-3-Ansatz:
Könnte man es machen, mit CSS3-rotation, aber nicht in nicht-CSS3-kompatiblen Browsern:
Können Sie Gebrauch machen von dem :before und :after pseudo-Elemente in CSS. Zum Beispiel :bevor Sie können verwendet werden, um fügen Sie ein Dreieck, und :nach ein Rechteck einfügen. Die Kombination dieser beiden entsteht eine Blase tool-Tipp
ZB :
Einem online-tool zur Verfügung, bei http://www.careerbless.com/services/css/csstooltipcreator.php
title
?aria-label
ist eine geeignete benutzerdefinierte Attribut ist für einen tooltip. Mittitle
erhalten Sie auch die Standardeinstellung des Browsers tooltip-rendering (für sehende Nutzer sowieso).span:before
undspan:after
zu erstellen, Dreieck und angepasst werden, wie pro Notwendigkeit von webblogsforyou.com/....