CSS для увеличения размера первого слова
Это меня немного озадачило. Я хочу сделать первое слово из всех абзацев в моем # content div в 14pt вместо значения по умолчанию для абзацев (12pt). Есть ли способ сделать это в прямом CSS или я оставил обертывание первого слова в промежутке, чтобы выполнить это?
10 ответов:
то, что вы ищете-это псевдо-элемент, который не существует. Есть: первая буква и: первая строка, но нет :первое слово.
вы конечно можете сделать это с помощью JavaScript. Вот какой код я нашел, что делает это:http://www.dynamicsitesolutions.com/javascript/first-word-selector/
Я должен не согласиться с Дейлом... Сильный элемент на самом деле является неправильным элементом для использования, подразумевая что-то о значении, использовании или акценте контента, в то время как вы просто намереваетесь предоставить стиль элементу.
В идеале вы могли бы выполнить это с помощью псевдокласса и вашей таблицы стилей, но поскольку это невозможно, вы должны сделать свою разметку семантически правильной и использовать
<span class="first-word">.
то же самое с jQuery:
$('#links a').each(function(){ var me = $(this); me.html( me.text().replace(/(^\w+)/,'<strong></strong>') ); });или
$('#links a').each(function(){ var me = $(this) , t = me.text().split(' '); me.html( '<strong>'+t.shift()+'</strong> '+t.join(' ') ); });(через 'Wizzud' на список рассылки jQuery)
чистое решение CSS:
используйте: псевдокласс первой строки.
display:block; Width:40-100px; /* just enough for one word, depends on font size */ Overflow:visible; /* so longer words don't get clipped.*/ float:left; /* so it will flow with the paragraph. */ position:relative; /* for typeset adjustments. */не проверить. Довольно уверен, что это будет хорошо работать для вас Тхо. Я применял правила блока к псевдоклассам раньше. Вы можете застрять с фиксированной шириной для каждого первого слова, Итак, текст-выровнять:центр; и дать ему хороший фон или что-то для борьбы с негативным пространством.
надеюсь, что это работает для вас. :)
- Motekye
к сожалению, даже с подобными CSS 3 у нас все еще нет подобных
:first-word:last-wordetc с использованием чистого CSS. К счастью, в настоящее время есть почти JavaScript для всего, что приводит меня к моей рекомендации. Используя nthEverything и jQuery вы можете расширить от традиционных псевдо-элементов.в настоящее время действительные псевдонимы являются:
:first-child:first-of-type:only-child:last-child:last-of-type:only-of-type:nth-child:nth-of-type:nth-last-child:nth-last-of-typeи используя nth все, что мы можем расширить это к:
::first-letter::first-line::first-word::last-letter::last-line::last-word::nth-letter::nth-line::nth-word::nth-last-letter::nth-last-line::nth-last-word
использовать сильный элемент, то есть его цели:
<div id="content"> <p><strong>First Word</strong> rest of paragraph.</p> </div>затем создайте стиль для него в таблице стилей.
#content p strong { font-size: 14pt; }
вот немного JavaScript и jQuery, которые я собрал вместе, чтобы обернуть первое слово каждого абзаца с
<span>тег.$(function() { $('#content p').each(function() { var text = this.innerHTML; var firstSpaceIndex = text.indexOf(" "); if (firstSpaceIndex > 0) { var substrBefore = text.substring(0,firstSpaceIndex); var substrAfter = text.substring(firstSpaceIndex, text.length) var newText = '<span class="firstWord">' + substrBefore + '</span>' + substrAfter; this.innerHTML = newText; } else { this.innerHTML = '<span class="firstWord">' + text + '</span>'; } }); });затем вы можете использовать CSS для создания стиля для
.firstWord.это не идеально, так как он не учитывает каждый тип пробелов; однако я уверен, что он может выполнить то, что вам нужно, с помощью нескольких настроек.
имейте в виду, что этот код будет выполняться только после загрузки страницы, так что это может занять доли секунды, чтобы увидеть эффект.
для этого нет простого метода CSS. Возможно, вам придется пойти с JavaScript + Regex, чтобы выскочить в промежуток.
В идеале, был бы псевдо-элемент для первого слова, но вам не повезло, так как это, похоже, не работает. У нас есть :первая буква и :первая строка.
вы можете использовать комбинацию: after или: before, чтобы добраться до него без использования span.
вставить тег Span в текст абзаца. например-
<p><span>Hello</span>My Name Is Dot</pа затем стиль первой буквы.
Comments