2017-01-06 4 views
8

Я смог успешно использовать shape-outside: polygon(...) и clip-path: polygon(...) для создания желаемой формы многоугольника.Как разместить абзац внутри полигона css

Я видел много страниц, ссылающихся на использование shape-inside, и все же я прочитал, что shape-inside был устаревшим и не имеет замены. Они также были написаны в 2014 году, поэтому я надеюсь, что CSS3 изменится с тех пор.

После просмотра в Интернете я смог собрать что-то, что почти работ. Мне нравится форма, но теперь мне нужна обертка текста внутри формы с скрытым переполнением.

Я видел подсказки о ::before, но я до сих пор не понимаю, как это поможет. Тестирование не показало никаких результатов.

Является ли это простым или сложным, как я могу использовать CSS для обертывания текста внутри полигона? Или решение лежит вне CSS? Нужно ли мне использовать другой подход, например jQuery?

This is the polygon with text clipped off.

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> 

ответ

5

Посмотрите еще раз на shape-outside.

Вы не устанавливаете его в текстовом контейнере, а другие элементы вокруг текста.

В вашем случае, возможно, для прохождения текста может потребоваться не менее 2 div.

Существует пример текста, текущего между 2 polygon s на этой странице.

https://www.html5rocks.com/en/tutorials/shapes/getting-started/

Надеется, что это помогает.

enter image description here

+0

Это помогло. Мне пришлось передумать мою парадигму, используя левый и правый divs, как плесени. – RandomHandle

+0

рад помочь. PLS не забудьте отметить свой вопрос: D –

Смежные вопросы