Скрыть первые символы x

6 hallibus [2015-04-10 00:12:00]

Можно ли скрыть первый символ x элемента h4 через css?

Например:

<h4>Data: This is some random data.</h4>

"Данные:" не должны отображаться.

Я попробовал переполнение и перемещение div, который содержит h4, это работает, но это не очень хорошее решение для меня.

Может быть, есть команда, о которой я не знаю, что помогает. Я знаю, что JavaScript и strreplace будут работать, но я ищу чистое решение CSS.

html css


4 ответа


4 Решение Shomz [2015-04-10 00:15:00]

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

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

Нижняя строка: Только CSS не может этого сделать


4 simpleManderson [2015-04-10 01:44:00]

Как говорили другие, невозможно точно, что вы хотите. Но просто для удовольствия, если это всегда "Данные:", которые вы пытаетесь скрыть, вы можете сделать это:

h4 {
    position: relative;
    background-color: white;
}

h4:before {
    content: "Data: ";
    position: absolute;
    top: 0;
    left: 0;
    background-color: white;
    color: white;
}
<h4>Data: This is some random data</h4>

Но я согласен с другими, перехват в PHP, вероятно, лучший подход.


2 Dan Ovidiu Boncut [2015-04-10 00:15:00]

Попробуйте использовать текстовый отступ с отрицательным значением и переполнением скрытым:

h4{
overflow-x: hidden;
text-indent: -10px;
}

И лучший результат будет, если у вас есть моноширинный шрифт, и вы смотрите в браузере, который поддерживает ch единицы, так что text-indent: -4ch будет означать, что вы скрываете 4 символа.


1 hallibus [2015-04-11 01:16:00]

Хорошо, поэтому нет чистого решения CSS. Но я нашел довольно простой способ выбрать первое слово через jQuery и обернуть его в.

jQuery(".first-word").each(function(){
var me = $(this), fw = me.text().split(' ');
me.html( '<span>'+fw.shift()+'</span> '+fw.join(' ') );
});

ссылка jsfiddle