Fügen Sie einem div ein Dreieck hinzu, das sich mit der Inhaltshöhe mit CSS ändert?

8

Ich habe ein div und ich muss ihm einen eckigen Punkt geben. Die Höhe variiert je nach Inhalt, so dass die Verwendung von Pseudoinhalt und Rahmen wie im folgenden Artikel nicht funktioniert.

Ссылка

Da dies eine progressive Verbesserung ist, muss ich nur moderne Browser unterstützen.

    
Evans 08.01.2015, 14:20
quelle

5 Antworten

6

Eine alternative Antwort, die Gradienten und Pseudoelemente verwendet

%Vor% %Vor%
    
vals 08.01.2015, 18:21
quelle
6

Sie könnten dies mit svg machen.

svg 's (Hintergrund) height ist vollständig abhängig von #content ' s (Text) height .

Demo auf dem CodePen

%Vor% %Vor%
    
chipChocolate.py 08.01.2015 15:04
quelle
3

CSS-Clippfad

Dies verwendet clip-path -Eigenschaft, die von vielen modernen Browsern nicht unterstützt wird.

%Vor% %Vor%

CSS - Farbverläufe

Die Browserunterstützung für CSS-Gradienten ist ziemlich gut. Bitte beachten Sie, dass dies im Wesentlichen der Vals Antwort entspricht, aber nur mit einer dynamischen Höhe.

%Vor% %Vor%

CSS + JS

Die folgende Lösung verwendet CSS und JS und funktioniert browserübergreifend. Das JS wurde von web-tiki zur Verfügung gestellt.

%Vor% %Vor% %Vor%
    
The Pragmatick 08.01.2015 17:44
quelle
2

Ich würde versuchen, mit SVG im Hintergrund:

%Vor%

Ссылка

Hinweis: Das SVG-Bild hat ein weißes Rechteck und ein grünes Dreieck. Es wird also nicht funktionieren, wenn der Hintergrund unter dem Pfeil keine Volltonfarbe ist.

Wenn die Breite festgelegt wurde, können Sie das SVG auf einen generierten Inhalt außerhalb der grünen Box setzen, wodurch ein weißer Hintergrund unter dem Pfeil vermieden werden könnte:

Ссылка

%Vor%     
pawel 08.01.2015 14:51
quelle
0

Dies kann auch durch Schrägstellung und Drehung

erfolgen

%Vor% %Vor%
    
Vitorino fernandes 10.01.2015 09:39
quelle

Tags und Links