Вчера в 17:15 я наконец-то вернулся за компьютер, чтобы быстро проверить почту после 48-часового перерыва - итак, я запустил Thunderbird, и тотчас же выскочило несколько новостей RSS из моей подписки. (По выходным я занят реконструкцией дома, и все мое свободное время посвящено друзьям и семье…естественно, вдали от компьютера).
Мой новый приятель Дастин Диаз (включивший ссылку на меня и этот сайт в своем самом последнем аудиоблоге) добавил вызывающее сообщение под заголовком «Долой закругленные углы».
Я просмотрел этот новый источник информации о закругленных углах и увидел, что HTML отлично подойдет для создания экспромтного руководства по библиотеке jQuery – в сочетания функций wrap(), prepend(), and append().
Обратимся к HTML разметке, которая будет использована как отправной пункт:
<div class="dialog">
<div class="hd">
<div class="c"></div>
</div>
<div class="bd">
<div class="c">
<div class="s">
< -- main content goes here -->
</div>
</div>
</div>
<div class="ft">
<div class="c"></div>
</div>
</div>
Итак, как мы обработаем данный HTML, используя jQuery, чтобы привести код в порядок?
В первую очередь нам нужна «зацепка» - уникальный элемент HTML, или идентификатор, или название класса объектов – для нацеливания на него jQuery.
Метод, который я предлагаю, удалит все тэги “div”, находящиеся выше. Поэтому я считаю, что в качестве хорошей «зацепки» может выступить простой тэг “div” с уникальным идентификатором или названием класса.
Давайте попробуем сделать следующее:
<div class="roundbox">
< -- main content goes here -->
</div>
Следующий шаг… мы используем jQuery чтобы добавить код в наш html:
$(document).ready(function(){ $("div.roundbox") .wrap('<div class="dialog">'+
'<div class="bd">'+
'<div class="c">'+
'<div class="s">'+
'</div>'+
'</div>'+
'</div>'+
'</div>');
});
Где остальные тэги “div”?
Обратите внимание на код выше, и вы увидите, что все тэги “div” аккуратно расположились внутри других, а также обернулись вокруг контента, который будет включен в созданный нами закругленный блок в ближайшее время.
Вы также можете заметить, что я исключил значительное количество элементов разметки из оригинала. Это сделано потому, что функция wrap() в jQuery требует отлично вложенных тэгов “div” для своей работы.
В частности, я исключил эти две части:
<div class="hd"><div class="c"></div></div>
<div class="ft"><div class="c"></div></div>
Функции prepend() and append() одновременно
Если вы заметили, исключенные части как раз заходили внутрь, но в начале и конце тэга “div”, относящегося к классу «диалог». Это прекрасная возможность использовать функции append и prepend jQuery и связать их вместе.
$('div.dialog').prepend('<div class="hd">'+
'<div class="c"></div>'+
'</div>')
.append('<div class="ft">'+
'<div class="c"></div>'+
'</div>');
Пример и код
Я выложил на сайте пример закругленных углов, полученных через jQuery, для обозрения. Обязательно обратите внимание на исходный код, потому что я хочу, чтобы вы увидели, насколько аккуратный вид приобретает HTML, когда все сценарии javascript и каскадные таблицы стилей распределяются по отдельным файлам.
Этот код был взят из статьи, размещенной на http://www.schillmania.com/ и по этой же ссылке я советую вам скачать zip-архив, в котором находятся элементы изображений, помогающие добиться красивых закругленных углов.
Закругленные углы без изображений
Есть немало способов создания закругленных уголков и некоторые из них позволяют обойтись без каких-либо изображений
На веб-сайте jQuery находится дополнительный программный модуль, позволяющий получить закругленные углы без изображений. Он подойдет не каждому (или не для всякого приложения), но попробовать его стоит. Не просите меня усовершенствовать код, так как он достаточно серьёзен и изобилует тригонометрическими функциями, в которых я не силен.
Однако только взгляните на то, как стройно выглядит код (при использовании дополнительного программного модуля):
$(document).bind("load", function(){
$("#box1").corner();
});
Популярность: 73%
RSS комментариев.