CSS-перенос текста на изображениях [дубликаты]

0

Я пытаюсь получить изображение моего, чтобы плавать в центре div. Код в настоящее время:

<style type="text/css">
    #navig {
        height: 333px;
    }

    #navig img {
        display: block;
        margin: 0px auto;
    }
</style>
<div id="navig"><img src="images/logo.png" height="333" id="logo" /></div>

Проблема заключается в том, что изображение - это бриллиант, и я хотел бы, чтобы текст обернулся вокруг алмаза с отступом. Я считаю, что это возможно с помощью <img align='center'/> но это было устарело в HTML 4.01 и даже не поддерживается в HTML 5.

Я попробовал несколько возможностей, и я все еще не могу заставить текст обернуться вокруг алмаза.

  • 0
    Вы хотите, чтобы текст был внутри алмаза, верно? Как покраснел край своего родителя?
  • 0
    Я хочу обернуть текст почти вплотную к алмазу. Почти как маска, в которой не может быть текста.
Показать ещё 2 комментария
Теги:
alignment
word-wrap
wrap

3 ответа

2

См. Это для некоторых опций. У меня есть два варианта: CSS-Shapes и SVG.

Лучшим вариантом является использование SVG изображения, но обязательно используйте SVG код, а не ссылку на него как изображение.

Вот JSFIDDLE, так как вы можете видеть, что текст способен выделить и может быть отредактирован. (Больше боли, чтобы отредактировать, сделайте все возможное с текстом в AI перед сохранением, но он все равно может быть отредактирован)

Это также очень гибко, как вы можете видеть в этом FIDDLE.

Это очень новая функция и не имеет хорошей поддержки браузера.

SO CSS-Shapes

Как только это,

shape-outside: polygon(50px 0px, 100px 100px, 0px 100px);

поддерживается, вы сможете сделать это с легкостью.

Я рекомендую изучить основы, поэтому, как только они будут поддерживаться большинством современных браузеров, вы уже знаете, что делать.

  • 0
    Обязательно учту это для будущих проектов.
  • 0
    @ user2195574 Обратитесь к моему редактированию ответа, это лучший доступный вариант.
0

Мне удалось разобраться с этим. Изображение остается в div и окружено двумя другими закрытыми тегами div.

<div id="navig">
    <div id="nav1"></div>
    <div id="nav2"><img src="images/logo.png" height="333" id="logo" /></div>
    <div id="nav3"></div>
</div>

Затем я #navig div {float:left;} что все три из этих float остались: #navig div {float:left;} а два пустых divs используют text-align. Первый будет выравниваться вправо, а последний - влево.

Затем два пустых divs заполняются с помощью <ul> и меню, которое я хотел, заполняется тегами <li>. Для примеров я использую некоторые основные пункты меню.

<div id="navig">
        <div id="nav1">
            <ul>
                <li>Home</li>
                <li>About</li>
                <li>Contact</li>
            </ul>
        </div>
        <div id="nav2">
            <img src="images/logo.png" height="333" />
        </div>
        <div id="nav3">
            <ul>
                <li>Products</li>
                <li>Shipping</li>
                <li>Legal</li>
            </ul>
        </div>
    </div>

Затем я добавил #nav1 ul li:nth-child(1) и позиционировал первый элемент, который был бы "домом" против алмаза. Я могу изменить "Домой" на все, что мне кажется, и позиция остается, поскольку она вынуждена text-align: right. Добавляя их с каким-либо количеством элементов <li> которые вы используете и редактируете в соответствии с вашими потребностями. Например:

#nav1 ul li:nth-child(1) {
    position: relative;
    left: 48px;
}

#nav1 ul li:nth-child(2) {
    position: relative;
    left: 24px;
}

#nav1 ul li:nth-child(3) {
    position: relative;
    left: 8px;
}

Это подтолкнуло мой первый, второй и третий предметы к алмазу, но с небольшим отступом, чтобы не вторгаться.

Немного продолжительный процесс, но много свободы и дал мне желаемый эффект!

0

Вы не можете сделать это только с изображением. Но вы можете использовать формы, проверьте эту страницу:

https://www.makeuseof.com/tag/csstextwrap/

Используя CSSTextWrapper, вы можете легко создавать HTML-текстовые обертки для любой мыслимой формы. Это могут быть круги, зигзаги, треугольники или что угодно. Быстрый и простой в использовании, просто загрузите логотип (необязательно) на предоставленную панель инструментов и перетащите боковые линии, чтобы задать перенос текста.

Изображение 174551

Довольно впечатляющий.

  • 1
    Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
  • 0
    @DonaldDuck Отличный вопрос, особенно если учесть, что ссылка больше не работает :) Я посмотрю эту информацию и отредактирую ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню