Ответ 1
Вы не можете вставить якорь внутри пролета, например
<span class="price"><a href="/buy" class="buy-link">Buy Now</a> Only $19.95!</span>
затем установите диапазон в белое пространство: nowrap?
Для какой-то основной работы с макетами, которую я делаю, мне нужны ссылки, которые сразу же следуют цене, которая всегда будет отображаться в той же строке, что и цена. Текст цены обернут тегом <span class="price">
, в то время как ссылка использует класс buy-link, как в <a href="/buy" class="buy-link">Buy Now</a>
.
Я ищу CSS, который автоматически предотвратит разрыв строки между тегами span
и a
, но я либо что-то пропущу, либо это невозможно. Я могу легко предотвратить разрывы строк в двух тегах, но не между ними.
Я хочу, чтобы избежать обертывания обоих тегов в span
с помощью white-space: nowrap
вручную и, если возможно, использовать чистый CSS.
Обновление: HTML выглядит примерно так: Это не настоящий код, но очень похожий.
<style>
.price{ font-weight: bold; }
.buy-link{ color: green; }
</style>
<span class="price">$50</span> <a href="/buy" class="buy-link">Buy Now</a>
Если ссылка находится рядом с краем страницы - или краем блока в браузерах <div>
или <table>
будет привязана ссылка Buy Now к следующей строке. Разделение двух элементов.
Вы не можете вставить якорь внутри пролета, например
<span class="price"><a href="/buy" class="buy-link">Buy Now</a> Only $19.95!</span>
затем установите диапазон в белое пространство: nowrap?
<span class="price">$50</span> <a href="/buy" class="buy-link">Buy Now</a>
Решение с использованием метода css white-space: nowrap
<style>
div{width:10px;white-space:nowrap;}
.price{ font-weight: bold; }
.buy-link{ color: green; }
</style>
<div>
<span class="price">$50</span>
<a href="/buy" class="buy-link">Buy Now</a>
</div>
Решение с использованием метода HTML (в случае, если вы не в состоянии использовать white-space: nowrap;)
<style>
.price{ font-weight: bold; }
.buy-link{ color: green; }
</style>
<span class="price">$50</span> <a href="/buy" class="buy-link">Buy Now</a>
<!--Just removing the breaking whitespace between "Buy" and "Now"-->
* Просто удалил разрыв между "Buy" и "Now" и вставил nbsp (неразрывное пространство), чтобы break/wrap не возникал *
Посмотрите эту скрипту с эффектом обертывания: http://jsfiddle.net/8SP2C/2/
Посмотрите эту скрипту css white-space:nowarp
: http://jsfiddle.net/8SP2C/1/
Смотрите эту скрипту с помощью метода html: http://jsfiddle.net/8SP2C/3/
Я только что проверил это во всех пяти браузерах, и он отлично работает. Вам не нужен родительский класс. Чтобы сделать что-то смелое, не создавая разрыв строки, просто выполните следующее:
Сначала поместите это в головную часть вашего html:
<style type="text/css">
.makeBold /* to only be used with SPAN: (i.e.) <span class="makeBold"></span> */
{
font-weight:bold;
width:122px; /* This should be the width length of the thing you are bolding */
white-space:nowrap;
}
</style>
Позже в теле вашего HTML вы должны просто использовать span.
<span class="makeBold">BOLD THIS TEXT</span>
Вы можете использовать span внутри Div и оставаться совместимым с HTML5.
Enjoy
Поскольку элемент <span>
предназначен для встроенной группировки по умолчанию, цена и ссылка должны быть в одной строке.
Я думаю, что какой-то CSS перегружает его.