Я использую псевдо-элементы css: before и: after, чтобы дать эффект отступа для некоторых моих изображений на веб-сайте. Однако без указания ширины и высоты они не будут отображаться. Это позволило бы мне указать фиксированную ширину и высоту для каждого изображения, которое, как я полагаю, будет работать для статической веб-страницы.
Однако, поскольку эти изображения генерируются динамически с помощью jQuery и представлены пользователем, изображения каждый раз различаются по ширине и высоте. Теперь я мог бы, вероятно, исправить это с помощью Javascript, получив ширину от изображения и передав ее в: раньше, но похоже, что это слишком много работает для чего-то подобного.
Мой вопрос в том, есть ли способ сделать это только с помощью CSS, чтобы иметь ширину, содержащую изображение, передаваемое в: before на этом <li> так что: before и: after псевдоэлементы наследуют ширину и высоту исходного элемента.
Основной макет страницы:
<ul>
<li>
<img src="foo" />
</li>
</ul>
# css style simplefied
ul{ float:left; list-style:none}
li{float:left;}
li img{float:left}
li:before{
content:"":
position:relative;
position:absolute;
float:left;
box-shadow:0 1px 2px rgba(0,0,0,0.4);
}
PS: требуется совместимость только для мобильных браузеров Webkit.
ИЗМЕНИТЬ
Я мог бы, например, добавить строки в CSS с помощью Javascript, используя следующие строки:
var heightImg = (($('ul li:nth-child(n)').height())) + 'px';
document.styleSheets[1].insertRule('ul li:before { height: ' + heightImg+ '; }', 0);
Но это будет означать, что мне также придется работать с динамическими идентификаторами. Который будет не сложно, но мне просто интересно, нет ли способа только CSS.