Udało mi się z powodzeniem użyć shape-outside: polygon(...)
i clip-path: polygon(...)
do utworzenia pożądanego kształtu wielokąta.Jak dopasować akapit wewnątrz wieloboku css
Widziałem wiele stron odnoszących się do korzystania z shape-inside
, a jednak przeczytałem, że shape-inside
został wycofany i nie ma zamiany. Zostały również napisane w 2014 roku, więc mam nadzieję, że od tego czasu CSS3 się zmienił.
Po obejrzeniu w Internecie, udało mi się złożyć w całość coś, co działa pod prawie. Podoba mi się kształt, ale teraz potrzebuję zawijania tekstu wewnątrz kształtu z ukrytym przelewem.
Widziałem wskazówki dotyczące ::before
, ale nadal nie rozumiem, w jaki sposób to pomoże. Testowanie nie przyniosło żadnych rezultatów.
Niezależnie od tego, czy jest to proste, czy skomplikowane, jak mogę użyć CSS do zawijania tekstu w wielokącie? A może rozwiązanie leży poza CSS? Czy muszę zastosować inne podejście, takie jak jQuery?
CSS
/*
For reference:
@vertex1: 120px;
@vertex2: @vertex1*2;
*/
.diamondContainer {
display: block;
position: absolute;
text-align: center;
width: @vertex2;
height: @vertex2;
overflow: hidden; /* hide anything longer than allowed string length */
/* This is a diamond shape */
shape-outside: polygon(@vertex1 0, @vertex2 @vertex1, @vertex1 @vertex2, 0 @vertex1);
clip-path: polygon(@vertex1 0, @vertex2 @vertex1, @vertex1 @vertex2, 0 @vertex1);
}
HTML
<div class="diamondOuter">
<div class="diamondWrapper">
<div class="diamondContainer diamondCell2">
<span><strong>Title Text</strong><br />Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.</span>
</div>
</div>
</div>
Pomogło to. Musiałem ponownie przemyśleć mój paradygmat, używając lewych i prawych div jak formy. – RandomHandle
cieszymy się z pomocy. pls nie zapomnij zaznaczyć odpowiedzi na pytanie: D –