Заголовок сообщения: Условия применения стилей в CSS по аттрибуту тега HTML Добавлено: 3 Январь 2008, 19:59:51
С новым годом вас... есть вопрос.
У меня есть готовый HTML (который генерится в CMS). В нем есть картинки, вставленные через тэг <iMG> с выраниванием ALIGN="LEFT" или ALIGN="RIGHT". Мне нужно: накатить на них такой стиль (через родительский DIV), чтобы к тем, у кого LEFT, применился один стиль, а для RIGHT - другой, для того, чтобы указать margin или padding для каждого из случаев разный. Вот...
_________________ Лишь одно в моём кармане - беспонтовый пирожок
Заголовок сообщения: Re: Условия применения стилей в CSS по аттрибуту тега HTML Добавлено: 3 Январь 2008, 20:49:43
Konyukhov, сталбытьтак: картинки сами по себе не выравниваются относительно ничего, их расположение задаётся родительским элементом, например, div'ом, как Вы указали. Соответственно, обзовите каждый родительский элемент по-своему и задайте соответствующие стили (выравнивания, отступы и т.д.).
tentoys, ээ.. HTML -то готовый у меня, его в CMS сделали, я там не хозяин. Вот лежит он в mysql, и все. А в нем <p>…<img align="left" />….</p>, то left то right, а стили нужны разные в зависимости это этого (отступы)…
Цитата:
[img]относительно%20окружения[/img]
- до сих пор тупо смотрю... что бы это могло значить??
_________________ Лишь одно в моём кармане - беспонтовый пирожок
karamba,
Konyukhov, чтобы уж наверняка закончить эту новогоднюю вакханалию порекомендую Вам обратить внимание на моё первое сообщение. Могу чуть разъяснить: помещая картинки в див или спан, в зависимости от того, как Вы хотите расположить картинки внутри этого дива или спана, задавайте им соответствующие свойства. например (возможны варианты, это Вам для исключительно как идея):
Насчёт некроссбраузерности Вам сказали потому, что не Вы наверняка хотите писать код по правилам и с указанием доктайпа, и все картинки, которые Вы хотите выровнять (указав им, картинкам! "равняйсь налево/направо") исполнят Ваш приказ. Поймите, разделение оформления от содержания пойдёт на пользу не только Вашей задумке, но и Вам лично.
С Новым Годом.
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 4 Январь 2008, 18:59:57
tentoys, проблема в том, что
Цитата:
HTML -то готовый у меня, его в CMS сделали, я там не хозяин.
Konyukhov, если до программера вам по какой-либо причине не дотянуться, поступите иначе:
напишите один стиль для родительского контейнера и используйте при подготовке контента только какое-то одно выравнивание, т.е. исключите проблему до необходимости ее решения. Иными словами оцените риски: красота контента или возможность ее реализовать.
HTML -то готовый у меня, его в CMS сделали, я там не хозяин.
[/quote] Не оспариваю, ибо читал исходное сообщение. Но ведь как-то в определённом месте нужны картинки, выставленные по левому краю, а в другом месте -- по правому? Значит есть определённый признак, удовлетворяя которому, происходит подобное размещение картинок? Вот там и нужно писать стили. А то как: в одном диве картинки и слева и справа... не очень понятно, как определяется их местоположение.
Цитата:
накатить на них такой стиль (через родительский DIV), чтобы к тем, у кого LEFT, применился один стиль, а для RIGHT - другой,
по-моему, плясать надо не от результата, а от условий для получения данного результата. Если не получается выделить определённые условия, то да, karamba прав, лучше исполнить однообразно.
А вобще, я в глянул на пример такого размещения картинок.
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 4 Январь 2008, 19:30:46
tentoys, т.н. рич-эдитор, джаваскриптовый визивиг скорее всего какой-нить готовой (вероятно фришной) цмс-ки. Аплоадишь картинку, тычешь ей кнопку «слева»/«справа», а цмс уже генерит хтмл вида <img align="left"…
Иначе вопрос бы не поднялся. Да, Konyukhov?
karamba, тогда по-любому, по первому сообщению топикстартера, нужен доступ к "нутру", чтобы стиль для таких картинок вбить. А вбить надо <img align="left" (пусть это остаётся на совести... на чьей-то совести) и добавлять style="padding:XXXpx; margin:XXXpx;" или что там ещё нужно?
tentoys, к "нутру" доступ конечно есть. И пропарсить HTML и повтыкать там стили в зависимости от RIGHT и LEFT проблем нет. Но я хотел малой кровью отделаться.
_________________ Лишь одно в моём кармане - беспонтовый пирожок
Так вот Вам и выход: когда Вы тычете в кнопку "справа/слева" пусть в родительский эелемент добавляется text-align:right/left, а для картинок вставляется стиль, как я писал выше. Не?
tentoys, не друг, есть доступ к "нутру" уже готового HTML. CMS не мой, мне лишь приходят в виде мыльных сообщений новости А мне их нужно прилично показаться на приличном сайте... Я говорю что могу уже готовый парсить, перед тем, как в базу ложить, или в то время, когда из базы вытаскиваю, на лету...
ВСЕМ: так каков вердикт, просто стилями, кроссбраузерно, никак?
_________________ Лишь одно в моём кармане - беспонтовый пирожок
есть доступ к "нутру" уже готового HTML. CMS не мой, мне лишь приходят в виде мыльных сообщений новости А мне их нужно прилично показаться на приличном сайте... Я говорю что могу уже готовый парсить, перед тем, как в базу ложить, или в то время, когда из базы вытаскиваю, на лету...
ВСЕМ: так каков вердикт, просто стилями, кроссбраузерно, никак?
Ложить... мдя...
когда вытаскиваете из базы на лету -- прописывайте для родительского элемента стили (можно в самом родительском элементе, не обязательно отдельный css). Это будет просто стилями и кроссбраузерно. Ответьте: у Вас одновременно будут в одном диве лево и право расположенные картинки, в одном потоке? Вот когда ответите, в первую очередь себе, тогда и придёт к Вам понимание того, что надо сделать.
вот такой кусок кода мне приходит, к примеру. Я желаю сделать следующее: заключить этот кусок в <div id="mydiv">….</div> и на этот div прикрутить стиль, чтобы: для картинки с left задать отступы одни, а для right - другие.
_________________ Лишь одно в моём кармане - беспонтовый пирожок
вот такой кусок кода мне приходит, к примеру. Я желаю сделать следующее: заключить этот кусок в <div id="mydiv">….</div> и на этот div прикрутить стиль, чтобы: для картинки с left задать отступы одни, а для right - другие.
Я достаточно хорошо Вас понимаю. Вам надо прописать следующее:
<p><span style="float:left; padding: xxxpx;margin:xxxpx;"><img src="…" align="left" /></span>бла бла бла</p>
В этом случае не надо описывать родительский div, в котором помещены абзацы текста с картинками, текст будет обтекать Ваши картинки, размещённые там, где Вам надо. Я подсказываю, что Вам надо написать, а как Вы решаете сами, например, сильные в программировании люди подскажут, как при наличии в строке буквосочетания "align="left"" или "align="right"", заменять Вашу строчку на приведённую мной. Или прописывайте код руками, если его не так много Это будет кроссбраузерно и по правилам. Потому, что как Вам уже намекали, картинки не могут выравниваться влево или вправо лишь по Вашей команде align.
Дело в том, что ИЗНАЧАЛЬНО я спрашивал, как это сделать, НЕ ТРОГАЯ код, который я получаю. Я прекрасно представляю себе, как пропарсить код и добавить программно нужные отступы. Самый близкий к желаемому был ответ Rustem, но, "не кроссбраузерно". Более того, я представляю себе, как обойтись без серверного скрипта - использовать JS, который "накрутит" стили через DOM, но не дает покоя мысль - МОЖНО ЛИ ЭТО СДЕЛАТЬ ОДНИМ ОБЩИМ СТИЛЕМ
_________________ Лишь одно в моём кармане - беспонтовый пирожок
9 Сообщения: 129 Зарегистрирован: 21.06.06 Откуда: Самара
Добавлено: 14 Январь 2008, 12:10:41
Konyukhov писал(а):
Если кому-нибудь еще интересно... решил данную задачу с помощью jQuery:
Код:
$(document).ready( function() { $("#center > p > img[@align='right']").addClass("img-right"); $("#center > p > img[@align='left']").addClass("img-left"); } );
Konyukhov, а не проще ли в БД все править, а не на стороне клиента? И кстати, если уж решать с помощью JS, то вот еще вариант: http://ie7-js.googlecode.com/svn/test/index.html , при использовании этой библиотеки не каких дополнительных CSS классов придумывать не надо.
IonDen666, vashurin, c учетом того, что библиотека jQuery уже довольно активно используется на сайте... наверное не проще. Это ж в базу лезть надо, отслеживать новый контент, колбасить его (опять же, колбасить когда - ложатся туда они без моего участия, а отслеживать изменения по cron-у, например - это точно сложнее будет). А так, довольно просто.
_________________ Лишь одно в моём кармане - беспонтовый пирожок
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.